Excel(エクセル)での日付がIF関数で比較できないときの対処法

スポンサーリンク
スポンサーリンク

スポンサーリンク

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関数は下のリンク先に説明があります。

Excel(エクセル)で翌月の1日、5日、20日など特定の日付を表示する|DATE関数の使い方
Excel(エクセル)でのDATE関数の使い方です。翌月の1日、5日、20日など特定の日付を表示する方法を例として説明します。

DATEVALUE関数はこちら。

Excel(エクセル)で数値を日付に変換する方法|DATEVALUE関数の使い方
Excel(エクセル)では、日付をシリアル値で扱っています。別々のセルに入力された数値を合体して日付として扱うことができるDATEVALUE関数を紹介します。

参考にしてください。

 

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