XOR関数 ● 成立する条件が奇数個かどうかを調べる

[Excel 2013以降]

Excelの XOR(エクスクルーシブ・オア)関数の使い方を紹介します。XOR関数は、Excel 2013で追加された関数です。

スポンサーリンク

書式

成立する条件が奇数個かどうかを調べる
=XOR(論理式1, [論理式2]…)

論理式]に指定した条件のうち、成立する条件が奇数個ある場合に TRUE(Yes、真、成立)を返します。偶数個の場合は FALSE(No、偽、不成立)を返します。
つまり、結果が TRUE になる[論理式]を奇数個指定した場合の XOR関数の戻り値は TRUE、偶数個指定した場合の XOR関数の戻り値は FALSEということです。
論理式]は254個まで指定できます。

引数

引数 説明
論理式 条件を表す論理式を指定する。論理式とは、結果が TRUE(Yes、真、成立)かFALSE(No、偽、不成立)のどちらかになる式。

引数の[論理式]を2つ指定した場合、いずれか一方が TRUE なら TRUE、両方とも TRUE または両方とも  FALSE なら FALSEが返されます。

条件1 条件2 XOR関数の戻り値
TRUE TRUE FALSE
TRUE FALSE TRUE
FALSE TRUE TRUE
FALSE FALSE FALSE

ベン図で表した場合、2つの円から重なり部分を除いた領域(下図の青く塗りつぶされた部分)が TRUEで 、それ以外の領域(下図の白い部分)が FALSE です。

図1
青い領域が TRUE、白い領域が FALSE

使用例1…1科目だけが 60点以上であるかどうかを調べる

XOR関数を使用して、「科目Aと科目Bのどちらか一方だけが60点以上」という条件が成立するかどうかを調べます。成立する場合は、セルに「TRUE」が表示されます。成立しない場合は「FALSE」が表示されます。

=XOR(論理式1, [論理式2]…)

セルD3 | =XOR(B3>=60,C3>=60)

図2 セルD3に XOR 関数を入力して、セルD7までコピーする。

メモ

TRUE が奇数個の場合に TRUE
XOR関数は、複数の論理式の中で 「TRUE が 1つある」ことを判定する関数ではありません。「TRUE が奇数個ある」ことを判定する関数です。勘違いしやすいので注意してください。
「複数の論理式の中で TRUE が 1つある」かどうかを調べたい場合は、COUNTIF関数を使用します。以下のように数式を立てると、図2のXOR関数と同様の結果になります。
=COUNTIFS(B3:C3,">=60")=1

使用例2…1科目だけが 60点以上の場合に「補欠合格」と表示する

図3では、IF関数とXOR関数を組み合わせて、1科目だけが60点以上の場合に「補欠合格」と表示しています。2科目とも60点以上の場合や、2科目とも60点に満たない場合は、何も表示しません。

条件の真偽に応じて結果を2通りに分ける
=IF(論理式, [真の場合], [偽の場合])

セルE3 | =IF(XOR(B3>=60,C3>=60),"補欠合格","")

図3 セルE3に IF 関数と XOR 関数の入れ子の数式を入力して、セルE7までコピーする

ちなみに、図3のセルD3には、次の式が入力されています。
=IF(AND(B3>=60,C3>=60),"合格","")

メモ

使いどころが難しい
XOR関数の名前の由来は、「XOR」という略称で呼ばれる「排他的論理和」という論理演算です。排他的論理和では、一方が真の場合に真となり、両方真や両方偽の場合は偽となります。
論理演算において排他的論理和は重要な演算です。一方、ビジネスシーンにおいてXOR関数を使う機会はあまりないかもしれません。図3の使用例も、実用的な例とは言えません。XOR関数の挙動を確認するための例ととらえてください。
スポンサーリンク

関連記事