エクセル習慣

【Excel】文字列から日付の変換&日付から文字列の変換

エクセルで日付を入れるときって「/(スラッシュ)」の入力が意外に困るんですよね。

僕なんかよく押し間違えるし、入れる場所が違うと変な日付になっちゃうし・・・

sakuma
sakuma

ニャ~・・・。

例えば、文字列としてyyyymmddの8ケタで入力できるようにして、別のセルで日付に変換、とか。

このやり方ならミスも減らせるかもしれないニャ。

日付の「/(スラッシュ)」を省略して入力する方法

エクセルでは日付に関する文字列操作をよくつかいます。

エクセルは、「月」と「日」の数値の間に「/(スラッシュ)」を入れれば日付として認識してくれます。

しかし、日付を連続して入力する際はこの「/」がとても面倒くさいし、誤操作(誤入力)のもとにもなります。

できれば数字だけ入力したいもの。

よくアプリケーションで見かけるパターンとしては、yyyymmdd書式で入力するか、カレンダーから選択する方式が採用されていますね。

yyyymmdd書式とは以下の通り。

yyyy=年(西暦)4ケタ

・・・例:2025年は2025

mm  =月2ケタ

・・・1ケタの月は先頭に0を入れて2ケタへ。   例:1月は「01」、2月は「02」

dd  =日2ケタ

・・・月同様、1ケタの日は先頭に0を入れて2ケタへ。例:1日は「01」、2日は「02」

ただし、文字列は文字の羅列なので、そのままだと日付から曜日を表示できなかったり、

+1日、+1か月、+1年などの計算ができなかったりします。

文字列から日付へ、あるいは日付から文字列への変換が必要です。

今回はこの2つの変換を解説していきます。

文字列から日付への変換

ここでいう日付の文字列はすべてyyyymmdd書式の文字列とします。

例えば2025年8月5日、これを文字列にすると”20250805”ですね。

この文字列から、「年」「月」「日」を取り出します。

「年」は左から4ケタの位置にあるので、ここは「LEFT関数」で取り出すことができます。

LEFT関数は、左から数えた文字数の文字を返す関数です。

「年」が取り出せました。

「月」は右(RIGHT)からも左(LEFT)からもアプローチできないので、ここは「MID関数」を使います。

MID関数・・・指定された位置から指定された文字数の文字を返します。

「月」は左から5文字目の2ケタなので、上のような数式です。

「月」が取り出せました。

「日」は右から2ケタの位置にあるので、ここは「RIGHT関数」で取り出します。

RIGHT関数は、右から数えた文字数の文字を返す関数です。

「日」が取り出せました。

あとは「DATE関数」で3つの数字、「年」「月」「日」を入れたら完成です。

1つのセルに数式入れるとこんな感じになります。

もし数字になった場合はセルの書式設定を「日付」に変更してみてくださいね.。

日付から文字列への変換

先ほどやったこととは反対に日付からyyyymmdd文字列に変換してみましょう。

この日付 ”2025/8/5” から、「年」「月」「日」を取り出します。

今度は書式がすでに「日付」なので、それぞれ「年」「月」「日」を意味する数字が決まっています。

3つの数字すべて決まった関数で返せるので簡単です。

  • 「年」・・・YEAR関数
  • 「月」・・・MONTH関数
  • 「日」・・・DAY関数

各関数の参照先をC1セルに設定してみました。

必要な数字が取り出せました。

あとは、3つの文字を「&」や「CONCAT」関数などで結合すれば完成なのですが、1つだけ注意点です。

このまま結合すると ”202585”になってしまい、「月」と「日」の境目が分かりずらい状態です。

「月」は”mm”、「日」は”dd”、それぞれ2ケタになるようにここで少し手を加えておきましょう。

数字が1~9の1ケタのときは十の位に”0”を入れたいので、ここでは「TEXT関数」を使います。

この「=TEXT(***,"00")」をMONTH関数とDAY関数に入れることで、必ず2ケタの数字になります。

あとは3つの数字を結合したら完成です。

1つのセルに数式入れるとこんな感じになります。今回は「&」で結合してみました。

まとめ

文字列から日付への変換、日付から文字列への変換、どちらもエクセルで使う機会は多いと思います。

覚えておくと月や年単位の集計をするときに、日付と文字列、どちらからでも変換できるので資料のつくりかたも幅が広がるので便利ですよ。

-エクセル習慣