目次
あなたのような読者は、MUOをサポートするために役立ちます。当サイトのリンクを使って購入された場合、アフィリエイト報酬が発生する場合があります。もっと読む
XORはExclusive ORの略で、論理演算の一つです。XORはプログラミングで多くの用途がありますが、Google Sheetsのような表計算アプリでも有用です。Google SheetsのXOR関数は、論理演算に応じてTRUEかFALSEのどちらかを返します。
この関数はGoogle Sheetsの他の関数と比べると少し難しいですが、ご安心ください。XORを分解して、その仕組みを説明し、Google Sheetsでどのように使用できるかを説明します。
XOR関数の構文。どのように動作するのでしょうか?
XORは、1つまたは複数の論理式を受け取り、それらをテストして、TRUEまたはFALSEを返す論理関数です。
=XOR(logical1, logical2, …)
Google SheetsのXOR関数は、入力された論理式をテストし、次に、その入力のうち奇数個が真であるかどうかをテストします。もし奇数の真の値があれば、それは真を返します。偶数個の真の値がある場合、あるいは真の値がまったくない場合は、FALSEを返します。
Google SheetsでXOR関数を使うには、関数を呼び出して引数に論理式を指定します。この論理式は何でもよく、テストの中でセルを参照することも可能です。
上のスプレッドシートでは、さまざまなテストに対するXOR’の反応を見ることができます。これを分解してみましょう。
- 最初のセル(B2)では、XORで1>2が真かどうかを調べています。この文は偽で、結果的に真の文は0個となる。ゼロは偶数なので、XORは偽を返す。
- セルC2では、XORで2>1をチェックし、それが真なので、真の文は1つです。1 は奇数なので、XOR は TRUE を出力する。
- セルD2では、XORは2つの文をチェックする。2>1 と 1>2 です。最初の文は真であり、2番目の文は偽である。真の文の数は奇数であるから、XORはTRUEを出力する。
- セルE2が注目される。ステートメント2>1と4>3をチェックするためにXORが呼び出されています。これらのステートメントは両方とも真であるが、XORはFALSEを返す。それは、今、真の文が2つあり、2が偶数であるからです。したがって、XORはFALSEを返します。
XOR に論理テストではなく数値を与えると、XOR はそれを真の文と見なします。例えば、XORに数字の1だけを与えると、真の文が1つあるので、TRUEを返します。
ここまでで、下の式が何を出力するかは想像がつくと思います。
=XOR(1,2,3,4)
この式では、4つの数字のXORを与えています。これらはテストではないので、常に真です。したがって、XORは入力を調べて、4つの真の文を見つけ、4は偶数なので偽を返します。
GoogleシートでXOR関数を使用する方法
XORは、文そのものだけでなく、真の文の数を勘定するため、特異な関数です。1つのテストを与えると、XOR’の結果は論理テスト’の結果を直接反映したものになります。複数のテストを与えた場合、XOR’の出力は真の文の数に依存します。
Google Sheetsで単一のパラメータを持つXOR関数を使用する
ある意味、単一テストによるXOR関数はGoogle SheetsのIF関数と似ていますが、カスタム出力の代わりにTRUEまたはFALSEを返すという点が異なります。このように、ある値が特定の条件を満たしているかどうかを判断するためにXORを使用することができます。
それを実際に見るために、ここに数字の列を持つスプレッドシートのサンプルを用意しました。目標は、各数値が数値の総平均を上回っているか否かを判断することです。ここでは、XORを使ってそれを行う方法を紹介します。
- XOR結果を出力したい最初のセルを選択します。この例では、セル B2 になります。
- 数式バーには、以下の数式を入力します。 =XOR(A2>AVERAGE(A2:A14))を入力します。
- Enterキーを押します。
- 塗りつぶしハンドルを持ち、下のセルにドロップします。
これでXORは、数値が指定した条件を満たしているかどうかを教えてくれます。数値が平均値以上であればTRUEを、そうでなければFALSEを返します。
この数式では、XOR と AVERAGE 関数の両方を使用しています。XOR を呼び出し、セル (A2) を与えて、そのセルがすべての数値の平均である AVERAGE(A2:A14) より大きいかどうかをテストするよう求めます。もしセルが平均より大きければ、1つの真の文が得られます。1 は奇数なので、XOR は TRUE を出力します。
Google Sheets で複数のパラメータを指定して XOR 関数を使用する
複数のパラメータを指定すると、XOR’ が真の文の数に対して敏感に反応することがよくわかります。複数のパラメータを与えた場合、XORはステートメントを通過し、奇数の真のステートメントがあればTRUEを返します。そうでなければ、FALSE を返します。
このXORの特性は、特定の値が奇数か偶数か判断したいときに有効です。例題で見てみましょう。
このサンプルのスプレッドシートでは、5つの列が数字の列になっています。ここでの目的は、XOR関数を使って、各列に奇数個の数字があるかどうかを判断することです。
- XOR’の出力を確認したいセルを選択します。このスプレッドシートでは、それはセル F2 になります。
- 数式バーに、以下の数式を入力します。 =XOR(A2:E2)
- Enterを押します。
- 塗りつぶしハンドルを掴んで、下のセルにドロップします。
XORは、各文字列の中に奇数個の数字が入っているかどうかを教えてくれます。数字は真の文であり、XORは真の文が奇数であればTRUEを返すことを思い出してください。
この式では、XORはセルA2からE2までを調べます。ここでは条件を指定していないので、テストはありません。XORはその範囲内の利用可能な数字のみを取り込み、数字のカウントが奇数であればTRUEを返します。もし偶数ならXORはFALSEを出力します。
Google SheetsにおけるXORの実例
特定の値が偶数か奇数かを数えることが重要なGoogle Sheetsのシナリオで、XORを調べることができます。ここでは、これらのシナリオが実際にどのようなものであるかを示す2つの例を示します。
XOR関数例1:サッカーチーム
このシナリオでは、あるリーグに4つのサッカーチームがあり、各チームが2試合を行ったとする。当然ながら、両方の試合に勝ったチームが1位となり、両方の試合に負けたチームが最下位となる。
試合に勝ち、もう1試合に負けたチーム同士で3試合目を行い、2位と3位を決定する。3試合目を行うチームを決定することが目的です。
XOR関数を使えば、この目的を簡単に達成することができます。
=ArrayFormula(XOR(B2:C2="Win"))
この式では、試合結果(B2~C2)をXORして、Winがいくつになるかを見ている。チームが0勝または2勝している場合、0と2は両方とも偶数なので、XORはFALSEを出力する。チームが1勝しかしていない場合、1勝は奇数であるため、XORは真を出力する。
なお、XORで範囲内のセルを個別にテストしたいので、Google SheetsのARRAYFORMULA関数の中に核となる数式を入れる必要があります。
XOR関数例2.ディナーパーティーの参加者
このシナリオでは、ディナーパーティーに参加するゲストのリストと、そのゲストが同伴者を連れてくるかどうかを調べます。ホストはすでに長方形のディナーテーブルを持っていますが、代わりに円卓を使うべきかどうか考えています。
長方形は4つの辺があるため、偶数人しかその周りに均等に座ることができません。一方、円は奇数の人もその周りに座ることができます。
XOR関数を使って、ホストの判断を助けることができます。
=ArrayFormula(XOR(B2:B10="No○○"))
この式を把握するためには、3つの数学的法則を思い出す必要がある。
- 偶数と奇数の和は奇数になる。
- 偶数と偶数の和は偶数になる。
- どんな数でも2を掛けると偶数になる。
これらの法則から、同伴者を連れてくる客とその同伴者の和は、単純にその人数に2を掛けたものなので、偶数になります。
したがって、同伴者のいないゲストが偶数人いれば、ゲストの総数は偶数になります。しかし、同伴者のいない客の数が奇数であれば、客の総数は奇数となる。
この知識があれば、XORを使ってシングルゲストのカウントを確認することができます。もしカウントが奇数なら、XOR は TRUE を出力する。これは、ホストが丸いディナーテーブルを使う必要があることを意味します!
偶数か奇数か?XORに聞け!
Google SheetsのXOR関数は、ユーザーが指定した条件を受け取り、その条件を満たす値が奇数であれば「真」を返します。それ以外の場合はFALSEを返します。
XORに1つのパラメータを与えた場合は、XOR’の出力がテスト結果になります。しかし、複数のパラメータを与えた場合は、真の文の数によってXORの出力が決定されます。さて、XORとは何か、どのように動作するのかがわかったところで、この知識を習得するために、自分で試してみましょう