Excel~NOT関数で条件を満たさないか判定しよう~エクセル
NOT関数
エクセルで論理式が成り立たないかどうか判定するNOT関数について説明します。
- NOT関数の書式はNOT(論理式)になります。
- 論理式は成り立たないかどうか判定したい式を指定します。
文字列を条件にする
下の画像の例でAさんが1班でないかの判定をセルC2に表示したい場合はセルC2に=NOT(B2="1班")と入力しEnterを押します。
論理式は班の項目のセルB2が1班であることが成り立たないか判定したいのでB2="1班"になります。
つまりセルC2に=NOT(B2="1班")と入力しEnterを押すとAさんは1班なので論理式は成り立たないので、成り立たない場合はFALSEが表示されます。
セルC2からセルC7までオートフィルすると2班か3班の人はTRUEが表示され、1班の人はFALSEが表示されます。
数値を条件にする
下の画像の例でセルB2にセルA2の数値が4以上でない事の判定を表示したい場合はセルB2に=NOT(A2>=4)と入力しEnterを押します。
論理式1は数値の項目のセルA2が4以上であることが成り立たないかどうか判定したいのでA2>=4になります。
比較演算子は以下の表に対応しています。
比較演算子 | 説明 |
---|---|
> | より大きい |
< | より小さい |
= | 等しい |
>= | 以上 |
<= | 以下 |
<> | 等しくない |
つまりセルB2に=NOT(A2>=4)と入力しEnterを押すとセルA2の数値は1なので論理式は成り立たないので、成り立たない場合はTRUEが表示されます。
セルB2からセルB7までオートフィルすると各行のA列の数値が4以上でない場合はTRUE、それ以外はFALSEがB列に表示されます。
空白でないことを条件にする
下の画像の例でセルA2のデータが空白でないかの判定をセルB2に表示したい場合はセルB2に=NOT(A2="")と入力しEnterを押します。
論理式はデータの項目のセルA2が空白であることが成り立たないか判定したいのでA2=""になります。
つまりセルC2に=NOT(A2="")と入力しEnterを押すとセルA2は空白でないので論理式は成り立たないので、成り立たない場合はTRUEが表示されます。
セルC2からセルC7までオートフィルすると各行のA列が空白でなけらばB列にTRUEが表示され、空白ならばFALSEが表示されます。
日付を条件にする
下の画像の例でセルB3にセルA3の日付が2016/9/28でないか判定したい場合はセルC3に=NOT(A3=DATE(2016,9,28))と入力しEnterを押します。
論理式はセルA3の日付が2016/9/28であることが成り立たないかどうか判定したいのでA3=DATE(2016,9,28)になります。DATE関数はDATE(年,月,日)で日付を返します。
つまりセルB3に=NOT(A3=DATE(2016,9,28))と入力しEnterを押すとセルA3の日付2016/9/26では論理式は成り立たないので、成り立たない場合はTRUEが表示されます。
セルB3からB8までオートフィルすると各行のA列の日付が2016/9/28でなければTRUEが表示され、2016/9/28であればFALSEが表示されます。
別セルの文字列を参照して条件にする
下の画像の例でNOT関数の条件にセルA2を参照してセルC5にAさんが否定条件の1班でないかどうかの判定を表示したい場合は=NOT(B5=$A$2)と入力しEnterを押します。オートフィルした時に範囲がズレないように絶対参照$を使用しています。
論理式は班の項目のセルB5がセルA2の1班でないかどうか判定したいのでB5=$A$2になります。
つまりセルC6に=NOT(B5=$A$2)と入力しEnterを押すとAさんは1班なので論理式が成り立つので、成り立つ場合はFALSEが表示されます。
セルC5からセルC10までオートフィルすると2班か3班の人はTRUEが表示され、1班の人はFALSEが表示されます。
セルA2の条件を書き換えればセルC5からセルC10の結果も瞬時に変わります。
別セルの数値を参照して条件にする
下の画像の例でNOT関数の条件にセルA2を参照してセルB5にセルA5の数値が5でないか判定を表示したい場合はセルB5に=NOT(A5=$A$2)と入力しEnterを押します。オートフィルした時に範囲がズレないように範囲に絶対参照$を使用しています。
論理式は数値の項目のセルA5がセルA2の否定条件でないか判定したいのでA5=$A$2になります。
つまりセルB5に=NOT(A5=$A$2)と入力しEnterを押すとセルA5の数値1は論理式を満たさないのでTRUEが表示されます。
セルB5からセルB10までオートフィルすると各行のA列の数値が5でない場合はB列にTRUEが表示され、5の場合はB列にFALSEが表示されます。
セルA2の条件を書き換えればセルB5からセルB10の結果も瞬時に変わります。
IF関数との組み合わせ
NOT関数はIF関数と組み合わせて使えばNOT関数がTRUEの時とFALSEの時の表示を指定できます。
下の画像の例でセルC2にAさんが1班の条件を満たさなければ〇を表示し、満たせば空白にしたい場合はセルC2に=IF(NOT(B2="1班"),"〇","")と入力しEnterを押します。
IF関数の書式はIF(論理式,[値が真の場合],[値が偽の場合])になります。
IF関数の論理式にNOT(B2="1班")を指定すればセルB2が1班の条件を満たさなければTRUEを返し、この場合はIF関数の[値が真の場合]が表示されます。セルB2が2班か3班の場合はIF関数の[値が偽の場合]が表示されます。
IF関数の[値が真の場合]にはNOT関数の論式を満たさない場合に〇を表示したいので"〇"になります。
IF関数の[値が偽の場合]にはNOT関数の論理式を満たした場合は空白にしたいので""になります。
つまりセルC2に=IF(NOT(B2="1班"),"〇","")と入力しEnterを押すとAさんは1班なのでNOT関数の論理式を満たすので空白になります。
セルC2からセルC7までオートフィルすると各行のB列の1班ならばC列は空白となり、2班か3班ならばC列に"〇"が表示されます。