IF関数で日付を比較する時の数式の書き方|大小を判定

ここでは、IF関数で「日付を比較する時の数式の書き方」を解説します。

 

IF関数の条件式で日付を扱う場合には、状況によって数式の書き方が変わりますので、その説明です。

1.まずはやりたいことを確認

まずは、やりたいことを例を含めて確認します。

 

1-1.日付の大小を比較・判定し表示を変えたい

やりたいことは、「日付の大小を比較・判定し表示を変える」です。

 

2つの日付を比較し、どちらが大きいかによってセルに表示させる値を変えます。

 

例えば、「予約開始日」と「今日」を比較し、予約開始日の方が大きければ「予約不可」を、小さければ「予約可能」と表示させるなどです。

 

1-2.例で確認

一つ例を見てみましょう。

A列の日付とセルD2の予約開始日を比較し、同じかA列の日付の方が大きければ「可」を、小さければ「不可」をB列に表示させてみます。

 

例では4月6までに「不可」を、4月7日以降に「可」を表示できました。

 

このように、2つの日付を比較し大小によって表示を変える方法をこの後説明します。

2.数式の基本形とポイント、比較演算子の種類

次に、IF関数で日付を比較する数式の基本形とポイント、各数式の形、作り方を見てみます。

 

2-1.数式の形

まず、数式の基本形は次の通りです。

※条件が「日付1が日付2『以上』か?」の場合

 

日付の比較の上で大事なのは、「論理式(日付1>=日付2)」のところです。

 

「一つ目の日付」 → 「比較演算子」 → 「二つ目の日付」の順に書くことで、「2つの日付の比較」ができます。

 

2-2.数式作成のポイント

まず、数式作成のポイントは次の通りです。

ポイント
  • 日付を「式内で指定」か「セル番号で指定」かで式の形が変わる
  • 「式内で指定」する場合は「DATEVALUE関数」が必要
  • 「セル番号で指定」する場合は「そのまま」入れる
  • 「真の場合」と「偽の場合」の入れ方は基本通り
  • 条件に応じて「比較演算子」を使い分ける

数式の形は、日付を「式内で指定する」か「セル番号で指定する」かで変わります。

 

また、条件に応じて「比較演算子」を使い分ける必要があります。

 

なお、「真の場合」と「偽の場合」の入れ方は基本通りです。

 

2-3.比較演算子(不等号)の種類

比較演算子(不等号)には種類があり、次の通りです。

判定内容 演算子
超える  >
未満 <
以上  >=
以下  <=

※ 判定内容は「右辺の値に対して」です

3.日付を式内で指定する方法

「式内で指定する」とは、例えば「4月1日」という日付を数式に直接入れることです。

 

この場合の数式の形と作り方を見てみます。

 

3-1.数式の形

数式作成のポイントで述べた通り、日付を式内で指定する場合には「DATEVALUE関数」を組み合わせる必要があります。

 

例えば、「日付2を式内で指定する」場合、数式の形は次のようになります。

=IF(日付1>=DATEVALUE("日付2"),真の場合,偽の場合)

※ 比較条件が「以上」の場合

 

日付1には「一つ目の日付の入ったセル番号」を入れ、日付2には「二つ目の日付」を入れます。

 

ちなみに、比較演算子は「>=(以上)」としていますが、条件に応じて変更してください。

 

数式の例は、次の通りです。

=IF(A1>=DATEVALUE("4/1"),"可","不可")

 

3-2.数式の作り方

次に、数式の作り方を見てみます。

上の表のセルB2に、「『セルA2の日付』が『4月7日』以上であれば『可』を、未満であれば『不可』を表示させます。

 

以下手順です。

 

(1)以下の数式をコピーし、セルに貼り付ける

【コピーする数式】

=IF(日付1>=DATEVALUE("日付2"),真の場合,偽の場合)

 

(2)「日付1」の文字を消し、「一つ目の日付の入ったセル番号」を指定する

 

(3)「日付2」の文字を消し、「二つ目の日付」を入れる

 

(4)「真の場合」、「偽の場合」の文字を消し、それぞれ指定する

 

(5)Enterキーを押せば完了

 

必要に応じて数式を下にコピーします。

このように、IF関数の式内に日付を入れる時にはDATEVALUE関数を使います。

4.日付をセル番号で指定する方法

「セル番号で指定する」とは、例えばセルA1に「4月1日」と入っていた場合、「A1」というセル番号を数式に入れることです。

 

次に、この場合の数式の形と作り方を見てみます。

 

4-1.数式の形

数式の形は、前述の基本形そのままで次の通りです。

=IF(日付1>=日付2,真の場合,偽の場合)

日付1、日付2それぞれに「日付の入ったセル番号」を入れます。

 

ちなみに、比較演算子は「>=」としていますが、条件に応じて変更してください。

 

数式の例は、次の通りです。

=IF(A2>=D2,"可","不可")

 

4-2.数式の作り方

次に、数式の作り方を見てみます。

上の表のセルB2に、「『セルA2の日付』が『セルD2の日付』以上であれば『可』を、未満であれば『不可』を表示させます。

 

以下手順です。

 

(1)セルに「=IF(」と入力する

 

(2)「一つ目の日付の入ったセル番号」を指定する

 

(3)比較演算子を入れる

 

(4)「二つ目の日付の入ったセル番号」を指定する

 

(5)「,」入力後、「真の場合」を指定、その後「,」を入れ、「偽の場合」を指定する

 

(6)Enterキーを押せば完了

 

必要に応じて数式を下にコピーします。この時セルD2は「カーソルを当ててF4キーを1回押す」ことで絶対参照にすると、コピーしても参照先は変わりません。

5.文字列の日付を比較するには

業務システムなどから吐き出したデータを使う場合、「見た目は日付でも『文字列』になっている」ことがあります。

 

5-1.例を確認

一つ例を見てみましょう。

上の例は、赤枠をわざと文字列にしたものです。日付が文字列だと、そのままでは正しい結果が返ってきません。

先ほど説明した「セル番号で指定」の数式を作った場合、返ってくる値は「不可」が正しいのに「可」が返ってきます。

 

このように、「日付が文字列」の場合には、ひと工夫が必要になってきます。

 

5-2.DATEVALUE関数を使う

「日付が文字列」の場合にも、DATEVALUE関数を使うとうまくいきます。

 

例えば、日付1で指定したい値が文字列の形でセルに入っていた場合、数式の形は次のようになります。

=IF(DATEVALUE(日付1)>=日付2,真の場合,偽の場合)

日付1にセル番号が入る場合には、DATEVALUE関数内に「""」は入れないようにします。

 

数式の例は、次の通りです。

=IF(DATEVALUE(A2)>=D2,"可","不可")

これでうまくいくようになります。

6.日付の比較がうまくいかない原因と対処法

日付の比較がうまくいかない場合には、次のことが考えられます。

 

6-1.「日付を式内で指定」でDATEVALUE関数を使っていない

日付を式内で指定する際にDATEVALUE関数を使っていないと、比較がうまくいきません。

上の例だと論理式は、「セルA2は4÷7以上か?」という意味になってしまいます。

 

このように、DATEVALUE関数を使うようにしましょう。

 

6-2.「文字列の日付」にDATEVALUE関数を使っていない

文字列の日付にDATEVALUE関数を使っていないと、やはり比較はうまくいきません。

DATEVALUE関数を使わずに「セルA2」と「セルD2」の比較をしてみると、「セルA1のほうが大きい」と間違った判定をしてしまいます。

 

日付が文字列の場合にも、DATEVALUE関数を使うようにしましょう。

7.今日の日と比較する

最後に、「ある日付を『今日の日』と比較」する簡単な方法です。

 

7-1.「今日の日」はTODAY関数で簡単に求められる

「今日の日」はTODAY関数で簡単に求められます。

 

例えば、日付2にTODAY関数を使う場合、数式は次のようになります。

=IF(日付1>=TODAY(),真の場合,偽の場合)

TODAY関数は、「カッコ内に何も入れる必要がありません」。

 

なので、比較する日付は「日付1のみ」を指定すればOKです。

 

7-2.例を確認

一つ例を見てみましょう。

今日は「6月22日」です。セルB2に入れた数式は、次の通りです。

=IF(A2>=TODAY(),"可","不可")

 

これで、「セルA2の日付」と「今日の日(6月2日)」の比較ができます。

 

もちろん「今日の日」との比較なので、明日には「6月23日」との比較になります。

 

以上、参考になれば幸いです。

 


口コミ・評判のいいExcel本の紹介】


Top