Introduction
Ver. all 2016 2019 2021 2024 365
エクセルでいつものようにIF関数の中で日付を使ったら上手くいかない!?
日付をダブルクォーテーション「””」で囲んでもダメ。
そんな時はDATE関数かDATEVALUE関数で対処しましょう。
実際には、こんな場合です。
下の表で、1/5以降に「〇」を表示したかったとします。

結果は、下のようになる予定です。

「C2」にIF関数を使用して数式を作成します。
=IF(A2>=2026/1/5,”〇”,””)

[関数の引数]画面では下画像のように設定。

結果は・・・。
全部「〇」になってしまいました・・・。

IF関数での条件式で、日付をそのまま入力すると正しく判定してくれません。
そこで、日付を関数でシリアル値に変更して指定する必要があります。
その日付をシリアル値に変更する関数には、DATE関数かDATEVALUE関数を使用します。
どちらでも良いので、馴染みのある方を使用しましょう。
DATE関数を使用する方法から順番に説明します。

2つの関数から選んで欲しいにゃ
DATE関数を使用する
では、日付指定にDATE関数を使用する方法です。
下の表で、1/5以降に「〇」を表示したかったとします。

IF関数の引数入力画面を表示したら、

条件式の途中まで入力して、

日付を入れる場所まで来たらDATE関数をネストします。
※ネスト・・・関数を入れ子にすること。
左上の[名前ボックス]の右側をクリックして、

一覧の一番下にある[その他の関数]を選びます。

表示された画面でDATE関数を探して[OK]をクリック。

IF関数の中にDATE関数が入ってくれます。

DATE関数・・・指定された日付を返す関数(シリアル値を返す)
=DATE(年,月,日)
- 年・・・年を指定
- 月・・・月を指定
- 日・・・日を指定
引数は、年月日をそのまま入力するだけです。

これですぐ[OK]を押してはいけません。
まだ数式全体は完成していないので、前のIF関数に戻る必要があります。
[数式バー]のIFの文字をクリックします。

すると、「IF関数」の引数入力画面に戻ってくれます。

後は、条件による結果を入力するだけです。

[OK]を押して、表示された結果を下にオートフィル機能を使用してコピーすれば終了です。

完成した数式は下のようになります。
=IF(A2>=DATE(2026,1,5),"〇","")
DATEVALUE関数を使用する
次に、DATE関数の代わりにDATEVALUE関数を使う場合です。
手順は全く同じで、DATE関数の場所でDATEVALUEを選びます。

DATEVALUE関数・・・文字列をシリアル値(日付)に変換する。
=DATEVALUE(日付文字列)
- 日付文字列・・・(例)DATEVALUE(“2025/01/01”)
引数は下のように指定します。

日付をダブルクォーテーション「””」で囲んであげるのを忘れずに。
これで同じように結果が表示されます。
=IF(A2>=DATEVALUE("2026/1/5"),"〇","")
まとめ
Excelは日付を常に「シリアル値」という値で扱っています。
しかし、IF関数の中では、そのシリアル値ではなく文字として認識してしまいます。
そのため関数を使って日付の形式に変換してあげる必要があるのですね。
今回使用したDATE関数は下のリンク先に説明があります。

DATEVALUE関数はこちら。

参考にしてください。

日付で比較演算子を使う時はちょっと注意が必要だにゃ

