LWP | Excel数式でANDとORを0/1化する
LWP TECHNICAL ARTICLE | 180
Excel数式でANDとORを0/1化する
掛け算・足し算・SIGNから、論理演算とTRUEの個数の違いを理解する
Copyright © 2026 LWP 山中 一弘
本資料は、出典を明記いただければ、商用・非商用を問わず、ご自由に複製・改変・再配布していただけます。なお、著作権表示は改変せず、そのまま記載してご利用くださいますようお願いいたします。
記事要約
Excelでは、比較式が返すTRUE/FALSEを算術演算に入れると、TRUEを1、FALSEを0として扱えます。この性質を使うと、ANDは条件どうしの掛け算で、そのまま0/1として表現できます。
一方、ORを条件どうしの足し算だけで表すと、結果は0/1ではなく「TRUEになった条件の個数」です。ORとして使うには、0なら0、1以上なら1へ正規化する必要があります。論理値が欲しければ 合計>0、数値の0/1が欲しければ --(合計>0)、MIN(1,合計)、または合計が非負であることを前提に SIGN(合計) を使えます。
この記事では、ANDとORを単なる暗記ではなく、0/1の算術として組み立てます。結論は「ANDは積、ORは和ではなく、和を0/1へ正規化したもの」です。
本記事の対象とゴール
想定読者
Excelの比較式やAND、OR関数は使えるが、TRUE/FALSEの数値化を整理したい方
複数条件を配列計算、集計、フィルター条件へ組み込みたい方
二重単項マイナス、SIGN、MINの使い分けを説明できるようになりたい方
本記事で得られること
ANDを掛け算で表せる理由を真理値表から説明できます。
ORの足し算が「TRUEの個数」になる理由と、0/1へ戻す方法を選べます。
論理値と数値0/1を意識して、目的に合う数式を書けます。
はじめに ANDとORを算術として見る
Excelの比較演算子は、TRUEまたはFALSEを返します。たとえば、次の2式はそれぞれ独立した条件です。
A1=10
B1=20
比較結果を + や * など数値を必要とする演算へ渡すと、Excelは論理値を数値へ変換します。ここでは、TRUEを1、FALSEを0として扱えます。
TRUE → 1
FALSE → 0
この対応を使えば、論理演算を0/1の計算として観察できます。ただし、ANDとORには決定的な違いがあります。
第1章 ANDは掛け算でそのまま表せる
1.1 2条件のAND
次の式は、2つの条件を掛けています。
=(A1=10)*(B1=20)
結果を真理値表で確認すると、ANDと一致します。
| 条件1 | 条件2 | 積 | ANDとしての結果 |
|---|---|---|---|
| FALSE | FALSE | 0×0 = 0 | 0 |
| TRUE | FALSE | 1×0 = 0 | 0 |
| FALSE | TRUE | 0×1 = 0 | 0 |
| TRUE | TRUE | 1×1 = 1 | 1 |
一つでもFALSE、つまり0が含まれれば積は0です。すべてがTRUE、つまり1のときだけ積が1になります。
1.2 条件が増えても同じ
3条件でも考え方は変わりません。
=(A1=10)*(B1=20)*(C1=30)
どれか一つが0なら積は0、すべてが1なら積は1です。ANDでは、掛け算の後も値が0または1の範囲に保たれます。追加の正規化は必要ありません。
第2章 ORの足し算はTRUEの個数になる
2.1 単純に足すと2が現れる
ORも同じ発想で足してみます。
=(A1=10)+(B1=20)
| 条件1 | 条件2 | 和 | ORとして欲しい結果 |
|---|---|---|---|
| FALSE | FALSE | 0+0 = 0 | 0 |
| TRUE | FALSE | 1+0 = 1 | 1 |
| FALSE | TRUE | 0+1 = 1 | 1 |
| TRUE | TRUE | 1+1 = 2 | 1 |
両方がTRUEのとき、和は2です。単純な足し算が返しているのはORではなく、TRUEになった条件の個数です。
0個の条件がTRUE → 0
1個の条件がTRUE → 1
2個の条件がTRUE → 2
条件が5個なら、結果は0から5までになります。これは失敗ではありません。条件成立数を求めたい場合には、そのまま有用な値です。
2.2 ORに必要なのは正規化
ORとして欲しい変換は次のとおりです。
0 → 0
1以上 → 1
したがって、算術的なORは一段ではなく二段です。
条件を足す
↓
TRUEの個数を得る
↓
0か1以上かに正規化する
第3章 まず論理値としてORを作る
3.1 合計が0より大きいかを判定する
TRUEの個数が1以上かどうかを、そのまま比較します。
=(A1=10)+(B1=20)>0
Excelでは比較演算より加算の優先順位が高いため、まず条件の合計が計算され、その後に >0 が評価されます。読み手に意図を明確にするなら、次のように合計部分を括弧で囲むと安全です。
=((A1=10)+(B1=20))>0
この式の結果はTRUE/FALSEです。ORの結果をIFの条件や別の論理式で使うなら、これで完成です。
3.2 標準のOR関数を使う選択
「複数条件のどれかがTRUEか」を表したいだけなら、標準のOR関数が最も意味を伝えます。
=OR(A1=10,B1=20)
算術表現は仕組みを理解したり、配列演算へ組み込んだりするときに有用です。通常の業務式では、読み手が意図を理解しやすいOR関数も有力です。
第4章 TRUE/FALSEを数値の0/1へ戻す
4.1 二重単項マイナス
比較結果を数値化する代表的な書き方です。
=--(((A1=10)+(B1=20))>0)
処理の流れは次のとおりです。
条件を足す
↓
0より大きいかを判定する
↓
TRUE/FALSEを得る
↓
--で1/0へ変換する
短く書ける反面、二重単項マイナスに慣れていない人には説明が必要です。
4.2 N関数
数値への変換を名前で示したい場合は、N関数を使えます。
=N(((A1=10)+(B1=20))>0)
TRUEは1、FALSEは0になります。二重単項マイナスより少し長い一方、変換の意図を説明しやすい書き方です。
4.3 IF関数
最も明示的に書くならIF関数です。
=IF(((A1=10)+(B1=20))>0,1,0)
「1件以上なら1、そうでなければ0」が式に現れます。数式の短さより説明の明確さを優先する場面に向きます。
第5章 数値のまま0/1へ正規化する
5.1 MINで上限を1にする
条件の合計は0以上なので、最大値を1へ制限すればORになります。
=MIN(1,(A1=10)+(B1=20))
MIN(1,0) → 0
MIN(1,1) → 1
MIN(1,2) → 1
これは、値を1で飽和させる考え方です。条件が増えて合計が7になっても、結果は1です。
5.2 SIGNで0か正数かを識別する
SIGN関数は、正の数なら1、0なら0、負の数なら-1を返します。条件式の合計は0以上なので、次の式で0/1へ正規化できます。
=SIGN((A1=10)+(B1=20))
SIGN(0) → 0
SIGN(1) → 1
SIGN(2) → 1
条件成立数が負にならないことを前提にできる場合、SIGNは「0か正数か」を直接0/1へ写す簡潔な方法です。
5.3 なぜ n^0 は使わないのか
正の数だけを見れば、1、2、3の0乗はいずれも1です。しかしORには、すべてFALSEで合計が0になるケースがあります。そこで0の0乗を式の意味に持ち込むことになります。
ORの意図は「合計が0か、正か」です。この意図をそのまま表せる >0、MIN、SIGNがあるため、べき乗を使う理由はありません。
第6章 純粋な0/1演算としてのOR
6.1 2変数なら x+y-xy
入力が0または1に限られるとき、次の式もORと一致します。
x OR y = x + y - xy
| x | y | x+y-xy |
|---|---|---|
| 0 | 0 | 0 |
| 1 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 1 | 1 |
別の形なら、次の式も同じです。
x OR y = 1 - (1-x)(1-y)
数学的には整っていますが、Excelで同じ比較式を何度も書くと読みにくくなります。理論の理解には有用でも、実務式ではSIGN、MIN、OR関数の方が意図を伝えやすいことが多いでしょう。
第7章 目的別に式を選ぶ
| 目的 | 推奨例 | 戻り値 |
|---|---|---|
| 標準的にORを表す | =OR(A1=10,B1=20) | TRUE/FALSE |
| 算術式の合計からORを判定する | =((A1=10)+(B1=20))>0 | TRUE/FALSE |
| ORを0/1にする | =--OR(A1=10,B1=20) | 0/1 |
| 算術の考え方を維持して0/1にする | =SIGN((A1=10)+(B1=20)) | 0/1 |
| 上限1として説明する | =MIN(1,(A1=10)+(B1=20)) | 0/1 |
| TRUEの件数を数える | =(A1=10)+(B1=20) | 0~条件数 |
式の短さだけで選ばず、結果を論理値として使うのか、数値として集計するのか、成立件数そのものが欲しいのかを先に決めます。
まとめ ANDは積、ORは和の正規化
比較結果を算術演算へ渡すと、TRUEを1、FALSEを0として扱えます。
ANDは0/1の積であり、掛け算だけで結果が0/1に保たれます。
ORの単純な足し算は、ORではなくTRUEになった条件の個数です。
ORにするには、合計を「0なら0、1以上なら1」へ正規化します。
論理値が欲しければ 合計>0、数値が欲しければ二重単項マイナス、N、IF、MIN、SIGNなどを目的に応じて選びます。
算術として最も対称的にまとめるなら、次の形です。
AND = PRODUCT
OR = SIGN(SUM)
ただし、業務数式の最終基準は「短いか」ではなく、「何を返す式なのかを読み手が判断できるか」です。
参考資料
Microsoft Support「Calculation operators and precedence in Excel」
Microsoft Support「SIGN function」
Microsoft Support「Logical functions (reference)」
出典メモ
元原稿: C:\Users\hoehoe\Downloads\記事ネタmd\Excel数式のANDとORを掛け算・足し算で表す――ORを0-1に正規化するには.md
元原稿の主張、数式、比較表を素材に、論理値と数値0/1の使い分けが前から読める構成へ再編集しました。
Excelの演算子、比較結果、SIGN、ORの説明は、2026年8月21日にMicrosoft公式資料で確認しました。
公式資料: https://support.microsoft.com/en-us/excel/calculation-operators-and-precedence-in-excel
公式資料: https://support.microsoft.com/en-us/office/sign-function-109c932d-fcdc-4023-91f1-2dd0e916a1d8
公式資料: https://support.microsoft.com/en-US/Excel/logical-functions-reference
