Excel(エクセル)で常に今日の日付を表示したい時はTODAY関数をセルに入力します。
ここに「現在」という文字列を加えたいなと思い、数式につなげて「&”現在”」と入れてみると、日付の部分が謎の数値になってしまいました。
これを正しく表示させるにはどうしたら良いでしょう?というのが今回のお題です。
※解説画像はMicrosoft365のExcelを使用しています
数値の正体は「シリアル値」
先の例で「44352」と表示されたのは日付のシリアル値です。Excelの日付は1900年1月1日を「1」とし、以降は1日1ずつ増えてゆく数値が本来の姿です。ただ、そのままの表示だとわかりづらいので、ある決まった型(6/5、6-5、6月5日 等)で値が入力されると自動的に私たちが日付と認識できる書式に整えてくれているのです。
しかし、そこに「現在」のような定形外の文字列が混在すると、Excelは「ここに入力されたのは日付ではなく文字列」と判断してしまうため、日付ではなく本来のシリアル値のままで表示されてしまいます。
このような時に役立つのが「TEXT(テキスト)関数」です。
TEXT(テキスト)関数とは
TEXT関数は、シリアル値のような数値に対し、指定した書式を適用して文字列に変換してくれるものです。関数の分類は「文字列操作」に属します。
引数(ひきすう)はこちらのようになります。
=TEXT(値,表示形式)
「値」には、数値/結果が数値となる数式/数値が入力されたセル番地などを指定します。
「表示形式」には数値をどのように表示させるかを指定するのですが、どんな形式の入れ方があるのかは「セルの書式設定」ダイアログボックスの[表示形式]タブで「ユーザー定義」をクリックした時に出てくる日付のパターンが一応の参考にはなります。
ただし、ダイアロアグボックスにあるパターンをそのままコピペするだけではエラーになります。たとえば表示形式で日付のシリアル値を「1月1日」と表示する場合は「m“月”d“日”」というように「月」や「日」などの文字列の前後を「”」(ダブルクォーテーション)で囲みますが、TEXT関数では表示形式そのものの前後に「”」をつける、という違いがある点に注意しましょう。
以下は代表的な日付表示パターンの入力例です。
表示形式の入力例 | 日付の表示 | 補足 |
---|---|---|
“m/d” | 1/1 | 「01/01」は “mm/dd” |
“m月d日” | 1月1日 | 「01月01日」は “mm月dd日” |
“yyyy/mm/dd” | 2021/01/01 | yを2つにすると西暦下2桁になる |
“ggge年m月d日” | 令和3年1月1日 | ge年にすると「R3年」(略式元号)になる |
“(aaa)” | (土) | (aaaa)にすると「土曜日」になる |
※曜日の表示形式(aaa)や(aaaa)はそれ単体でも日付の表示形式につなげて設定しても大丈夫です。
日付を文字列に変換して他の文字列と結合する
では、今回のお題である「今日の日付」に「現在」を加えた文字列を作ってみましょう。
「値」の部分はTODAY関数をそのまま入れ、日付の形式は「2021年6月5日(土)」となるように入力するとこうなります。
=TEXT(TODAY(),”yyyy年m月d日(aaa)”)
上図のように関数パレットを使って数式を作成している時は、ここで一旦Enterで数式を確定しましょう。(セルや数式バーに直接数式を入力している場合は、確定せずにそのまま進めて大丈夫です)
続けてこの数式に「現在」という文字列を追加しますので、(関数を一旦確定した場合はF2を押して編集モードにしてから)式の終端に直接「&”現在”」と入力します。
入力が終わりましたらEnterを押して数式を確定します。これでファイルを開いた時は常に(今日の日付)現在と表示されるようになります。
『文字列は前後を「”」で囲み、TEXT関数と&でつなぐ』と、こちらの例のように数式の前後に任意の文字列を追加することも可能です。
今回の例はTEXT関数の中に直接TODAY関数を組み込みましたが、TODAY関数や日付が入力されたセルを参照させて「〇〇現在」と表示したい時は、引数の「値」に参照したいセル番地を入力してください。