Excel(エクセル)NOT関数の使い方|OR関数・AND関数を逆転させる
NOT関数について、その使い方を初心者にも分かりやすく解説しています。NOT関数とAND関数・OR関数を組み合わせる使い方を中心に図解していきます。
使用関数:NOT、OR、AND、IF
NOT(ノット)関数とは?
論理式に指定した条件が満たされていないことを判定します。論理式の答えがTRUE(肯定・条件は満たされている)である場合はFALSEを返し、論理式の答えがFALSE(否定・条件は満たされていない)である場合はTRUEを返します。
NOT関数で簡単な判定をしてみる
性別の入ったセルを参照して「=NOT(B2=”男”)」という数式を入れてみると、以下のように「女=TRUE」「男=FALSE」が返ります。
NOT関数に数値・空白・論理値を指定する
NOT関数で数値の入ったセルを参照すると、以下のように「0」だけTRUEが返り、他の数値は負数も含め全てFALSEになります。
NOT関数に空白セルを指定するとTRUEになります。論理値の文字列「TRUE」はFALSEになり、「FALSE」はTRUEになります。
NOT関数の引数と書式
「数式」タブ「関数ライブラリ」→「論理」→ NOTをクリックします。
NOT関数の引数は「論理式」だけです。
NOT関数の書式の構成はこうなります。
NOT関数に複数の条件を指定するには?
NOT関数の引数は「論理式」一つなので、複数の条件を指定するにはAND関数やOR関数の助けを借ります。
順当に使えば、AND関数は「指定したすべての条件を満たす場合」にTRUEを返し、OR関数は「指定した条件のどれか一つに合致した場合」にTRUEを返しますが、NOT関数にネストすると逆転した結果になります。
以下に示した図の通り、NOTにネストしたAND関数は「指定したすべての条件を満たす場合」にFALSEを返し、OR関数は「指定した条件のどれか一つに合致した場合」にFALSEを返します。
NOT関数とAND関数を組み合わせた使い方
「無料講習会」の参加資格を「20代、30代」か、または「非会員」にします。この判定をNOT関数とAND関数の組み合わせで実装します。
まず、AND関数で「40歳以上」かつ「正会員」という条件を指定した数式を組み立てます。
この数式「AND(B3>=40,C3=”正会員”)」をNOT関数の引数「論理式」にネストします。
結果をオートフィルコピーすると、「20代、30代」の人全員と、「非会員」の人全員の行にTRUEが返りました。裏返せば、「40歳以上で、尚且つ正会員」の人以外はTRUEということです。
AND関数の使い方は以下の記事に詳細にまとめてあります
NOT関数とOR関数を組み合わせた使い方
「無料講習会」の参加資格を、今度は「20代、30代」の「非会員」限定にします。この判定をNOT関数とOR関数の組み合わせで実装します。
前章でNOT関数の引数「論理式」にネストしたAND関数の数式「NOT(AND(B3>=40,C3=”正会員”))」を「NOT(OR(B3>=40,C3=”正会員”))」に修正します。
結果をオートフィルコピーすると、「20代、30代」で、かつ「非会員」の人の行だけにTRUEが返りました。裏返せば、「40歳以上」の人全員と「正会員」の人全員がFALSEということです。
OR関数の使い方は以下の記事に詳細にまとめてあります
IF関数にNOT関数をネストして判定を特定の文字列で表示
前章ではNOT関数にAND関数とOR関数をネストして判定結果を取得しましたが、TRUEとFALSEの結果表示では分かりやすいデータとは言えません。多くの場合、IF関数にネストして、一目で判定結果が見て取れるようにします。
IF関数の引数「論理式」に前章で組み立てたNOT関数「NOT(AND(B3>=40,C3=”正会員”))」「NOT(OR(B3>=40,C3=”正会員”))」をネストし、「真の場合」「偽の場合」にそれぞれ好きな文字列を指定します。文字列は「“”」で括る必要がありますが、入力後にTabキーを押して確定させれば「””」は自動で入ります。
ここでは「真の場合」は「◯」、「偽の場合」は空白になるよう指定しました。
データの最後までオートフィルコピーすれば、NOT関数の判定結果がIF関数に指定した文字列で表示されます。
最終的な数式 =IF(NOT(AND(B3>=40,C3=”正会員”)),”◯”,””) =IF(NOT(OR(B3>=40,C3=”正会員”)),”◯”,””)
IF関数の使い方は以下の記事に詳細にまとめてあります
NOT関数を条件付き書式に使う
条件付き書式で数式にNOT関数を指定して、IF関数にネストしたのと同様の結果を得る方法もあります。
前章でNOT関数で取得したTRUEの代わりに、IF関数で「◯」を表示させました。これを条件付き書式でTRUEの行全体に色を着けてみます。
この例では行全体に色を付けたいので、表の1行目全体をドラッグで選択、「ホーム」タブ「スタイル」グループの「条件付き書式」ボタンで開くプルダウンから「新しいルール」をクリックします。
ここではNOT関数にOR関数をネストした場合を例にしますが、AND関数でも操作は同じです。
- 新しいルールのダイアログでルールの種類を一番下の「数式を使用して、書式設定するセルを決定」にします
- 「次の数式を満たす場合に値を書式設定」のテキストボックスにNOT関数の数式をペーストします
- 数式のセル番地の部分を絶対列参照(列だけ固定)にしておきます → =NOT(OR($B3>=40,$C3=”正会員”))
- 「書式」ボタンをクリックして適当な書式を指定したら、「OK」を押します
条件付き書式が設定された行を下までオートフィルコピーします。この時点で値の単純コピーになりますが、オートフィルオプションボタン(右下に表示されているアイコン)をクリックして、「書式のみコピー(フィル)」を選択します。
設定した条件付き書式が適用されて、行に色が付きました。
- NOT関数は論理式に指定した条件が満たされていないことを判定します
- NOT関数に数値を指定すると0だけがTRUE、他はFALSEになります
- NOT関数に空白を指定するとTRUEになります
- NOT関数に論理値を指定すると、TRUEはFALSEになり、FALSEはTRUEになります
- NOT関数に複数の条件を指定するには、AND関数やOR関数をネストして実装します
- ネストされたAND関数やOR関数はNOT関数によって結果を逆転させます
- NOT関数の結果を論理値以外の文字列にするには、IF関数か条件付き書式を使います