XOR関数:すべての論理式の排他的論理和を返す

XOR 関数は Excel で用意されている関数の一つで、引数に指定したすべての論理式の排他的論理和を返します。例えば引数が 2 つの場合、どちらか片方だけが TRUE の場合に TRUE を返し、両方とも TRUE または両方とも FALSE の場合は FALSE を返します。ここでは Excel における XOR 関数の使い方について解説します。

※ Excel の対応バージョン : 365 web 2021 2019 2016 2013

(Last modified: )

XOR関数の定義

XOR 関数は引数に指定したすべての論理式の排他的論理和を取り、 TRUE または FALSE を返します。

XOR(論理式1,論理式2,・・・)

引数に 2 つの論理式を指定した場合、 XOR 関数は次のような値を返します。

論理式1論理式2XOR(論理式1,論理式2)
TRUETRUEFALSE
TRUEFALSETRUE
FALSETRUETRUE
FALSEFALSEFALSE

XOR 関数は引数の一つが TRUE でもう一つが FALSE の場合だけ TRUE を返します。引数が両方とも TRUE または 両方とも FALSE の場合は FALSE を返します。論理式が 3 つ以上指定されている場合、 TRUE の数が奇数の場合は TRUE を返し、 TRUE が偶数の場合は FALSE を返します。

例えばセル B2 に 30 、 C2 に 85 という値が入力されていた場合、 XOR 関数の 1 つ目の引数に B2 > 50 、 2 つ目の引数に C2 > 70 と指定すると、 XOR 関数の 1 番目の引数は FALSE ですが 2 番目の引数は TRUE となるため XOR 関数は TRUE を返します。

=XOR(B2>50,C2>70)
--> TRUE

例えばセル D2 に 84 、 E2 に 78 という値が入力されていた場合、 XOR 関数の 1 つ目の引数に D2 > 50 、 2 つ目の引数に E2 > 70 と指定すると、 XOR 関数の 1 番目の引数も 2 番目の引数も TRUE となるため XOR 関数は FALSE を返します。

=XOR(D2>50,E2>70)
--> FALSE

IF関数の中でXOR関数を使用する

IF 関数は 1 番目の引数に論理式を指定します。 AND 関数や XOR 関数は結果として論理式を返しますので、 IF 関数の 1 番目の引数に XOR 関数を記述することで少し複雑な条件式を記述することができます。

=IF(XOR(B2>75,C2>75),"追試","不要")
--> 追試

上記の場合、 B2 セルに入力されている値が 75 より大きいか、 C2 セルに入力されている値が 75 より大きいか、どちらか片方だけが TRUE の場合に IF 関数の 1 番目の引数が TRUE となります。

IF 関数の使い方については「条件が真の場合と偽の場合で異なる値を返す(IF)」を参照されてください。

XOR関数の使い方

それでは実際に XOR 関数を使ってみます。 Excel のシートに対象の数値を次のように入力しました。

XOR関数の使い方(1)

今回、「算数」および「国語」の点数がどちらか一つだけ 75 点よりも多い場合を追試の対象として TRUE を表示し、それ以外の場合は FALSE を表示するようにします。両方とも 75 点より多い場合や両方とも 75 点以下の場合は対象ではありません。

結果を表示する E3 セルを選択し、次のように入力しました。 XOR 関数の 1 番目の引数に 1 つ目の論理式として C3 > 75 、 2 つ目の引数に 2 つ目の論理式として D3 > 75 を記述します。

=XOR(C3>75,D3>75)

XOR関数の使い方(2)

Enter キーを押すと、 E3 セルには次のように表示されます。

XOR関数の使い方(3)

XOR 関数の 1 つめの引数が TRUE 、 2 つめの引数が TRUE でしたので XOR 関数は FALSE を返しました。

同じように E4 セルから E7 セルに対しても同じように XOR 関数を入力すると次のように表示されました。

XOR関数の使い方(4)

1 つ目の引数か 2 つ目の引数のどちらか片方だけが TRUE の場合は TRUE 、両方の引数が TRUE または FALSE の場合は FALSE と表示されました。

※ 論理式を記述するときに使用する比較演算子については「比較演算子と算術演算子の利用」を参照されてください。

-- --

Excel における XOR 関数の使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。