論理式とは?Excel論理式の詳細解説: 数値、文字、日付、時刻データの比較
Excelの論理式はデータの比較や条件式の作成に不可欠なツールです。
IF関数・IFS関数や条件付き書式や入力規則などで利用される、条件検査に使う式です。また、「条件付き書式」の「数式を使用して、書式設定するセルを決定」欄にも利用できます。
今回は数値、文字、日付、時刻データの比較に関して論理式の活用方法を具体的に解説します。
Excelの論理式は、特定の条件が真(TRUE)または偽(FALSE)であるかをテストするための式です。
左辺のデータと右辺のデータを比較したテストが真であれば「TRUE」を返します(正しい状態ならTRUE)。偽であれば「FALSE」を返します(誤りである状態ならFALSE)。式であるので先頭は「=」で開始します。
数値データと比較する論理式
数値データの比較はExcelの論理式の基本中の基本です。比較演算子(<>=)を使用して数値の比較を行います。比較演算子は必ず半角で入力してください。
等しい(=): A1セルの数値が10に等しいかどうかをテストします。
=A1=10
等しくない(<>): A1セルの数値が10と等しくないかどうかをテストします。「><」では動作しません。
=A1<>10
より大きい(>)または小さい(<): A1セルの数値が10より大きい、または小さいかどうかをテストします。
=A1>10 // 10より大きいか =A1<10 // 10より小さいか
以上(>=)または以下(<=): A1セルの数値が10以上か、または以下かどうかをテストします。記号を2つ使いますが、不等号(<>)が先で、等号(=)は後です。
=A1>=10 // 10以上か =A1<=10 // 10以下か
文字データと比較する論理式
文字列の比較では、数値と同じく比較演算子を使用します。ただし、文字列を比較する際にはダブルクォーテーション(“”)で囲む必要があります。
等しい(=): A1セルの文字が”apple”に等しいかどうかをテストします。
=A1="apple"
等しくない(<>): A1セルの文字が”apple”と等しくないかどうかをテストします。
=A1<>"apple"
空白である(=””): 空白は二重引用符(ダブルクォーテーション)を重ねることで表現します。A1セルの文字が””に等しいかどうかをテストします。
=A1=""
空白でない(<>””): A1セルの文字が”apple”と等しくないかどうかをテストします。
=A1<>""
日付データと比較する論理式
日付データの比較では、DATE関数や直接入力した日付データを使用します。日付データはダブルクォーテーション(“”)で囲む必要があります。
等しい(=): A1セルの日付が2023年1月1日に等しいかどうかをテストします。
=A1=DATE(2023, 1, 1)
=A1="2023/1/1"
より大きい(>)または小さい(<): A1セルの日付が2023年1月1日より後、または前であるかをテストします。
=A1>DATE(2023, 1, 1) // 2023年1月1日より後であるか =A1<DATE(2023, 1, 1) // 2023年1月1日より前であるか
時刻データと比較する論理式
時刻データの比較では、TIME関数や直接入力した時刻データを使用します。時刻はダブルクォーテーション(“”)で囲む必要があります。
等しい(=): A1セルの時刻が午後3時に等しいかどうかをテストします。
=A1=TIME(15, 0, 0)
=A1="15:00:00"
等しくない(<>): A1セルの時刻が午後3時と等しくないかどうかをテストします。
=A1<>TIME(15, 0, 0)
=A1<>"15:00:00"
より大きい(>)または小さい(<): A1セルの時刻が午後3時より前、または後であるかをテストします。
=A1>TIME(15, 0, 0) // 午後3時より後であるか =A1<TIME(15, 0, 0) // 午後3時より前であるか
特定の時間範囲内にある: A1セルの時刻が午前9時から午後5時の間にあるかをテストします。
=AND(A1>=TIME(9, 0, 0), A1<=TIME(17, 0, 0))
AND論理演算について
AND関数は、すべての条件が真である場合にTRUEを返します。複数の条件を同時に満たすかどうかを確認するのに使用します。
数値データとの比較:
=AND(A1>10, A1<20) // A1の値が10より大きく、20より小さい
日付データとの比較:
=AND(A1>=DATE(2023, 1, 1), A1<=DATE(2023, 12, 31)) // A1の日付が2023年の間
時刻データとの比較:
=AND(A1>=TIME(9, 0, 0), A1<=TIME(17, 0, 0)) // A1の時刻が9:00から17:00の間
OR論理演算について
OR関数は、いずれか一つでも条件が真である場合にTRUEを返します。複数の条件から一つでも満たすものがあるかどうかを確認するのに使用します。
数値データとの比較:
=OR(A1<10, A1>20) // A1の値が10より小さいか、20より大きい
日付データとの比較:
=OR(A1<DATE(2023, 1, 1), A1>DATE(2023, 12, 31)) // A1の日付が2023年より前または後
時刻データとの比較:
=OR(A1<TIME(9, 0, 0), A1>TIME(17, 0, 0)) // A1の時刻が9:00より前または17:00より後
NOT論理演算について
NOT関数は、指定した条件が偽である場合にTRUEを返します。条件が真ではない場合を確認するのに使用します。
数値データとの比較:
=NOT(A1=10) // A1の値が10ではない
日付データとの比較:
=NOT(A1=DATE(2023, 1, 1)) // A1の日付が2023年1月1日ではない
時刻データとの比較:
=NOT(A1=TIME(15, 0, 0)) // A1の時刻が15:00ではない
XOR論理演算について
XOR関数は、いずれか一つだけ条件が真である場合にTRUEを返します。複数の条件から一つだけが満たされているかどうかを確認するのに使用します(排他的論理和・図)。
数値データとの比較:
=XOR(A1>=10, A1=<20) // A1の値が10以上または20以下だが、両方ではない
日付データとの比較:
=XOR(A1>=DATE(2023, 1, 1), A1=<DATE(2023, 12, 31)) // A1の日付が2023年1月1日以降または12月31日以前だが、両方ではない
時刻データとの比較:
=XOR(A1>=TIME(9, 0, 0), A1<=TIME(17, 0, 0)) // A1の時刻が9:00以降または17:00以前だが、両方ではない
参考:その他の論理値/真偽値を返す関数
上記以外にもTRUE,FALSEを返す関数が多数あります。それらの確認は以下のページを参照してください。
コメント