論理関数とは、ある条件が満たされているかどうかを判断するための関数で、結果は基本的に「TRUE」(真)や「FALSE」(偽)といった形で返されます。
そのため、単独で使用するというよりは、ほかの関数、例えばIF関数などと組み合わせて使うことでその力を発揮するものが多くあります。
サンプルデータlogic-function_es.xlsx「論理関数(演習)」を開きます。
尚、このマニュアルでは特に断らない限り、ショートカットキーで「関数の挿入」ダイアログ ボックスを開き、「関数の分類」から関数名のリストを表示させる手順で説明します。
その他の方法での関数の入力手順については関数の入力方法を参照してください。
論理関数リストの表示
「関数の挿入」ダイアログ ボックスでは、以下の手順で論理関数のリストを表示させることができます。
- 1. 数式を入力するセルに移動します。
- 2. Shift + F3 キーで「関数の挿入」ダイアログ ボックスを開きます。
- 3. Tab キーを押して「関数の分類」のコンボ ボックスに移動します。
- 4. 上下方向 キーを押して「論理」に移動してTab キーを押します。関数名のリストが表示されます。
(注) 各関数の入力手順の説明は、関数名のリストが表示された状態から行います。
全ての引数が真かどうか判定するAND関数
AND関数は、すべての引数が「TRUE」の場合に「TRUE」を返します。もし1つでも「FALSE」があれば「FALSE」を返します。
【書式】 =AND(論理式1,[ 論理式2],...)
【説明】 論理式1: 必ず指定します。TRUEまたはFALSEとして判定される1つ目の条件です。
論理式2,...: 省略可能です。TRUEまたはFALSEとして判定される2つ目以降の条件です。条件は最大255個まで指定できます。
(1) 2つの条件式を判定する
複数の結果がすべて「TRUE」だった場合に「TRUE」を返す場合の手順は以下の通りです。
ここでは、シート「AND(1)」のセルC8およびC9に、セルA8とB8、セルA9とB9の得点がすべて60点以上の場合に「TRUE」を表示します。
シート「AND(1)」を選択します。
- 1. セルC8に移動します。
- 2. 「関数の挿入」ダイアログ ボックスから、論理関数のリストを表示させます。
- 3. 下方向 キーを押して「AND」に移動してEnter キーを押します。関数入力のウィンドウが開き「論理式1」が選択されています。
- 4. 「論理式1」に『a8>=60』と入力します。
- 5. Tab キーを押して「論理式2」に移動します。
- 6. 「論理式2」に『b8>=60』と入力してEnter キーを押します。セルC8に「TRUE」が表示されます。これは、セルA8とB8の両方が60点以上となっているためです。
【入力された数式】 =AND(A8>=60,B8>=60) - 7. Ctrl + C キーでセルC8の数式をコピーします。
- 8. 下方向 キーを押してセルC9に移動します。
- 9. コピーした数式を「数式の貼り付け」で貼り付けます。セルC9に「FALSE」が表示されます。これは、セルB9の得点が60点未満で、すべての条件を満たしていなかったためです。
【入力された数式】 =AND(A9>=60,B9>=60)
(2) IF関数の条件として判定結果を返す
次に、(1)の応用として、IF関数との組み合わせで「合格」「不合格」の表示をさせます。
ここでは、シート「AND(2)」のセルC6およびC7に、セルA6とB6、セルA7とB7の得点がすべて60点以上の場合に「合格」を表示します。そうでなければ「不合格」を表示します。
シート「AND(2)」を選択します。
- 1. セルC6に移動します。
- 2. 「関数の挿入」ダイアログ ボックスから、論理関数のリストを表示させます。
- 3. 下方向 キーを押して「AND」に移動してEnter キーを押します。関数入力のウィンドウが開き「論理式1」が選択されています。
- 4. 「論理式1」に『a6>=60』と入力します。
- 5. Tab キーを押して「論理式2」に移動します。
- 6. 「論理式2」に『b6>=60』と入力してEnter キーを押します。セルC6に「TRUE」が表示されます。これは、セルA6とB6の両方が60点以上だったためです。
- 7. F2 キーを押してセルC6を編集状態にします。
- 8. 「=」と「AND」の間に『if(』と入力します。
- 9. End キーを押して文字列の末尾に移動します。
- 10. 『,"合格","不合格")』と入力してEnter キーを押します。セルC6の「TRUE」の表示が「合格」に変わります。
【入力された数式】 =IF(AND(A6>=60,B6>=60),"合格","不合格") - 11. Ctrl + C キーでセルC6の数式をコピーします。
- 12. 下方向 キーを押してセルC7に移動します。
- 13. コピーした数式を「数式の貼り付け」で貼り付けます。セルC7に「不合格」が表示されます。これは、セルB7の得点が60点未満となっていて、すべての条件を満たしていなかったためです。
【入力された数式】 =IF(AND(A7>=60,B7>=60),"合格","不合格")
論理式の結果を求めるIF関数
IF関数は、条件を判定した結果がTRUEの場合にある値を返し、FALSEの場合は別の値を返します。
また、複数のIF関数を入れ子にして使用することもできます。入れ子にできる数は最大64個までです。
【書式】 =IF(論理式,[真の場合],[偽の場合])
【説明】 論理式: 必ず指定します。TRUEまたはFALSEとして判定する対象です。
真の場合: 省略可能です。論理式が「TRUE」として判定された場合に返される値です。
偽の場合: 省略可能です。論理式が「FALSE」として判定された場合に返される値です。
【ワンポイント】 「真の場合」と「偽の場合」は省略可能となっていますが、省略した場合には、返される値が「0」(ゼロ)となることがあるので、基本的には両方を指定するのがよいでしょう。
以下に1つのIF関数と複数のIF関数を利用した際の手順を示します。
(1) 1つのIF関数の結果を表示する
ここでは、シート「IF(1)」のセルB6およびB7に、セルA6とA7の得点が60点以上かどうかを判定して「合格/不合格」を表示します。
シート「IF(1)」を選択します。
- 1. セルB6に移動します。
- 2. 「関数の挿入」ダイアログ ボックスから、論理関数のリストを表示させます。
- 3. 下方向 キーを押して「IF」に移動してEnter キーを押します。関数入力のウィンドウが開き「論理式」が選択されています。
- 4. 「論理式」に『a6>=60』と入力します。
- 5. Tab キーを押して「真の場合」に移動します。
- 6. 「真の場合」に『合格』と入力します。
- 7. Tab キーを押して「偽の場合」に移動します。
- 8. 「偽の場合」に『不合格』と入力してEnter キーを押します。セルB6に「合格」が表示されます。これは、セルA6の得点が60点以上だったためです。
【入力された数式】 =IF(A6>=60,"合格","不合格") - 9. Ctrl + C キーでセルB6の数式をコピーします。
- 10. 下方向 キーを押してセルB7に移動します。
- 11. コピーした数式を「数式の貼り付け」で貼り付けます。セルB7に「不合格」が表示されます。これは、セルA7の得点が60点未満だったためです。
【入力された数式】 =IF(A7>=60,"合格","不合格")
(2) 複数のIF関数が入れ子になった結果を表示する
複数のIF関数を入れ子にして使用する場合は、「関数挿入」のダイアログ ボックスは使わず、直接セルに入力するのがよいでしょう。
ここでは、シート「IF(2)」のセルB6からB9に、セルA6からA9までの得点により「優/良/可/不可」を表示します。
基準は、優=80点以上、良=70点以上、可=60点以上、不可=60点未満です。
シート「IF(2)」を選択します。
- 1. セルB6に移動します。
- 2. F2 キーを押して編集状態にします。
- 3. 『=if()』と入力します。
- 4. 「()」の中に『a6>=80,"優",』と入力します。
- 5. 続けて『if()』と入力します。
- 6. 「()」の中に『a6>=70,"良",』と入力します。
- 7. 続けて『if()』と入力します。
- 8. 「()」の中に『a6>=60,"可","不可"』と入力してEnter キーを押します。セルB6に「優」が表示されます。これは、セルA6の得点が80点以上だったためです。
【入力された数式】 =IF(A6>=80,"優",IF(A6>=70,"良",IF(A6>=60,"可","不可"))) - 9. Ctrl + C キーでセルB6の数式をコピーします。
- 10. 下方向 キーを押してセルB7に移動します。
- 11. Shift + 下方向 キーでセルB9までを範囲選択します。
- 12. コピーした数式を「数式の貼り付け」で貼り付けます。セルB7に「良」、セルB8に「可」、セルB9に「不可」が表示されます。これは、セルA7の得点が70点以上、セルA8の得点が60点以上、セルA9の得点が60点未満だったためです。
【入力された数式】 セルB7 =IF(A7>=80,"優",IF(A7>=70,"良",IF(A7>=60,"可","不可")))
【入力された数式】 セルB8 =IF(A8>=80,"優",IF(A8>=70,"良",IF(A8>=60,"可","不可")))
【入力された数式】 セルB9 =IF(A9>=80,"優",IF(A9>=70,"良",IF(A9>=60,"可","不可")))
【ワンポイント】 関数入力の際にF2 キーを押して編集状態にするのは、このほうが音声での確認が容易なうえに修正も簡単だからです。また、「IF」の後に「()」と閉じカッコまでを入力するのは、入れ子になった関数入力での閉じカッコの記入もれを防止するためです。
式がエラーかどうか判定するIFERROR関数
IFERROR関数は、数式がエラーとして判定される場合には指定された値を、それ以外の場合は数式の結果を返します。
【書式】 =IFERROR(値,エラーの場合の値)
【説明】 値: 必ず指定します。エラーかどうかを判定する数式を指定します。
エラーの場合の値: 必ず指定します。数式がエラーと判定される場合に返す値を指定します。
(注) 対象となるエラーの種類は以下の通りです。
#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME?、#NULL!
ここでは、シート「IFERROR」のセルC4、C5、およびC6に、セルA4からA6の値をセルB4からB6で割った値を判定した結果を返します。
シート「IFERROR」を選択します。
- 1. セルC4に移動します。
- 2. 「関数の挿入」ダイアログ ボックスから、論理関数のリストを表示させます。
- 3. 下方向 キーを押して「IFERROR」に移動してEnter キーを押します。関数入力のウィンドウが開き「値」が選択されています。
- 4. 「値」に『a4/b4』と入力します。
- 5. Tab キーを押して「エラーの場合の値」のエディット ボックスに移動します。
- 6. 「エラーの場合の値」のエディット ボックスに『計算エラーです。』と入力してEnter キーを押します。セルC4に、セルA4「12」をB4「3」で割った値「4」が表示されます。この場合、エラーはありません。
【入力された数式】 =IFERROR(A4/B4,"計算エラーです。") - 9. Ctrl + C キーでセルC4の数式をコピーします。
- 10. 下方向 キーを押してセルC5に移動します。
- 11. コピーした数式を「数式の貼り付け」で貼り付けます。セルC5に、セルA5「0」をセルB5「12」で割った値「0」が表示されます。この場合、エラーはありません。
【入力された数式】 =IFERROR(A5/B5,"計算エラーです。") - 12. Ctrl + C キーでセルC5の数式をコピーします。
- 13. 下方向 キーを押してセルC6に移動します。
- 14. コピーした数式を「数式の貼り付け」で貼り付けます。セルC6に「計算エラーです。」が表示されます。これは、セルA6「12」をセルB6「0」で割ったため「0(ゼロ)による割り算」としてエラーとなったためです。
【入力された数式】 =IFERROR(A6/B6,"計算エラーです。")
引数が偽かどうか判定するNOT関数
NOT関数は、論理式が「TRUE」の場合に「FALSE」を、「FALSE」の場合に「TRUE」を返します。
例えば、2つの値が等しくないことを判定するような場合に利用すると便利です。
【書式】 =NOT(論理式)
【説明】 論理式: 必ず指定します。「TRUE」または「FALSE」を判定する対象を指定します。
ここでは、シート「NOT」のセルC4、およびC5に、セルA4とB4、およびセルA5とB5の値が等しいかどうかを判定した結果を表示します。
シート「NOT」を選択します。
- 1. セルC4に移動します。
- 2. 「関数の挿入」ダイアログ ボックスから、論理関数のリストを表示させます。
- 3. 下方向 キーを押して「NOT」に移動してEnter キーを押します。関数入力のウィンドウが開き「論理式」が選択されています。
- 4. 「論理式」に『a4=b4』と入力してEnter キーを押します。セルC4に「FALSE」が表示されます。これは、セルA4「5」とセルB4「5」が等しかったためです。
【入力された数式】 =NOT(A4=B4) - 5. Ctrl + C キーでセルC4の数式をコピーします。
- 6. 下方向 キーを押してセルC5に移動します。
- 7. コピーした数式を「数式の貼り付け」で貼り付けます。セルC5に「TRUE」が表示されます。これは、セルA5「5」とセルB5「4」が等しくなかったためです。
【入力された数式】 =NOT(A5=B5)
いずれかの引数が真かどうか判定するOR関数
OR関数は、いずれかの引数が「TRUE」の場合に、「TRUE」を返します。すべての引数が「FALSE」の場合は「FALSE」を返します。
例えば、複数の条件のうち、どれか1つでも満たしているかどうか判定したいような場合に便利です。
【書式】 =OR(論理式1,[論理式2],...)
【説明】 論理式1: 必ず指定します。TRUEまたはFALSEとして判定される1つ目の条件です。
論理式2,...: 省略可能です。TRUEまたはFALSEとして判定される2つ目以降の条件です。条件は最大255個まで指定できます。
(1) 複数の条件式を判定する
複数の条件の判定結果が1つでも「TRUE」だった場合に「TRUE」を返す場合の手順は以下の通りです。
ここでは、シート「OR(1)」のセルD6からD8に、飛行時間が5000時間以上、離着陸回数が200回以上、経過月数が24ヶ月以上かどうかを判定して表示します。
シート「OR(1)」を選択します。
- 1. セルD6に移動します。
- 2. 「関数の挿入」ダイアログ ボックスから、論理関数のリストを表示させます。
- 3. 下方向 キーを押して「OR」に移動してEnter キーを押します。関数入力のウィンドウが開き「論理式1」が選択されています。
- 4. 「論理式1」に『a6>=5000』と入力します。
- 5. Tab キーを押して「論理式2」に移動します。
- 6. 「論理式2」に『b6>=200』と入力します。
- 7. Tab キーを押して「論理式3」に移動します。
- 8. 「論理式3」に『c6>=24』と入力してEnter キーを押します。セルD6に「TRUE」が表示されます。これは、セルA6からC6までのすべての値が条件を満たしていたためです。
【入力された数式】 =OR(A6>=5000,B6>=200,C6>=24) - 9. Ctrl + C キーでセルD6の数式をコピーします。
- 10. 下方向 キーを押してセルD7に移動します。
- 11. コピーした数式を「数式の貼り付け」で貼り付けます。セルD7に「TRUE」が表示されます。これは、セルA7からC7までの値のうち、セルA7が条件を満たしていたためです。
【入力された数式】 =OR(A7>=5000,B7>=200,C7>=24) - 12. Ctrl + C キーでセルD7の数式をコピーします。
- 13. 下方向 キーを押してセルD8に移動します。
- 14. コピーした数式を「数式の貼り付け」で貼り付けます。セルD8に「FALSE」が表示されます。これは、セルA8からC8までの値すべてが条件を満たしていなかったためです。
【入力された数式】 =OR(A8>=5000,B8>=200,C8>=24)
(2) IF関数の条件として判定結果を返す
次に、(1)の応用として、IF関数との組み合わせで、飛行時間が5000時間以上、離着陸回数が200回以上、経過月数が24ヶ月以上かどうかを判定し、1つでも該当していれば整備が必要という結果を表示します。
ここでは、シート「OR(2)」のセルD6からD8に、セルA6からC6、セルA7からC7、およびセルA8からC8までの中で1つでも条件を満たした場合に「要整備」を表示します。すべてが条件を満たしていなければ「整備不要」を表示します。
シート「OR(2)」を選択します。
- 1. セルD6に移動します。
- 2. 「関数の挿入」ダイアログ ボックスから、論理関数のリストを表示させます。
- 3. 下方向 キーを押して「OR」に移動してEnter キーを押します。関数入力のウィンドウが開き「論理式1」が選択されています。
- 4. 「論理式1」に『a6>=5000』と入力します。
- 5. Tab キーを押して「論理式2」に移動します。
- 6. 「論理式2」に『b6>=200』と入力します。
- 7. Tab キーを押して「論理式3」に移動します。
- 8. 「論理式3」に『c6>=24』と入力してEnter キーを押します。セルD6に「TRUE」が表示されます。これは、セルA6からC6までのすべての値が条件を満たしたためです。
- 9. F2 キーを押してセルD6を編集状態にします。
- 10. 「=」と「OR」の間に『if(』と入力します。
- 11. End キーを押して文字列の末尾に移動します。
- 12. 『,"要整備","整備不要")』と入力してEnter キーを押します。セルD6の「TRUE」の表示が「要整備」に変わります。
【入力された数式】 =IF(OR(A6>=5000,B6>=200,C6>=24),"要整備","整備不要") - 13. Ctrl + C キーでセルD6の数式をコピーします。
- 14. 下方向 キーを押してセルD7に移動します。
- 15. コピーした数式を「数式の貼り付け」で貼り付けます。セルD7に「要整備」が表示されます。これは、セルA7からC7までの値のうち、セルA7が条件を満たしていたためです。
【入力された数式】 =IF(OR(A7>=5000,B7>=200,C7>=24),"要整備","整備不要") - 16. Ctrl + C キーでセルD7の数式をコピーします。
- 17. 下方向 キーを押してセルD8に移動します。
- 18. コピーした数式を「数式の貼り付け」で貼り付けます。セルD8に「整備不要」が表示されます。これは、セルA8からC8までの値すべてが条件を満たしていなかったためです。
【入力された数式】 =IF(OR(A8>=5000,B8>=200,C8>=24),"要整備","整備不要")
操作の結果はサンプルデータlogic-function_kk.xlsx「論理関数(結果)」をご覧ください。