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

はじめに
エクセルのNOT
関数は、論理関数の1つです。 NOT
関数はAND
やOR
関数と組み合わせると複雑な条件設定ができます。
ここでは、NOT
関数の
- 基本機能・使い方
- 代替手段
- 関連する関数
- 使用例、応用法
について取り扱います。
基本機能・使い方
NOT
関数は、 TRUE
/ FALSE
) を反転させます
論理式
)論理値 (TRUE
/ FALSE
) を反転させる。
論理式
TRUE
/ FALSE
を返す式。またはTRUE
/ FALSE
の値・配列。 論理式
には、 AND
、OR
関数が使用できます。
NOT関数の使いどころ
NOT
関数の使いどころは、以下にあると考えています。
IF
関数以外で複数条件を設定するとき (後述)IF
関数以外でIS~系
関数を使用するとき (後述)- 可読性を向上させたいとき(「否定」を強調し、設計の意図を伝える、など)
それ以外では、代替手段で十分に対応できます。
代替手段
NOT
関数を使った処理の代替法が主に2つ存在します。
- 1.比較演算子による否定
- 2.
IF
関数の引数の入れ替え
です。それぞれについて述べていきます。
1. 比較演算子による否定
単一条件のときは、 NOT
関数を使用せずに、否定の条件が設定できます。
たとえば、
数値
< 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になる。
-
論理関数の代替:
SUMPRODUCT
関数:論理計算に応用可能。NOTやNOTを混ぜた複雑な論理演算もできる。 旧バージョンのエクセルでも使用可能。
使用例、応用例
NOT
関数の使用例・応用例として、以下のパターンを紹介します。
- AND条件の否定による分岐処理:
AND
+IF
関数との組合せ。 - 複数条件に合うデータ以外を抽出:
FILTER
関数との組合せ。 - エラー値以外を抽出:
ISERROR
+FILTER
関数との組合せ。
AND条件の否定による分岐処理
複数条件を組み合わせたAND条件が、
関数の構成
=IF(
NOT( AND(条件1
,条件2
) ),
AND条件以外の時の処理
,
AND条件時の処理
,
)
上記の構成は以下のように、 NOT
関数を使わない形式に書き換えられます
関数の構成(代替手段)
=IF(
AND(条件1
,条件2
) ,
AND条件時の処理
,
AND条件以外の時の処理
,
)
複数条件に合うデータ以外を抽出
複数条件を組み合わせたAND条件を設定し、
条件1「1以上」と条件2「3未満」の2つの条件を、 NOT
+FILTER
関数によって、
この例は、エクセル2021以降のバージョンまたは365のみに対応しています
関数の構成
=FILTER(
データ範囲
,
NOT(条件1の論理配列
*条件2の論理配列
)
)
エラー値以外を抽出
データ列の中から、エラーでないデータのみを抽出する例です。
ISERROR
関数はエラー値のときにTRUE
を返すので、 NOT
関数で反転させ、 TRUE
にします。 FILTER
関数に読み込ませ、抽出を行います。
この例は、エクセル2021以降のバージョンまたは365のみに対応しています
関数の構成
=FILTER(
データ範囲
,
NOT( ISERROR(データ範囲
) )
)