Excel で「yyyymmddhhmmss」形式の日付を通常の日時に変換するには、どうすればよいですか?
実際の業務では、他のシステムやログファイルからエクスポートされたデータが「yyyymmddhhmmss」形式の連続した文字列で日時情報を提供していることがよくあります。たとえば、「20240630174521」は「30/06/2024 17:45:21」を表しています。しかし、Excel はこの文字列を標準的な日時値として自動的に認識しないため、日付の分析・並べ替え・計算などが困難になります。こうした文字列をExcel が認識可能な日時形式(例:dd/mm/yyyy hh:mm:ss)に変換することは、今後のデータ分析、フィルタリング、レポート作成において不可欠です。
本記事では、yyyymmddhhmmss 形式の文字列を標準的なExcel 日時形式に変換するための実践的なステップ・バイ・ステップ手順をご紹介します。セル内で簡単に変換できる数式を使った方法、自動化に最適な VBA コードによる解決策、さらに柔軟で視覚的に操作可能な Power Query を活用したアプローチなど、複数の手法を解説します。それぞれの方法は、お客様の要件やデータ規模、Excel 機能への習熟度に応じて、最適なシナリオでお使いいただけます。

数式を使用して yyyymmddhhmmss を通常の日付と時刻の形式を設定するに変換する
VBA コード – yyyymmddhhmmss を通常の日付と時刻に自動変換する
数式を使用して yyyymmddhhmmss を通常の日付と時刻の形式を設定するに変換する
Excel の数式を使えば、外部アドインや高度なツールを一切使わずに、yyyymmddhhmmss 形式の文字列をワークシート内でそのままExcel が認識可能な日時値に分割・再整形できます。この方法は、比較的小規模なデータセットや、手動で透明性が高く監査しやすい変換を求める場面に最適です。
文字列を変換するには、空白セル(たとえば、元の yyyymmddhhmmss 値がセル A2 にある場合、セル B2)に次の数式を入力してください。
=TEXT(DATE(LEFT(A2,4),MID(A2,5,2),MID(A2,7,2))+TIME(MID(A2,9,2),MID(A2,11,2),MID(A2,13,2)),"dd/mm/yyyy hh:mm:ss") 操作手順:数式を入力したら、Enter キーを押して確定します。列 A に yyyymmddhhmmss 形式の値が複数ある場合、セル B2 のフィルハンドルを下にドラッグすれば、他の行にも素早く数式を適用できます。各数式の結果は、整形済みの日時をテキストとして返します。
この方法は、アドホックなデータクリーニングや小規模なリストに非常に実用的です。また、元の文字列を1 列に残しつつ、整形済みの値を別の列に保持したい場合にも最適です。ただし、数式の結果はあくまでテキストである点にご注意ください。時間差などの日時計算でExcel の真の日時値が必要な場合は、そのテキストを数値形式に変換する必要があります。

パラメーターの説明とヒント:
- LEFT(A2,4): 4 桁の年を抽出します
- MID(A2,5,2): 2 桁の月を抽出します
- MID(A2,7,2): 2 桁の日を抽出します
- MID(A2,9,2): 2 桁の時を抽出します
- MID(A2,11,2): 2 桁の分を抽出します
- MID(A2,13,2): 2 桁の秒を抽出します
- TEXT()関数は、結果をユーザーフレンドリーな日時文字列に整形します。
考えられる問題点:元の値のいずれかが正確に14 桁でない場合(たとえば、先頭のゼロが欠落していたり、科学表記で誤って数値として入力されていたりするなど)、数式が誤った結果を返したり、エラーが発生したりする可能性があります。数式による変換を行う前に、必ず入力データの一貫性をご確認ください。
あるいは、データが常に正確に14 桁である場合は、次の簡潔な数式で文字列を変換し、テキストではなくExcel のシリアル日時値として返すことができます。
=--TEXT(A2,"0000\-00\-00\ 00\:00\:00") 使用方法:この数式をセル(例:B2)に入力し、Enter キーを押してください。その後、結果のセルを人間が読みやすい日時形式で表示するには、セルの書式をDD/MM/YYYY HH:MM:SSに設定する必要があります。その際は、結果のセルを選択して右クリックし、セルの書式設定>ユーザー設定から、書式コードとしてdd/mm/yyyy hh:mm:ssを入力してください。

この2 番目の方法は、テキスト文字列ではなく実際の日時値が必要な場合に特に効果的です。
![[セルの書式設定] ダイアログ ボックスでセルの値を通常の日時形式に設定](http://cdn.extendoffice.com/images/stories/doc-excel/convert-yyyymmddhhmmss-to-datetime/doc-yyyymmddhhmmss-to-normal-4.png)
ヒント:変換後の日時結果をさらなる日時計算(例:日付の減算や期間の算出など)に使う場合は、常にシリアル値を返す数式(2 番目の数式)をご利用ください。表示形式は必要に応じて設定できます。
トラブルシューティング:ソースデータが本当にテキスト形式であり、数字以外の文字が含まれていないかご確認ください。先頭や末尾のスペースも結果に影響を与える可能性があるため、そうした問題が疑われる場合は、数式内で TRIM(A2)を使ってデータをクリーニングすることをおすすめします。
VBA コード – yyyymmddhhmmss を通常の日付と時刻に自動変換する
大規模なデータセットを処理する必要がある方や、変換プロセスを自動化したいユーザーにとって、VBA(Visual Basic for Applications)は柔軟で効率的なソリューションを提供します。選択したセルをループ処理することで、各 yyyymmddhhmmss 値をインプレースまたは指定した列に、標準的なExcel 日時形式へと簡単に変換できます。この方法は、複数のセルにわたり数式を入力したくない場合や、データが頻繁に更新されるシーンで特に役立ちます。
この方法は、大規模なデータセットや繰り返しの操作に最適です。ただし、VBA を使用するにはマクロを有効にする必要があり、組織の方針やExcel の設定によっては利用が制限される場合があります。VBA コードを実行する前に、変更内容が簡単に元に戻せない可能性があるため、必ずファイルを保存してください。
操作手順:
- 変換が必要なワークシートで、yyyymmddhhmmss 形式の値が含まれる範囲(例:A2:A100)を選択してください。
- クリックして開発タブ → Visual Basicを選択し、VBA エディターを開きます。左側のペインで該当のワークブックを見つけ、右クリックして挿入 → 標準モジュールを選択します。コードウィンドウに以下のコードを貼り付けます。
Sub Convert_yyyymmddhhmmss_To_DateTime()
Dim rng As Range
Dim cell As Range
Dim strDate As String
Dim y As Integer
Dim m As Integer
Dim d As Integer
Dim hh As Integer
Dim mm As Integer
Dim ss As Integer
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set rng = Application.InputBox("Select the range of yyyymmddhhmmss values to convert:", xTitleId, Selection.Address, Type:=8)
For Each cell In rng
strDate = Trim(cell.Value)
If Len(strDate) = 14 And IsNumeric(strDate) Then
y = CInt(Left(strDate, 4))
m = CInt(Mid(strDate, 5, 2))
d = CInt(Mid(strDate, 7, 2))
hh = CInt(Mid(strDate, 9, 2))
mm = CInt(Mid(strDate, 11, 2))
ss = CInt(Mid(strDate, 13, 2))
cell.Value = DateSerial(y, m, d) + TimeSerial(hh, mm, ss)
cell.NumberFormat = "dd/mm/yyyy hh:mm:ss"
End If
Next cell
End Sub コードを貼り付けたら、VBA エディターを閉じてExcel に戻ります。次に、Alt + F8を押してマクロを実行し、「Convert_yyyymmddhhmmss_To_DateTime」を選択して実行をクリックします。このマクロは、範囲の選択を促した後、各14 桁の数値文字列を読みやすい日時値にその場で変換します。
ヒントとトラブルシューティング:
- 一部の値が変換されない場合は、長さが正確に14 桁かどうか、余分なスペースが含まれていないかどうか、およびすべての値が数値であるかどうかをご確認ください。
- 元の値をそのまま保持したい場合は、マクロを実行する前に変換後の日時値を別の列にコピーしておけます。
- マクロを実行する前に、必ずワークブックを保存し、Excel でマクロが有効になっていることをご確認ください。
メリット:広範囲の処理を素早くこなせ、繰り返しタスクの自動化も簡単です。
デメリット:マクロを有効にする必要があります。また、マクロのセキュリティ制限が厳しい環境では使えない場合があります。

KUTOOLS AI でExcel の魔法を解き放ちましょう
- スマート実行:セル操作、データ分析、チャート作成をすべてシンプルなコマンドで実現します。
- カスタム数式:ワークフローの効率化に役立つ、あなただけのカスタマイズ数式を生成します。
- VBA コーディング:VBA コードを簡単に記述・実装できます。
- 数式の解釈:複雑な数式が簡単に理解できます。
- テキスト翻訳:スプレッドシート内で言語の壁を乗り越えましょう!
最高の Office 業務効率化ツール
| 🤖 | KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行 | コード生成| カスタム数式作成 | データ分析とチャート生成| 拡張機能呼び出し… |
| 人気の機能:検索・ハイライト、または重複をマーキング | 空白行を削除する | データを失うことなく列の結合またはセルを | 数式を使用しない四捨五入... | |
| スーパー LOOKUP:複数条件 VLookup | 複数値 VLookup | 複数シート間 VLookup | ファジーマッチ.... | |
| 高度なドロップダウンリスト:ドロップダウンリストをすばやく作成 | 連動型ドロップダウンリスト | 複数選択可能なドロップダウンリスト.... | |
| 列マネージャー:指定した数の列を追加|列の移動|非表示列の表示状態を切り替え|範囲および列の比較... | |
| 注目の機能:グリッドフォーカス | デザインビュー |強化された数式バー | ワークブックとシートマネージャー | リソースライブラリ(オートテキスト)| 日付ピッカー | ワークシートの統合 | 暗号化/セルの復号化 | リストからメール送信 | スーパーフィルター | 特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。 | |
| トップ15 ツールセット:12 テキストツール(テキストの追加、特定の文字を削除、...)| 50+チャートタイプ(ガントチャート、...)| 40+実用的関数(誕生日に基づいて年齢を計算します、...)| 19 挿入ツール(QR コードを挿入、パスから画像を挿入、...)| 12 変換ツール(単語に変換する、為替レートの変換、...)| 7 結合と分割ツール(高度な行のマージ、セルの分割、...)|さらに多数 |
Kutools for Excel でExcel スキルを強化し、これまでにない効率を体験しましょう。Kutools for Excel は、生産性を高め、時間を大幅に節約できる高度な機能を300 以上提供します。最も必要な機能を今すぐ入手するにはこちらをクリック。。。
Office Tab は Office にタブインターフェースをもたらし、作業を大幅に簡単にします
- Word、Excel、PowerPoint でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
- 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
- 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!
すべてのKutools アドインが、たった1 つのインストーラーで完結。
Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。
- オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
- インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
- 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
- 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
- 最高のお得感— 個別アドイン購入よりお得