「スプレッドシートで”〜ではない”という条件を作りたい」。こんな場面、仕事でよくありますよね。
条件の否定を手作業で判定していると、見落としが出がちです。データが増えるほど確認の手間も増えてしまいます。
そんなときに使うのが、スプレッドシートのNOT関数です。構文と基本の使い方から、IF関数との組み合わせまで丁寧に解説します。AND/OR関数との組み合わせやエラー対処法もまとめていますよ。
スプレッドシートのNOT関数とは?
NOT関数(読み方: ノット関数)は、論理値を反転する関数です。「NOT」は英語の「〜ではない」に由来しています。
TRUEを渡すとFALSEに、FALSEを渡すとTRUEに変わります。条件の結果をひっくり返したいときに活躍しますよ。
NOT関数でできることをまとめると、次のとおりです。
NOT関数単体はTRUE / FALSEを返すだけです。実務ではIF関数と組み合わせて使うことがほとんどですよ。
NOTE
NOT関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も完全なので、ファイルのやり取りでも安心です。
スプレッドシートの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: 条件付き書式の応用
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="はい")) |
| #ERROR! | 引数が空(例: =NOT()) | 論理式を1つ指定する |
| #ERROR! | 引数を2つ以上指定した(例: =NOT(A1>0, B1>0)) | 引数は1つだけ。複数条件はANDやORで囲む |
| 常に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
=NOT(NOT(FALSE)) → FALSE
意図せず二重否定になっていないか、数式を確認してみてください。
まとめ
NOT関数は、論理値を反転して条件の否定を作る関数です。
- TRUEならFALSE、FALSEならTRUEに反転する
- IF関数と組み合わせて「〜でないとき」の条件分岐を作るのが定番
- AND/OR関数と組み合わせると複雑な否定条件も表現できる
- 引数は1つだけ。複数条件はANDやORで囲んでからNOTで反転する
- 空白セルはFALSE扱いになるので注意
まずはIF関数×NOT関数の組み合わせから試してみてください。「未完了タスクだけ表示」など実務ですぐに使えますよ。
AND関数やOR関数の使い方も合わせて覚えると、条件分岐の幅がぐんと広がります。詳しくはAND関数の使い方やOR関数の使い方をチェックしてみてください。
複数条件でデータを数えたい場合は、COUNTIFS関数も確認してみてください。
