いきなり答える備忘録

Google Workspace・Microsoft 365・LibreOfficeなどに関するメモ

(Excel)ノットイコール(等しくない)の比較をする方法

 Excelで、式の中で「ノットイコール(等しくない、一致しない)」であることを表現する方法についてです。
 具体的には「<>」という比較演算子を使うことで可能ですが、この演算子を使った書き方が求められるケースを含め、関連する事例をいくつか紹介します。

比較演算子「<>」の使用

 次の画像では、D3セルに「=B3<>C3」という式を入力して、B3セルとC3セルの数値を比較しています。
 2つの数値は異なっており、一方で比較結果は「TRUE」となっています。

 この「<>」という演算子は2つの値が等しくないときにTRUE(真。正しい)を返し、等しいときにFALSE(偽。正しくない)を返します。つまり「=」の逆で、ノットイコールの比較をしていることになります。



 この「<>」をIF関数内に組み込んだのが次の画像です。
 D3セルに「=IF(B3<>C3,"等しくない","等しい")」という式を入力しており、結果は「等しくない」と表示されています。

 「=」を使う場合は「=IF(B3=C3,"等しい","等しくない")」とすれば同じ結果になりますが、あえて「等しくない」という比較をする場合はこの画像のようになります。



 次の画像ではB3セルの数値を(数式内の)100と直接比較しています。

 


 また、「<>」演算子で文字列の比較も可能です。
 次の画像ではB3セルとC3セルの文字列を比較しています。



 次の画像ではB3セルの文字列を(数式内の)文字列と直接比較しています。

 C3セル

=IF(B3<>"日本","等しくない","等しい")

 式内に比較対象の文字列を直接書き込む際は、このようにダブルクォーテーション(" ")で囲む必要があります。
 ちなみに日付の場合は「B3<>DATEVALUE("2024/1/1")」のように日付を関数でシリアル値(数値)に変換する必要があります。この辺りは関数によって表現の仕方が異なり難しいところですが、本記事では詳細は省略します。

COUNTIF/SUMIF関数等での使用例

 上記のように個別に値を比較するのであれば「=」でも済むので、積極的に「<>」を使う理由は特になさそうに思われます。
 ただ、「<>」を使う例として代表的なのはCOUNTIF(S)関数やSUMIF(S)関数、その他の~IF(S)系の関数で「~以外」という条件を設定する場合です。次の画像では、D3セルにCOUNTIF関数と「<>」演算子を使った式を入力して「りんご」以外の文字列の数をカウントしています。

 D3セル

=COUNTIF(B3:B8,"<>りんご")

 第2引数(カウントする条件)を「"<>りんご"」としています。この関数で注意すべきなのは上記のIF関数の例と異なり比較演算子(<>)をダブルクォーテーションの内側に入れなければならないこと、そして「~以外」という条件を課す際に「=」を使って書けないことです。よって「<>」の使用を覚えておく必要があります。



 次の画像ではSUMIF関数と「<>」演算子を使って「りんご」以外の数量の合計を求めています。

 D3セル

=SUMIF(B3:B8,"<>りんご",C3:C8)

 これも注意点はCOUNTIF関数の例と同様です。

ワイルドカードとの併用

 これも使えるのは~IF(S)系の関数に限られますが、ワイルドカードの否定表現に「<>」が使えます。忘れやすいですがとても便利です。
 次の画像ではCOUNTIF関数と「<>」及びワイルドカード「*」(0文字以上の文字を表す)を使い、「島」の字を含まない文字列(府県名)をカウントしています。

 D3セル

=COUNTIF(B3:B8,"<>*島*")

 第2引数を単に「"*島*"」とすれば「『島』を含む」という条件になります。
 


 次の画像では「山」で始まらない文字列(「山」以外で始まる文字列)をカウントしています。

 D3セル

=COUNTIF(B3:B8,"<>山*")

 


 次の画像では「県」で終わらない文字列(「県」以外で終わる文字列)をカウントしています。

 D3セル

=COUNTIF(B3:B8,"<>*県")

条件付き書式での使用例

 条件付き書式で「~以外」という条件を課す場合に「<>」が使えます。
 具体的な例として、次の画像のB3:B8の範囲に記された値のうち「りんご」以外のものに条件付き書式で色を付けてみます。

 

 B3:B8の範囲を選択して「ホーム」タブの「条件付き書式」→「新しいルール」を選択し、ダイアログ中の「数式を使用して、書式設定するセルを決定」をクリックしたところです。
 ここで数式欄に次のように入力します。

 数式欄の数式

=B3<>"りんご"

 「<>B3="りんご"」などではなく「=」から始まる式にするのがポイントです。この式はTRUE(セルの値が「りんご」である場合)またはFALSE(そうでない場合)を返し、TRUEの場合に設定した書式が適用されます。
 最初の画像でも示したように、このような式はセル上でも有効ですが、TRUEやFALSEの値を直接表示させるケースはあまりないのでいざというとき思いつきにくいかもしれません。



 あとは「書式」ボタンから色の設定に進み、完了すると想定どおりに色が付きました。

備考:大文字と小文字の比較

 「=」演算子が大文字と小文字を区別しない(等しいとみなす)のと同様に、「<>」演算子も大文字と小文字を区別しません。
 次の画像では上記のIF関数の例と同様にして2つの文字列を比較しています。見た目は違いますが大文字か小文字かの違いだけなので、評価結果は「等しい」となっています。



 大文字と小文字を厳密に比較する場合、比較演算子ではなくEXACT関数を使います。
 これは2つの値が(厳密に)等しいときにTRUEを、そうでないときにFALSEを返す関数なので「等しくない」というニュアンスを出すにはNOT関数を併用して次のようにすることが考えられます。

 D3セル

=IF(NOT(EXACT(B3,C3)),"等しくない","等しい")

 第1引数を「EXACT(B3,C3)=FALSE」としても同じ結果になります。