目次
このチュートリアルでは、Excelの論理関数AND、OR、XOR、NOTの本質を説明し、その一般的な使い方と独創的な使い方を示す数式例を提供します。
先週は、異なるセルのデータを比較するために使用されるExcelの論理演算子について説明しました。 今日は、論理演算子の使い方を拡張して、より複雑な計算を行うためのテストを構築する方法を説明します。 AND、OR、XOR、NOTなどのExcel論理関数は、この作業を行う上で役に立ちます。
Excelの論理関数 - 概要
Microsoft Excelには、論理値を扱うための4つの論理関数があります。 AND、OR、XOR、NOTです。 これらの関数は、数式内で複数の比較を実行したり、1つだけでなく複数の条件をテストしたい場合に使用します。 論理演算子と同様に、Excelの論理関数は、引数が評価されると真または偽のどちらかを返します。
次の表は、特定のタスクに適した数式を選択できるように、各論理関数の機能を簡単にまとめたものです。
機能 | 商品説明 | 計算式の例 | 数式説明 |
アンド | すべての引数が TRUE と評価された場合、TRUE を返します。 | =AND(A2>=10, B2<5) | この数式は、セル A2 の値が 10 以上で、B2 の値が 5 未満の場合に TRUE を、それ以外の場合に FALSE を返します。 |
オア | いずれかの引数が TRUE と評価された場合、TRUE を返します。 | =OR(A2>=10, B2<5) | この式は、A2が10以上かB2が5以下、または両方の条件を満たした場合にTRUEを返します。 どちらの条件も満たさない場合は、FALSEを返します。 |
排他的論理和 | すべての引数の論理的排他的論理和を返します。 | =XOR(A2>=10, B2<5) | A2 が 10 以上、または B2 が 5 以下の場合、この式は TRUE を返す。 どちらかの条件を満たさない場合、または両方の条件を満たした場合、この式は FALSE を返す。 |
ノット | 引数の論理値を反転して返します。 | =NOT(A2>=10)とする。 | この数式は、セル A1 の値が 10 以上の場合は FALSE を、それ以外の場合は TRUE を返します。 |
Microsoft Excelには、上記の4つの論理関数に加え、IF、IFERROR、IFNAの3つの「条件付き」関数が用意されています。
Excelの論理関数 - 事実と数字
- 論理関数の引数には、セル参照、数値、テキスト値、ブール値、比較演算子、その他のExcel関数を使用できます。 ただし、すべての引数は、ブール値のTRUEまたはFALSE、あるいは論理値を含む参照または配列で評価されなければなりません。
- 論理関数の引数に任意の 空きセル 引数がすべて空のセルの場合、数式は#VALUE!エラーを返します。
- 論理関数の引数に数値が含まれる場合、0はFALSE、それ以外は負数を含めてTRUEと評価されます。 例えば、セルA1:A5に数値が含まれる場合、数式=AND(A1:A5)はセルのどれにも0が含まれていなければ真、それ以外は偽と評価されます。
- 論理関数は、どの引数も論理値として評価されない場合、#VALUE!エラーを返します。
- 論理関数は、関数名のスペルを間違えていたり、その関数をサポートしていない以前のExcelバージョンで使おうとした場合、#NAME?エラーを返します。 例えば、XOR関数はExcel 2016と2013でのみ使用可能です。
- Excel2007以降では、論理関数に最大255個の引数を含めることができますが、数式の合計が8,192文字を超えないことが条件です。 Excel2003以下では、引数は最大30個まで、数式の合計が1,024文字を超えないことが条件です。
エクセルでAND関数を使う
AND関数は、論理関数の中で最もよく使われる関数です。 複数の条件をテストして、すべての条件が満たされることを確認する場合に便利です。 技術的には、AND関数は指定した条件をテストして、すべての条件が「真」と評価されれば「真」を、そうでなければ「偽」を返します。
ExcelのAND関数の構文は以下の通りです。
AND(論理1, [論理2], ...)最初の条件(logical1)は必須で、それ以降の条件は任意です。
それでは、Excel の数式で AND 関数を使用する方法を示す数式例を見てみましょう。
式 | 商品説明 |
=AND(A2="Bananas", B2>C2) | A2 が "Bananas" を含み、B2 が C2 よりも大きい場合に TRUE、そうでない場合に FALSE を返す。 |
=AND(B2>20, B2=C2) | B2 が 20 より大きく、かつ B2 が C2 と等しい場合に TRUE、そうでない場合に FALSE を返す。 |
=AND(A2="Bananas", B2>=30, B2>C2) | A2 に "Bananas" が含まれ、B2 が 30 以上で C2 より大きい場合に TRUE、そうでない場合に FALSE を返します。 |
ExcelのAND関数 - 一般的な使い方
ExcelのAND関数は、単体では使い勝手が悪いですが、他の関数と組み合わせることで、ワークシートの機能を大幅に拡張することができます。
ExcelのAND関数の最も一般的な使い方の1つは、IF関数のlogical_test引数で、1つの条件だけでなく複数の条件をテストすることです。 例えば、上記のAND関数のいずれかをIF関数内に入れ子にして、次のような結果を得ることができます。
=IF(AND(A2="Bananas", B2>C2)), "Good", "Bad")
IF / AND式の例については、彼のチュートリアル:複数のAND条件を持つExcel IF関数をチェックしてください。
BETWEEN条件を表すExcelの計算式
Excelで、与えられた2つの値の間のすべての値を選択する間の数式を作成する必要がある場合、一般的なアプローチは、論理テストにANDを使用してIF関数を使用することです。
例えば、A列、B列、C列の3つの値があり、A列の値がBとCの値の間に入るかどうかを知りたい場合、このような数式を作るには、ネストしたANDを持つIF関数といくつかの比較演算子があればよいのです。
X が Y と Z の間にあるかどうかを確認するための式。
=IF(AND(A2>=B2,A2<=C2),"Yes", "No")
XがYとZの間にあるかどうかをチェックする式で、包含されません。
=IF(AND(A2>B2, A2)
上のスクリーンショットにあるように、この数式は数字、日付、テキスト値のすべてのデータ型に対して完璧に機能します。 テキスト値を比較する場合、数式はアルファベット順に1文字ずつチェックします。 例えば、次のように記述します。 りんご 間でなく アプリコット と バナナ の2番目の "p "があるためです。 りんご の前に「r」が来る。 アプリコット 詳しくは、「Excelの比較演算子をテキスト値で使用する」をご覧ください。
このように、IF /AND式はシンプルで高速、しかもほぼ万能です。 ほぼ」というのは、1つのシナリオをカバーできないからです。 上の式は、B列の値がC列よりも小さいこと、つまりB列には常に下限値、C列には上限値を含むことを意味します。 これが、式が""を返す理由です。 いいえ 6行目のA6が12、B6が15、C6が3、8行目のA8が11月24日、B8が12月26日、C8が10月21日の場合、「。
しかし、下限値と上限値の位置に関係なく、間の数式を正しく動作させたい場合はどうしたらよいでしょうか。 この場合は、与えられた数値の中央値(つまり、一連の数値の真ん中の数値)を返すExcelのMEDIAN関数を使用します。
そこで、IF関数の論理テストのANDをMEDIANに置き換えると、次のような式になります。
=IF(A2=MEDIAN(A2:C2), "Yes", "No")
そして、次のような結果を得ることができます。
このように、MEDIAN関数は数値や日付に対しては完璧に動作しますが、テキスト値に対しては#NUM! エラーを返します。 残念ですが、完璧な人はいませんね : )
もし、数値や日付だけでなく、テキスト値に対しても機能する完璧なBetween式を求めるのであれば、以下のようにAND/OR関数を使って、より複雑な論理テキストを構築する必要があります。
=IF(OR(AND(A2>B2, A2)
エクセルでOR関数を使う
ExcelのOR関数はANDと同様に、2つの値や文を比較するための基本的な論理関数です。 違いは、OR関数は引数のうち少なくとも1つがTRUEと評価されればTRUEを返し、すべての引数がFALSEならFALSEを返します。 OR関数は、2016~2000のすべてのExcelバージョンで利用可能です。
ExcelのOR関数の構文は、ANDと非常によく似ています。
論理和最初の論理は必須で、その他の条件(最近のExcelでは最大255個)は任意です。
そして、今度はExcelのOR関数がどのように機能するのかを実感していただくために、いくつかの数式を書き出してみましょう。
式 | 商品説明 |
=OR(A2="Bananas", A2="Oranges") | A2 が "Bananas" または "Oranges" を含む場合に TRUE、それ以外の場合に FALSE を返す。 |
=OR(B2>=40, C2>=20) | B2 が 40 以上、または C2 が 20 以上のとき TRUE、それ以外のとき FALSE を返す。 |
=OR(B2=" ",) | B2 または C2 のどちらか一方、あるいは両方が空白である場合に TRUE、それ以外の場合に FALSE を返す。 |
ExcelのAND関数と同様に、ORはIF関数などの論理テストを行う他のExcel関数の有用性を高めるために広く使用されています。 以下にその例をいくつか紹介します。
ネストされたORを持つIF関数
=IF(OR(B2>30, C2>20), "良い", "悪い")
この式は、" 良い " セル B3 の数値が 30 よりも大きいか、C2 の数値が 20 よりも大きい場合、 " 悪い " でなければ
ExcelのAND/OR関数を1つの数式に
もちろん、ビジネスロジック上必要であれば、AND & ORの2つの関数を1つの数式で使用することもできます。 このような数式は無数にありますが、基本的には以下のパターンに集約されます。
=AND(OR(Cond1, Cond2), Cond3)
=AND(OR(Cond1, Cond2), OR(Cond3, Cond4))
=OR(AND(Cond1, Cond2), Cond3)
=OR(AND(Cond1,Cond2), AND(Cond3,Cond4))
例えば、バナナやオレンジの売り切れを知りたい場合、つまり「在庫あり」の数字(B列)と「売り切れ」の数字(C列)が等しい場合、以下のOR/AND式ですぐに表示することが可能です。
=OR(AND(A2="bananas", B2=C2), AND(A2="oranges", B2=C2))
Excelの条件付き書式設定におけるOR関数
=or($b2="", $c2="")
上記のOR式によるルールは、B列、C列のいずれか、または両方に空のセルを含む行を強調表示します。
条件付き書式の詳細については、以下の記事を参照してください。
- Excelの条件付き書式設定
- セルの値に基づいて行の色を変更する
- 別のセルの値に基づいてセルの色を変更する
- Excelで1行おきにハイライト表示する方法
エクセルでXOR関数を使う
Excel 2013 では、Microsoft が XOR 関数を導入し、論理的な 排他的論理和 この用語は、プログラミング言語やコンピュータサイエンスの知識がある人にはおなじみですが、そうでない人にとっては、「Exclusive Or」の概念は少し難しいかもしれません。
XOR関数の構文はORの.と同じです。
XOR(論理1, [論理2],...)最初の論理文(Logical 1)は必須で、追加の論理値は任意です。 1つの数式で最大254の条件をテストでき、これらはTRUEまたはFALSEのいずれかで評価される論理値、配列、または参照にすることが可能です。
最も単純なXOR式は、2つの論理文と戻り値だけである。
- いずれかの引数が TRUE と評価された場合に TRUE となる。
- 両方の引数が TRUE の場合、あるいはどちらも TRUE でない場合は FALSE となる。
これは、数式の例から理解するのが簡単かもしれません。
式 | 結果 | 商品説明 |
=XOR(1>0, 2<1) | 真 | 第1引数がTRUE、第2引数がFALSEであるため、TRUEを返す。 |
=XOR(1<0, 2<1) | FALSE | 両引数が FALSE であるため、FALSE を返す。 |
=XOR(1>0, 2>1) | ファルス | 両方の引数が TRUE であるため FALSE を返す。 |
さらに論理式を追加すると、ExcelのXOR関数の結果になる。
- 引数のうち奇数個が TRUE と評価された場合に TRUE となる。
- TRUEステートメントの総数が偶数であるか、またはすべてのステートメントがFALSEである場合、FALSE。
下のスクリーンショットは、その点を説明するものです。
Excel の XOR 関数が実際の場面でどのように適用されるか分からない場合は、次の例を考えてみてください。 第1、2試合の出場者とその結果の表があるとします。 次の条件に基づいて、第3試合の出場者を知りたいのですが、どの出場者が出場するのでしょうか?
- 第1ゲームと第2ゲームに勝った出場者は自動的に次のラウンドに進み、第3ゲームをプレイする必要はない。
- 第1試合、第2試合ともに敗れた出場者はノックアウトされ、第3試合も行われない。
- 第1ゲーム、第2ゲームのいずれかに勝利した者が第3ゲームを行い、次ラウンドへの進出、不出場を決定するものとする。
単純なXOR式は思い通りに動作する。
=XOR(B2="Won",C2="Won")。
そして、このXOR関数をIF式の論理テストに入れ込むと、さらに理にかなった結果が得られます。
=IF(XOR(B2="Won", C2="Won")), "Yes", "No")
エクセルでNOT関数を使う
NOT関数は、Excelの関数の中でも構文が最も単純なものの1つです。
否定ExcelのNOT関数は、引数の値を反転させるために使用します。 つまり、logicalがFALSEと評価された場合、NOT関数はTRUEを返し、その逆も同様です。 例えば、次の数式は両方ともFALSEを返します。
=NOT(TRUE)
=NOT(2*2=4)
なぜ、そんな馬鹿げた結果を得たいのでしょうか。 ある条件を満たしたときよりも、満たしていないときのほうが知りたい場合があります。 たとえば、服装のリストを確認するときに、自分に似合わない色を除外したい場合があります。 私は特に黒が好きではないので、この式で進めています。
=NOT(C2="黒")
Microsoft Excelでは、通常、何かを行うには1つ以上の方法があります。
1つの数式で複数の条件を満たしたい場合は、AND関数やOR関数と組み合わせてNOTを使用します。 例えば、黒と白の色を除外したい場合は、次のような数式になります。
=NOT(OR(C2="black", C2="white"))
また、黒いジャケットや裏毛のコートも考えられるが、黒いコートはいらないという場合は、エクセルのAND関数と組み合わせて、NOTを使うべきである。
=NOT(AND(C2="black", B2="coat"))
例えば、NOT関数とISBLANK関数を組み合わせると、Microsoft ExcelにないISNOTBLANKという数式を作成することができます。
ご存知のように、数式 =ISBLANK(A2) はセル A2 が空白の場合に TRUE を返します。 NOT 関数はこの結果を FALSE に反転させることができます: =NOT(ISBLANK(A2))
そして、さらに一歩進んで、NOT / ISBLANK関数を使ってネストしたIF文を作成することで、実際のタスクに対応することができます。
=IF(NOT(ISBLANK(C2)), C2*0.15, "ボーナスなし :(")")
この数式は、Excel に次のように指示しています。 セル C2 が空でなければ、C2 の数値に 0.15 を掛けてください。 C2 が空であれば、「No bonus :() 」というテキストが表示されます。
もちろん、これらの例はAND、OR、XOR、NOTの機能のほんの一部に過ぎません。 基本を理解した上で、実際のタスクに取り組み、ワークシートに精巧な数式を書くことで、知識を広げることができるのです。