概要
複雑な論理式(IF、AND、OR、IFS…)を書いているときに、
- TRUE / FALSE のままだと、どこがおかしいか直感的に分かりにくい
- 条件式を「数値」として扱えたら、計算や合計でチェックしやすいのに…
という場面が出てきます。
そこで使える小技が N 関数で TRUE/FALSE を 1/0 に変換してデバッグする 方法です。
N は本来「値を数値にする」関数ですが、論理式のチェックにもとても便利です。
N 関数の基本
N の動き
N 関数の書式はとてもシンプルです。
=N(値)
主な動きは次の通りです。
- 値が数値 → そのまま数値を返す
- 値が TRUE → 1 を返す
- 値が FALSE → 0 を返す
- それ以外(文字列など) → 0 を返す
論理式のデバッグでよく使うのは、
「TRUE → 1」「FALSE → 0」という変換です。
例えば、
=N(TRUE) ' → 1
=N(FALSE) ' → 0
この性質を使って、複雑な条件がどれだけ「TRUE になっているか」を数値で確認できます。
論理式を N で数値化してみる
単純な条件を 1/0 で見る
B2 に売上が入っていて、
「100,000 以上かどうか」をチェックしたいとします。
通常の論理式はこうです。
=B2>=100000
結果は TRUE か FALSE です。
これを N で数値化します。
=N(B2>=100000)
B2>=100000 が TRUE のとき → N(TRUE)=1
B2>=100000 が FALSE のとき → N(FALSE)=0
TRUE/FALSE のままより、
「1 なら条件を満たしている」「0 なら満たしていない」
と数字として扱えるので、合計や平均などにも利用できます。
AND / OR の結果も N でチェックする
AND の結果を 1/0 で確認
売上と利益、両方の条件を満たしているかを確認する例です。
B2:売上
C2:利益
条件:
売上 100,000 以上、利益 10,000 以上
AND を使った判定はこうです。
=AND(B2>=100000, C2>=10000)
これを N で数値化します。
=N(AND(B2>=100000, C2>=10000))
両方満たしていれば 1、どちらかだけ/どちらも満たさなければ 0。
この 1/0 を使えば、複数行にコピーしたあと、
「合計すると何件条件を満たしているか」を簡単にチェックできます。
OR の結果も同様
期限切れか未処理か、どちらか一方でも該当すれば要注意、のようなケースでも同じです。
=N(OR(A2<TODAY(), B2="未処理"))
どちらかの条件でも TRUE → 1
どちらも FALSE → 0
複数の論理式の「どこで落ちているか」を見る
複数条件を並べて 1/0 で可視化する
例えば、次の条件があるとします。
B2:売上
C2:利益
D2:ランク(”A”,”B”,”C”)
条件A:売上>=100,000
条件B:利益>=10,000
条件C:ランクが “A” または “B”
それぞれの判定を N で見てみます。
条件A の数値化:
=N(B2>=100000)
条件B の数値化:
=N(C2>=10000)
条件C の数値化:
=N(OR(D2="A", D2="B"))
この 3 列を並べておけば、
- 1,1,1 → すべての条件を満たしている
- 1,0,1 → 利益条件だけ満たしていない
- 0,1,1 → 売上だけ足りない
と、「どこで落ちているか」が一目で分かります。
完成した AND 式がうまく動かないとき、
こうやって条件ごとに 1/0 で確認すると、原因が見つけやすくなります。
N を使って「条件が何件 TRUE か」を数える
フラグ列として使って SUM で合計
条件を N で 1/0 にしておけば、その列の合計は
「条件を満たした行数」になります。
例えば、E2 に
=N(AND(B2>=100000, C2>=10000))
と入れて、E列にコピーしておきます。
その上で、全体の件数を数えたいときは、
=SUM(E2:E100)
とするだけで、「条件を満たした行の数」が出ます。
このとき E列は「TRUE/FALSE ではなく 1/0」として持っているので、
SUM や AVERAGE との相性がとても良くなります。
N を IF の中で使う小技(デバッグしながら表示切替)
条件の結果を見つつラベルも返したいとき
「デバッグ中は条件の 1/0 を見たいけれど、最終的にはラベル表示にしたい」
というときは、IF と組み合わせると便利です。
例えば、売上条件の 1/0 を見たい場合に、
=IF(N(B2>=100000)=1, "対象", "対象外")
の代わりに、まずは
=N(B2>=100000)
で動作確認をしてから、
確信が持てたところで IF に戻す、という流れが分かりやすいです。
例題
問題1
B2 に売上金額が入っています。
売上が 100,000 以上のとき 1、そうでないとき 0 を返す式を、N 関数と比較演算子を使って書いてください。
=N(B2>=100000)
問題2
B2 に売上、C2 に利益が入っています。
売上>=100,000 かつ 利益>=10,000 のとき 1、それ以外は 0 を返す式を、AND と N を使って書いてください。
=N(AND(B2>=100000, C2>=10000))
問題3
A2 に期限日、B2 にステータス(”未処理” / “処理中” / “完了”)が入っています。
期限日が今日より前 もしくは ステータスが「未処理」の場合に 1、それ以外は 0 を返す式を、OR と N を使って書いてください。
=N(OR(A2<TODAY(), B2="未処理"))
問題4
B2 に売上、C2 に利益、D2 にランク(”A”,”B”,”C”)が入っています。
次の3つの条件をそれぞれ 1/0 で返す式を書いてください。
(1) 売上>=100,000
(2) 利益>=10,000
(3) ランクが “A” または “B”
=N(B2>=100000)
=N(C2>=10000)
=N(OR(D2="A", D2="B"))
問題5
E2 に =N(AND(B2>=100000, C2>=10000)) という式を入れて、E2:E100 にコピーしたとします。
「条件を満たした行数」を求める式を、E列を使って書いてください。
=SUM(E2:E100)
まとめ
N 関数は地味ですが、論理式のデバッグにとても役立ちます。
- TRUE / FALSE を 1 / 0 に変換できる
- 条件ごとの 1/0 を並べることで「どこで落ちているか」を可視化できる
- フラグ列として使えば、SUM で「条件を満たした件数」がすぐ分かる
複雑な IF や AND / OR がうまく動かないとき、
まずは N で 1/0 にして「条件単位で目で見る」習慣をつけると、
原因を落ち着いて追えるようになります。

