Excelで「20251130135641」を日付と時刻に変換する方法

Excelで「20251130135641」を日付と時刻に変換する方法 Excel

はじめに:この長い数字、日付だって知ってました?

データベースやシステムからデータをダウンロードしたとき、日付の欄にこんな数字が入っていたことはありませんか?

20251130135641

私たち人間が見れば、「あ、2025年11月30日の13時56分41秒だな」となんとなく分かります。

しかし、Excelにとっては、これはただの「20兆2511億…」という、とてつもなく巨大な数値でしかありません。

このままでは日付として計算することも、グラフの日付軸にすることもできません。

今回のテーマは、「14桁の数値データを、Excelが理解できる日付・時刻(シリアル値)に変換する」です!

王道の文字列操作から、数学的な計算、そして力技の検索まで。5つのアプローチでこの数字を「翻訳」していきます。

【今回の前提条件】
扱う日付はすべて「今日より過去(または現在)」のものとします。
西暦5000年のような遠い未来の日付は考慮しません。

準備:シリアル値とWeb版の罠

本記事では、無料のWeb版Excelを使用して検証および画像の作成を行っています。Windowsはもちろん、MacやLinuxの方もブラウザさえあれば挑戦できます!

まずは準備です。A1セルに、今回のボスキャラである数値「20251130135641」を入力してください。

Excelの説明画像

「シリアル値」ってなに?

Excelは日付や時刻を「シリアル値」という数値で管理しています。

これは、Excel初心者の方が最初につまずくポイントの1つです。

日付(整数部): 1900年1月1日を「1」として、そこから何日経過したかを表します。
刻(小数部): 1日(24時間)を「1」として、0から1の間の小数で表します。例えば、お昼の12時は1日の半分なので「0.5」です。

つまり、「日付と時刻」を作るということは、「日付の整数と、時刻の小数を足し算する」ことと同じなのです!

Excelの説明画像

Web版Excelの表示形式の罠

今回紹介する数式を入力すると、結果が「45991.58…」のような数値(シリアル値)で表示されることがあります。

これを「2025/11/30 13:56:41」のように見やすくするには、セルの表示形式を変更する必要があります。

しかし、無料のWeb版Excelでは、ユーザー定義の表示形式(yyyy/m/d hh:mm:ssなど)を自由に作成する機能が制限されています。

そのため、数式の結果を確認する際は、隣のセルなどに以下のTEXT関数を入力して、強制的に見やすく表示させて確認しましょう。

=TEXT(数式を入力したセル,"yyyy/m/d hh:mm:ss")

(※ローカル版Excelで作成したファイルの表示形式は、Web版でも引き継がれますよ!)

Excelの説明画像

5つのアプローチで「翻訳」せよ!

1. 王道!DATE関数とTIME関数で組み立てる

考えかた

最も基本的で、実務でも推奨される教科書的な方法です。

14桁の数字を「」「」「」「」「」「」のパーツに切り分け、
それぞれをDATE関数とTIME関数に入れて合体させます。

数式と解説

=DATE(MID(A1,1,4),MID(A1,5,2),MID(A1,7,2))+
TIME(MID(A1,9,2),MID(A1,11,2),MID(A1,13,2))

1. MID(A1, 開始位置, 文字数): この関数で数字を切り出します。

  • MID(A1,1,4) → “2025” (年)
  • MID(A1,5,2) → “11” (月)
  • …というように、秒まで切り出します。
Excelの説明画像

2. DATE(年, 月, 日): 切り出した年・月・日を使って、日付のシリアル値(整数)を作ります。

3. TIME(時, 分, 秒): 切り出した時・分・秒を使って、時刻のシリアル値(小数)を作ります。

4. DATE... + TIME...: 最後に日付と時刻を足し算すれば完成です!

Excelの説明画像

2. 数値の桁数に注目(数学的アプローチ)

考えかた

文字列操作(MID関数)を使わずに、数学的な計算(割り算と余り)だけでパーツを取り出す方法です。

データが「数値」であることを最大限に利用します。

数式と解説

=DATE(INT(A1/10^10),MOD(INT(A1/10^8),100),MOD(INT(A1/10^6),100))+
TIME(MOD(INT(A1/10^4),100),MOD(INT(A1/100),100),MOD(A1,100))

一見複雑そうですが、桁をずらしているだけです。

年の取得: INT(A1/10^10)

14桁の数字を10の10乗(100億)で割ると、「2025.1130…」となります。これをINTで整数にすれば「2025」が取り出せます。

月の取得: MOD(INT(A1/10^8),100)

10の8乗(1億)で割ると「202511.30…」、整数にすると「202511」。

これをMOD(..., 100)で100で割った余りを求めると、下2桁の「11」が取り出せます。

これを秒まで繰り返します。

Excelの説明画像

文字列が含まれていたらエラーになるため、純粋な数値データの時に使える、計算機的な解法です。

Excelの説明画像

3. Excelが読める形に変換(TEXTJOIN)

考えかた

Excelは賢いので、「2025/11/30」や「13:56:41」といった特定の形の文字列であれば、計算式の中で自動的に日付や時刻として認識してくれます。

そこで、パーツを切り出して「/」や「:」でつなぎ合わせます。

数式と解説

=TEXTJOIN("/",,MID(A1,{1,5,7},{4,2,2}))+TEXTJOIN(":",,MID(A1,{9,11,13},2))

1. MID(A1,{1,5,7},{4,2,2}): ここで配列定数を使っています!

開始位置 {1,5,7} と文字数 {4,2,2} を指定することで、{"2025", "11", "30"} という配列を一気に取得します。

Excelの説明画像

2. TEXTJOIN("/",, ...): 取得した配列を「/」で結合し、"2025/11/30" という文字列を作ります。

Excelの説明画像

3. 時刻も同様に TEXTJOIN(":",, ...)"13:56:41" を作ります。

4. "2025/11/30" + "13:56:41": 文字列同士ですが、足し算(四則演算)をすることで、Excelが「あ、これは日付計算だな」と気を利かせてシリアル値に変換してくれます。

Excelの説明画像

4. 日付も時刻もまとめて変換!(SUBSTITUTE)

考えかた

TEXT関数を使って、一気に形を整えたいところですが、ここには大きな落とし穴があります。

【失敗例】 =TEXT(A1,"0000-00-00 00:00:00")

これを実行すると、#VALUE! エラーになります。なぜでしょう?

Excelの説明画像

実はTEXT関数の表示形式の中でコロン:を使うと、Excelは「これは時間の形式だ!」と解釈しようとします。

しかし、元の数値があまりにも巨大(20兆…)なため、時間の許容範囲を超えてしまい、エラーを吐いてしまうのです。

コロンと同様に、日付にスラッシュ/を使うとエラーになります。

正解の数式と解説

=SUBSTITUTE(TEXT(A1,"0000-00-00 00x00x00"),"x",":")*1

1. TEXT(A1,"0000-00-00 00x00x00"): コロン:がダメなら、別の文字で代用すればいいのです。ここでは仮に「x」を使いました。

結果は "2025-11-30 13x56x41" という文字列になります。

Excelの説明画像

日付はハイフンを使用してもExcelは認識できます。

2. SUBSTITUTE(..., "x", ":"): 邪魔な「x」を本来の「:」に置換します。

これで "2025-11-30 13:56:41" という、Excelが理解できる形式の文字列が完成しました。

3. ... * 1: 最後に1を掛けることで、文字列を数値(シリアル値)に変換します。

Excelの説明画像

5. 一覧から同じものを探す(MATCH + SEQUENCE)

考えかた

最後は、「正解のリストを作って、そこから探す」という力技です。

「日付のリスト」と「時刻のリスト」を別々に生成し、MATCH関数で位置を特定します。

数式と解説

=MATCH(LEFT (A1,8),TEXT(SEQUENCE(TODAY()),"yyyymmdd"),0)+
(MATCH(RIGHT(A1,6),TEXT(SEQUENCE(86400,,0,1/86400),"hhmmss"),0)-1)/86400

この数式は「日付パート」と「時刻パート」に分かれています。

日付パート:

1. SEQUENCE(TODAY()): 1(1900/1/1)から今日までのシリアル値の連番を作ります。
2. TEXT(..., "yyyymmdd"): それらを”20251130″のような8桁の文字列に変換し、検索リストを作ります。

Excelの説明画像


3. MATCH(LEFT(A1,8), ..., 0): 元データの左8桁(日付部分)が、リストの何番目にあるかを探します。

見つかった位置(例えば45991番目)が、そのまま日付のシリアル値になります。

Excelの説明画像

時刻パート:

1. SEQUENCE(86400,,0,1/86400): 1日は86400秒です。0から始まり、1秒刻み(1/86400)で増える、1日分の時刻シリアル値リストを作ります。
2. TEXT(..., "hhmmss"): それを”135641″のような6桁の文字列に変換します。

Excelの説明画像

3. MATCH(...): 元データの右6桁(時刻部分)がリストの何番目かを探します。
4. (... -1)/86400: 見つかった位置を秒数に戻し、シリアル値(小数)に変換します。

Excelの説明画像

これらを足し合わせます。

Excelの説明画像

まとめ:シリアル値を制する者はExcelを制す!

ただの数字の羅列に見えるデータも、Excelの仕組み(シリアル値)を理解していれば、様々な方法で意味のある「日付と時刻」に蘇らせることができます。

実務ではアプローチ1のDATE+TIME関数や、アプローチ3のTEXTJOINが分かりやすくておすすめです。

しかし、アプローチ4のように「エラーの原因」を知り、それを回避するテクニックを知っておくことは、トラブルシューティングの大きな力になります。

ぜひ、手元のデータで試してみてくださいね!

タイトルとURLをコピーしました