Excel では、日付をシリアル値という数値で管理します。

人間は下図のような 8 桁の数字を見たときに、これは日付を表しているなと理解できますが、Excel にとっては単なる 8 文字、または 8 桁の数値です。

今回は TEXT 関数を使った数式を利用して 8 文字 (または 8 桁の数値) を Excel が日付だと認識できる形式に変換する方法について紹介します。

元データを使って処理した結果を別のセルに表示したい、元データが変わったら処理結果も更新されるようにしたい、という場合は、区切り位置ウィザードで行うよりも数式で処理するほうがよいでしょう。

TEXT 関数の数式を作る

  1. 日付を表示したいセルに、
     =TEXT(元データのセル , 表示形式* 1
     
    という数式を作成します。
     
     たとえば下図では、元データはセル A2、適用したい表示形式は「0000!/00!/00」なので、
     =TEXT(A2 , "0000!/00!/00"* 1
     
    です。 

     

  1. 日付に変換したときに得られるシリアル値が表示されます。(え?! ってびっくりしないでくださいな) 
  1. 数式を作成したセル (シリアル値が表示されているセル) を選択して表示形式を適用します。
     
     リボンの [ホーム] タブの [数値] グループにある [表示形式] の一覧でもよいし、[セルの書式設定] ダイアログ ボックスの [表示形式] タブで OK です。  
  1. 表示形式を適用した結果の例がこちら↓です。
  1. 数式を作成したセルを同じ列の下方向へコピーしてできあがり。 

おまけ 1

TEXT 関数は処理結果を文字列で返す関数です。

前述の数式の最後に「*1」と指定して 1 をかける、という処理を加えているのは、文字列として返ってきている結果を数値にするために行っている処理です。

「*1」を付け加えなくてもちゃんと表示されてるじゃん、と思うかもしれませんが、「*1」を加えないと文字列のままとなってしまうため、日付 (シリアル値=数値) とする処理をしておきましょう。

おまけ 2

「"0000!/00!/00"」の「!」は、やってみたらわかるんですが、「/」の前に「!」(もちろん半角) を指定しないと、「/」は割り算をするための演算子として認識されてしまい処理結果がエラーになります。

「!」は、「!の右側にある文字を (演算子ではなく) そのままの意味で使ってね」と指示するために付けています。

表示形式を「"」 (ダブル クォーテーション) で括ることをお忘れなく。


 今回こちらを紹介しようと思ったのは、Excel を教えてほしいと頼まれたお友達に、いろいろやることはあるけどとりあえず日付は自分で入力しておいてねとお願いしたら 8 桁の数値で入れてくれていたことがきっかけでした。(しかも結構大量に)

シリアル値などのお話をして、次は日付で入れておいてねとお願いしましたが、果たして次回はどうなっているでしょうか。

石田 かのこ