エクセルNOT関数の使い方: 論理値の反転 - IFやANDと組み合わせられるが...

はじめに
エクセルのNOT関数は、論理関数の1つです。
ここでは、NOT関数の
- 基本機能・使い方
- 代替手段
- 関連する関数
- 使用例、応用法
について取り扱います。
基本機能・使い方
NOT関数は、
論理式
)論理値 (TRUE / FALSE) を反転させる。
論理式
TRUE
/ FALSE
を返す式。またはTRUE
/ FALSE
の値・配列。論理式には、
NOT関数の使いどころ
NOT関数の使いどころは、以下にあると考えています。
- IF関数以外で複数条件を設定するとき (後述)
- IF関数以外で IS~系関数を使用するとき (後述)
- 可読性を向上させたいとき(「否定」を強調し、設計の意図を伝える、など)
それ以外では、代替手段で十分に対応できます。
代替手段
NOT関数を使った処理の代替法が主に2つ存在します。
- 1.比較演算子による否定
- 2.IF関数の引数の入れ替え
です。それぞれについて述べていきます。
1. 比較演算子による否定
単一条件のときは、
たとえば、
数値 < 3
の否定を設定するときに、以下の2つの書き方ができます。
- NOT関数使用: NOT( 数値 < 3 )
- 比較演算子の置換: 数値 >= 3
否定関係にある比較演算子
比較演算子は、数値同士や文字列同士を比較するときに使用する演算子です。
それぞれの比較演算子は、互いに以下のような否定関係があります。
比較演算子 意味 ←(否定関係)→ 比較演算子 意味 = 等しい、イコール () <> 等しくない、ノットイコール () > より大きい、大なり、越え () <= 以下 () < より小さい、小なり、未満 () >= 以上 ()
2. IF関数の引数の入れ替え
IF関数では、第2引数と第3引数を入れ替える と、
たとえば、
IF( 数値 < 3, "OK", "NG")
の条件を反転させるとき、以下の2通りの書き方ができます。
- NOT関数使用: IF( NOT( 数値 < 3) , "OK", "NG")
- 引数の入替: IF( 数値 < 3 , "NG", "OK")
論理式
, TRUE時の値
, FALSE時の値
)論理式
の値が TRUE か FALSE かに応じて分岐 し、
それぞれに対応した値 (TRUE時の値
/ FALSE時の値
) を返す。
論理式
TRUE時の値
FALSE時の値
関連する関数
NOT関数と似た機能を持つ関数には、以下があります。
-
論理関数グループ:
- AND関数:
「複数条件のすべてが同時に成立しているか」を判定。 - OR関数:
「複数条件の内のいずれか1つ以上が成立しているか」を判定。 - XOR関数:
排他的論理和を返す。「片方だけTRUE」のときTRUE、両方TRUE / 両方FALSEのときFALSEになる。
- AND関数:
-
論理関数の代替:
- SUMPRODUCT関数:
論理計算に応用可能。NOTやNOTを混ぜた複雑な論理演算もできる。 旧バージョンのエクセルでも使用可能。
- SUMPRODUCT関数:
使用例、応用例
NOT関数の使用例・応用例として、以下のパターンを紹介します。
- AND条件の否定による分岐処理:AND+IF関数との組合せ。
- 複数条件に合うデータ以外を抽出:FILTER関数との組合せ。
- エラー値以外を抽出:ISERROR+FILTER関数との組合せ。
AND条件の否定による分岐処理
複数条件を組み合わせたAND条件が、
関数の構成
=IF(
NOT( AND( 条件1 , 条件2 ) ),
AND条件以外の時の処理,
AND条件時の処理,
)
上記の構成は以下のように、
関数の構成(代替手段)
=IF(
AND( 条件1 , 条件2 ) ,
AND条件時の処理,
AND条件以外の時の処理,
)
複数条件に合うデータ以外を抽出
複数条件を組み合わせたAND条件を設定し、
条件1「1以上」と条件2「3未満」の2つの条件を、
この例は、エクセル2021以降のバージョンまたは365のみに対応しています
関数の構成
=FILTER(
データ範囲 ,
NOT( 条件1の論理配列 * 条件2の論理配列 )
)
エラー値以外を抽出
データ列の中から、エラーでないデータのみを抽出する例です。
ISERROR関数はエラー値のときにTRUEを返すので、
この例は、エクセル2021以降のバージョンまたは365のみに対応しています
関数の構成
=FILTER(
データ範囲,
NOT( ISERROR( データ範囲 ) )
)