Google スプレッドシートで8桁の日付の数字から、日付データに簡単に変換する方法
この記事はGoogle Workspace 標準機能 Advent Calendar 2024(令和6年)の14日目の記事です。
こんにちは!ゆるふわクラウドおじさん こと、Teeda と申します。『Google アプリの教科書シリーズ』という本を毎年Amazon で販売していたり、YouTube チャンネルやUdemy で学習用動画を公開しています。
前の記事に続き、日付関連のことを書こうと思います。
西暦の日付を和暦に変換する、ということと同じくらい、
日付データじゃない文字を、日付に変換する、
ということもよくあります。
例えばこの記事の公開日は
令和6年12月13日、2024年12月13日、2024年12月13日(金)、などの様々な表示形式がありますが、
「20241214」
というように入力されてたらどうしましょう。
いくつかやり方を解説します。
日付データが8桁の数字で入力されている
日付データを8桁の数字で入力している表をたまに見ます。
こんな感じです。
このような数字のデータだと、指定した日数を足し算、引き算した際に、
31日の次は、翌月の1日、というような計算ができなくて不便がたくさんです。
日付のデータ型にするいくつかのやり方を紹介します。
表示形式を「日付」にするだけではだめ
8桁の数値の表示形式を「日付」にしても、
このようになってしまいます。
日付のデータは、1899年12月31日からの経過日数の整数値(日付シリアル)を使用するため、8桁の数値を日付形式として表示すると、2024年から見ると、とんでもない未来の日付が表示されます。
※Google スプレッドシートでは、日付の数値にマイナスの値を入れると、1899年12月30日以前の日付を表示できます。Excel とは異なる結果が表示されて楽しいです。日付シリアルについてはこの記事では厳密な説明は省略します。
表示形式を変更するだけではいけません。
8桁の数字を[年][月][日]に分割?
8桁の数字が「年」が4桁、「月」が2桁、「日」が2桁、として統一されているなら、
その文字列の左から4文字、左から5文字目から2文字、右から2文字を抽出すると、[年][月][日]にデータを分割できます。
=LEFT(B2,4)
=MID(B2,5,2)
=RIGHT(B2,2)
このデータを、DATE 関数というものを使用して、日付データとなるようにします。
すると、関数によって表示されたデータが、
右揃えとなっていて、日付(あるいは数値)データとなっていることを確認できます。
=DATE(D2,E2,F2)
TEXT 関数で日付…のように見える文字列を作成
8桁の数値として正確に入力されているのなら、
左から4文字を「年」部分として表示し、そのあとに「/」を表示し、
左から5文字目と6文字目をを「月」部分として表示し、そのあとに「/」を表示し、
左から7文字目と8文字目を「月」部分として表示。
ということをTEXT 関数を使用することで定義できます
=TEXT(B2,"0000""/""00""/""00")
すると、関数によって表示されたデータが、
左揃えとなっていて、文字列のデータとなっていることを確認できます。
DATEVALUE 関数で日付シリアルに型変換
日付のような文字列を、DATEVALUE 関数を使用して、日付データとして使用できるように変換します。
このように、2024/12/15という文字が、
1899年12月31日から「45641」日経過した日付、という数値データに変換されました。
この日付シリアルの表示形式を変更することで、日付データとして見やすいものとできます。
この、DATE 関数とDATEVALUE 関数を1つのセルで定義するとこのようになります。
=DATEVALUE(TEXT(B2,"0000""/""00""/""00"))
まとめ:やりやすいこと、みんながわかりやすいことを大事に作りましょう
Google Workspace 標準機能 Advent Calendar 2024の14日目の記事でした。
日付を8桁の数値でそもそも入力するな、と思う人もいると思いますが、
ウェブサイトのURLやファイル名などに「/」や「-」などを使用できない、という制約があり、8桁の数値を使用しないといけないというシーンはあります。
そんなとき、瞬時に8桁の数値から西暦の日付データに変換したり、
日付データを8桁の数字に変換できると、
業務効率を向上させられます。
TEXT 関数とDATEVALUE 関数2つを使用することで、操作する列を1つだけにして変換できるのですが、このような実装をされて、この関数を使った人以外の人は理解できるだろうか?というのを考えてみましょう。
自分以外の人も、自分と同じくらい、あるいはそれ以上に表計算ソフトに慣れているなら、TEXT 関数とDATEVALUE 関数を見ても意味を理解できるかと思います。
あまりパソコンが得意ではなくて「なんもしてないのに関数が壊れた」というようなことを言ってくる人とも一緒に使用するシートなら、何をしているかの経過がわかりやすかったり、関数名で処理の内容がわかりやすい「LEFT」「MID」「RIGHT」と「DATE」を使用するのもよいかもしれません。
なるべく標準機能を使う、自分以外の人もわかりやすい関数や機能を使用することで、組織全体としてレベルの高いGoogle スプレッドシートの活用ができるようにしていきましょう!
Google Workspace 標準機能 Advent Calendar 2024のご参加者さん、お待ちしています。