「この条件に当てはまらないデータだけ抽出したい」「”完了”以外のタスクにフラグを立てたい」。こんな場面、仕事でよくありますよね。
条件の否定を手作業で判定していると、データが増えるほど見落としが出がちです。そんなときに使うのがNOT関数です。この記事では基本の書き方からIF関数との組み合わせ、AND/OR関数との応用パターンまで、まとめて紹介します。
この記事は次のような人におすすめ
- NOT関数の構文や使い方を知りたい
- IF関数で「〜でないとき」の条件分岐を作りたい
- NOT関数とAND/OR関数の組み合わせを理解したい
NOT関数とは?
NOT(ノット)関数は、論理値を反転する関数です。英語の「not」は「〜ではない」という意味で、TRUEをFALSEに、FALSEをTRUEに変換します。
NOT関数でできることをまとめると、次のとおりです。
NOT関数単体はTRUE / FALSEを返すだけです。実務ではIF関数と組み合わせて使うことがほとんどですよ。
Excel 2007以降のすべてのバージョン(Excel 2010、2013、2016、2019、2021、Microsoft 365)で使用できます。
NOT関数の書き方(構文と引数)
基本構文
=NOT(論理式)
カッコの中に、反転したい条件を1つだけ指定します。
引数の説明
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 論理式 | 必須 | 反転したい条件や論理値(例: A2=”完了”) |
AND関数やOR関数と違い、引数は1つだけです。複数の条件を渡すとエラーになるので注意してください。
TIP
論理式にはセル参照と比較演算子を組み合わせます。
=NOT(A1="完了")のように書くと「A1が”完了”でないか?」を判定できますよ。
TRUE/FALSEの反転ルール
NOT関数の結果はシンプルです。入力と出力が必ず逆になります。
| 入力 | NOT関数の結果 |
|---|---|
| TRUE | FALSE |
| FALSE | TRUE |
「TRUEならFALSE、FALSEならTRUE」。これだけ覚えておけば大丈夫です。
数値を渡したときの動作
NOT関数に数値を渡すこともできます。0はFALSEとして、0以外はTRUEとして扱われます。
| 入力 | 解釈 | NOT関数の結果 |
|---|---|---|
| 0 | FALSE | TRUE |
| 1 | TRUE | FALSE |
| -5 | TRUE | FALSE |
| 100 | TRUE | FALSE |
0だけがTRUEを返します。それ以外はすべてFALSEです。数値でNOTを使う場面は少ないので、参考程度に覚えておいてください。
NOT関数の基本的な使い方
ここからは実際の数式で基本的な使い方を確認していきましょう。
論理値を反転する
もっともシンプルな使い方です。セルにTRUEが入っているとき、結果を反転してみます。
=NOT(A2)
A2がTRUEなら結果はFALSEです。A2がFALSEなら結果はTRUEになります。
比較式の結果を反転する
「A2が100以上か?」を反転して、「A2が100未満か?」を判定する例です。
=NOT(A2>=100)
A2が80なら A2>=100 はFALSEです。NOTで反転するとTRUEになります。逆にA2が120ならFALSEです。
TIP
この例は
=A2<100と同じ結果になります。単純な比較ならNOTを使わないほうが読みやすいですよ。NOTが本領を発揮するのは、AND関数やOR関数の結果を反転するときです。
文字列の一致を否定する
「ステータスが"完了"ではないか?」を判定する例です。
=NOT(A2="完了")
A2が「対応中」なら結果はTRUEです。A2が「完了」ならFALSEになります。未完了タスクの抽出に便利ですよ。
IF関数とNOT関数の組み合わせ
NOT関数の実務での本領発揮は、IF関数との組み合わせです。NOT単体のTRUE/FALSEではなく、好きな文字列や数値を返せます。
IF+NOTで「〜でないとき」の条件分岐
IF関数の第1引数にNOT関数を入れるのが基本形です。
=IF(NOT(条件), TRUE値, FALSE値)
条件を満たさないときに「TRUE値」を返します。条件を満たしていれば「FALSE値」になります。
実務パターン1: 未完了タスクに「要対応」と表示する
A列にタスク名、B列にステータスが入っています。「完了」でないタスクに「要対応」と表示しましょう。
=IF(NOT(B2="完了"), "要対応", "")
B2が「対応中」「未着手」など「完了」以外なら「要対応」と表示されます。B2が「完了」なら空欄です。タスク管理シートで未完了の項目がひと目でわかりますよ。
実務パターン2: 空欄でないセルにフラグを立てる
「備考欄に何か入力されているか?」を判定する例です。
=IF(NOT(C2=""), "入力あり", "未入力")
C2に文字が入っていれば「入力あり」です。C2が空欄なら「未入力」になります。データの入力漏れチェックに使えます。
実務パターン3: 基準未達を判定する
売上目標の達成判定です。「目標額に達していなければ"未達"」と表示します。
=IF(NOT(B2>=C2), "未達", "達成")
B2が実績、C2が目標額です。実績が目標に届いていなければ「未達」、達成していれば「達成」と表示されます。
条件付き書式でNOT関数を使う
NOT関数は条件付き書式のカスタム数式でも活躍します。「土日でない行だけ色を付ける」例です。
条件付き書式の「カスタム数式」に次の式を入力します。
=NOT(OR(WEEKDAY(A2)=1, WEEKDAY(A2)=7))
WEEKDAY関数で日曜(1)と土曜(7)を判定しています。ORで「日曜 または 土曜」をチェックし、NOTで反転します。平日の行だけTRUEになるので、背景色が付きますよ。
TIP
条件付き書式では「〜でないとき」の条件が必要になる場面が多いです。NOT関数を使えば、「除外したい条件」を先に書いて反転するだけで済みます。
NOT関数とAND・OR関数の組み合わせ
NOT関数をAND関数やOR関数と組み合わせると、より複雑な否定条件を表現できます。
NOT+AND: 「すべてを満たす」の否定
AND関数の結果をNOTで反転します。「すべての条件を満たす」の反対、つまり「1つでも条件を満たさない」を判定できます。
=NOT(AND(A2>=70, B2>=70))
A2とB2の両方が70以上ならFALSEです。どちらか一方でも70未満ならTRUEになります。基準未達の人を見つけたいときに便利ですよ。
IF関数と組み合わせた実務例も見てみましょう。
=IF(NOT(AND(B2>=80, C2>=70)), "再試験", "合格")
筆記(B列)80点以上かつ面接(C列)70点以上を満たさなければ「再試験」です。両方クリアしていれば「合格」になります。
NOT+OR: 「どちらかを満たす」の否定
OR関数の結果をNOTで反転します。「どれか1つでも満たす」の反対、つまり「すべての条件を満たさない」を判定できます。
=NOT(OR(A2="営業", A2="企画"))
A2が「営業」でも「企画」でもなければTRUEです。どちらかに該当すればFALSEになります。特定部署の除外に使えますよ。
IF関数と組み合わせた実務例です。
=IF(NOT(OR(B2="休暇", B2="欠勤")), "出勤", "不在")
ステータスが「休暇」でも「欠勤」でもなければ「出勤」です。どちらかに該当すれば「不在」になります。
組み合わせパターンの使い分け
NOT関数とAND/OR関数の組み合わせパターンをまとめます。
| パターン | 意味 | 使いどころ |
|---|---|---|
| NOT(AND(条件1, 条件2)) | 1つでも満たさなければTRUE | 基準未達者の抽出 |
| NOT(OR(条件1, 条件2)) | すべて満たさなければTRUE | 除外対象の判定 |
| AND(NOT(条件1), NOT(条件2)) | 両方とも満たさなければTRUE | 複数条件の同時否定 |
3つ目の AND(NOT(), NOT()) は NOT(OR()) と同じ結果になります。読みやすいほうを選んでください。
NOTE
論理学では「ド・モルガンの法則」と呼ばれる関係です。NOT(AND(A,B)) = OR(NOT(A), NOT(B))、NOT(OR(A,B)) = AND(NOT(A), NOT(B)) が成り立ちます。覚えなくても大丈夫ですが、知っておくと数式の整理に役立ちますよ。
よくあるエラーと対処法
NOT関数で「結果がおかしい」「エラーが出る」というときの原因と対処法をまとめます。
| エラー・症状 | 原因 | 対処法 |
|---|---|---|
| #VALUE! | 文字列を直接指定した(例: =NOT("はい")) | 比較式にする(例: =NOT(A1="はい")) |
| #VALUE! | 引数が空(例: =NOT()) | 論理式を1つ指定する |
| 常にTRUEになる | 空白セルを参照している | 空白は0(FALSE)として扱われ、NOT(FALSE)=TRUE |
| 常にFALSEになる | 0以外の数値が入っている | 数値はTRUEとして扱われ、NOT(TRUE)=FALSE |
| 予想と逆の結果 | NOTの反転を二重にかけている | NOT(NOT(x))はxと同じ。反転が1回か確認する |
引数を複数渡してしまう間違い
NOT関数でもっとも多い間違いが、引数を2つ以上渡してしまうケースです。AND関数やOR関数と混同しがちですよね。
=NOT(A2>=70, B2>=70)
この書き方はエラーになります。複数条件を否定したい場合は、NOT関数の中にAND関数やOR関数を入れてください。
=NOT(AND(A2>=70, B2>=70))
空白セルの扱いに注意
NOT関数に空白セルを渡すと、空白は0として扱われます。0はFALSEなので、NOT(FALSE)はTRUEです。予想外のTRUEが出るときは空白セルが原因かもしれません。
対処法として、事前に空白チェックを入れておくと安心です。
=IF(A2="", "未入力", NOT(A2="完了"))
NOT(NOT(x))は元に戻る
NOTを二重にかけると元の値に戻ります。
=NOT(NOT(TRUE))
結果はTRUEです。意図せず二重否定になっていないか、数式を確認してみてください。
AND・OR・NOT・XOR関数の使い分け
Excelの論理関数にはNOT以外にもよく使う関数があります。それぞれの違いを表で整理します。
| 関数 | 判定ルール | 引数の数 | 使いどころ |
|---|---|---|---|
| AND | すべてTRUE → TRUE | 1〜255 | 「かつ」の条件判定 |
| OR | 1つ以上TRUE → TRUE | 1〜255 | 「または」の条件判定 |
| NOT | TRUE⇔FALSE反転 | 1つのみ | 条件の否定 |
| XOR | TRUEが奇数個 → TRUE | 1〜255 | 排他的条件の判定 |
迷ったときは次の基準で選んでみてください。
- すべての条件を満たす必要がある → AND関数
- どれか1つ満たせばOK → OR関数
- 条件をひっくり返したい → NOT関数
- 片方だけ満たすときにTRUEにしたい → XOR関数
実務で使用頻度が高いのはAND関数とOR関数です。NOT関数はIF関数との組み合わせで「〜でないとき」の条件分岐を作るのが定番ですよ。
まとめ
NOT関数は、論理値を反転して条件の否定を作る関数です。
- TRUEならFALSE、FALSEならTRUEに反転する
- IF関数と組み合わせて「〜でないとき」の条件分岐を作るのが定番
- AND/OR関数と組み合わせると複雑な否定条件も表現できる
- 引数は1つだけ。複数条件はANDやORで囲んでからNOTで反転する
- 空白セルはFALSE扱いになるので注意
まずはIF関数とNOT関数の組み合わせから試してみてください。「未完了タスクだけ表示」など実務ですぐに使えますよ。
AND関数やOR関数の使い方も合わせて覚えると、条件分岐の幅がぐんと広がります。詳しくはAND関数の使い方やOR関数の使い方をチェックしてみてください。
関連記事
関数一覧
Excel関数の一覧は下記の記事で確認できます。
エラー値が表示される場合は、下記の記事も参考にしてみてください。
