2025/6/20

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

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

はじめに

エクセルのNOT関数は、論理関数の1つです。 NOT関数はANDOR関数と組み合わせると複雑な条件設定ができます。

ここでは、NOT関数の

  • 基本機能・使い方
  • 代替手段
  • 関連する関数
  • 使用例、応用法

について取り扱います。

基本機能・使い方

NOT関数は、 論理値 (TRUE / FALSE) を反転させます (論理値の否定を返す)。

NOT関数
NOT ( 論理式)

論理値 (TRUE / FALSE) を反転させる。

論理式
: 必須
TRUE
TRUE / FALSEを返す式。またはTRUE / FALSEの値・配列。

論理式には、 比較演算子(後述)および ANDOR関数が使用できます。

NOT関数の使いどころ

NOT関数の使いどころは、以下にあると考えています。

  • IF関数以外で複数条件を設定するとき (後述)
  • IF関数以外で IS~系関数を使用するとき (後述)
  • 可読性を向上させたいとき(「否定」を強調し、設計の意図を伝える、など)

それ以外では、代替手段で十分に対応できます。

代替手段

NOT関数を使った処理の代替法が主に2つ存在します。 具体的には、

  • 1.比較演算子による否定
  • 2.IF関数の引数の入れ替え

です。それぞれについて述べていきます。

1. 比較演算子による否定

単一条件のときは、 否定関係にある比較演算子に置き換える ことで、 NOT関数を使用せずに、否定の条件が設定できます。

たとえば、
数値 < 3
の否定を設定するときに、以下の2つの書き方ができます。

  • NOT関数使用: NOT( 数値 < 3 )
  • 比較演算子の置換: 数値 >= 3

否定関係にある比較演算子

比較演算子は、数値同士や文字列同士を比較するときに使用する演算子です。
それぞれの比較演算子は、互いに以下のような否定関係があります。

比較演算子意味←(否定関係)→比較演算子意味
=等しい、イコール (==)<>等しくない、ノットイコール (\ne)
>より大きい、大なり、越え (>>)<=以下 (\leq)
<より小さい、小なり、未満 (<<)>=以上 (\geq)

2. IF関数の引数の入れ替え

IF関数では、第2引数と第3引数を入れ替える と、 否定の 条件を設定したことと等価になります。

たとえば、
IF( 数値 < 3, "OK", "NG")
の条件を反転させるとき、以下の2通りの書き方ができます。

  • NOT関数使用: IF( NOT( 数値 < 3) , "OK", "NG")
  • 引数の入替: IF( 数値 < 3 , "NG", "OK")
IF関数
IF ( 論理式, TRUE時の値, FALSE時の値)

論理式の値が TRUEFALSE かに応じて分岐 し、 それぞれに対応した値 (TRUE時の値 / FALSE時の値) を返す。

論理式
: 必須
A2>=0
論理値 (TRUE/FALSE) を返す条件式
TRUE時の値
: 必須
"○"
論理式が TRUE の場合に返す値。
FALSE時の値
: 任意
"×"
論理式が FALSE の場合に返す値。

関連する関数

NOT関数と似た機能を持つ関数には、以下があります。

  • 論理関数グループ:

    • AND関数: 「複数条件のすべてが同時に成立しているか」を判定。
    • OR関数: 「複数条件の内のいずれか1つ以上が成立しているか」を判定。
    • XOR関数: 排他的論理和を返す。「片方だけTRUE」のときTRUE、両方TRUE / 両方FALSEのときFALSEになる。
  • 論理関数の代替:

    • SUMPRODUCT関数: 論理計算に応用可能。NOTやNOTを混ぜた複雑な論理演算もできる。 旧バージョンのエクセルでも使用可能。

使用例、応用例

NOT関数の使用例・応用例として、以下のパターンを紹介します。

  • AND条件の否定による分岐処理:AND+IF関数との組合せ。
  • 複数条件に合うデータ以外を抽出:FILTER関数との組合せ。
  • エラー値以外を抽出:ISERROR+FILTER関数との組合せ。

AND条件の否定による分岐処理

複数条件を組み合わせたAND条件が、 成り立つかどうかによって分岐処理する例です。 「1以上3未満」以外であれば「YES」、 そうでなければ「NO」を表示します。

関数の構成

=IF(
  NOT( AND( 条件1 , 条件2 ) ),
 AND条件以外の時の処理,
 AND条件時の処理,
)

上記の構成は以下のように、 NOT関数を使わない形式に書き換えられます (「代替手段」を参照)。

関数の構成(代替手段)

=IF(
  AND( 条件1 , 条件2 ) ,
 AND条件時の処理,
 AND条件以外の時の処理,
)

複数条件に合うデータ以外を抽出

複数条件を組み合わせたAND条件を設定し、 これを満たさないデータのみを抽出する例です。

条件1「1以上」と条件2「3未満」の2つの条件を、 配列演算を使ってAND条件として設定しています。 NOT+FILTER関数によって、 AND条件以外の(1以上3未満でない)データが抽出されます

この例は、エクセル2021以降のバージョンまたは365のみに対応しています

関数の構成

  =FILTER(
  データ範囲 ,
  NOT( 条件1の論理配列 * 条件2の論理配列 )
)

エラー値以外を抽出

データ列の中から、エラーでないデータのみを抽出する例です。

ISERROR関数はエラー値のときにTRUEを返すので、 これをNOT関数で反転させ、 エラー値以外でTRUEにします。 これをFILTER関数に読み込ませ、抽出を行います。

この例は、エクセル2021以降のバージョンまたは365のみに対応しています

関数の構成

=FILTER(
  データ範囲,
  NOT( ISERROR( データ範囲 ) )
)


AB
11以上3未満以外か?
20YES
31NO
42NO
53YES
64YES

ABCDEF
10
211以上 かつ 3未満
32でない値:0
433
544

ABCDEF
10
21エラーでない値:0
3#DIV/0!1
4#N/A4
54