エクセル関数応用
論理式とは条件式とは(IF関数,AND関数,OR関数)

Excel関数の解説、関数サンプルと高等テクニック
公開日:2015-05-30 最終更新日:2015-05-30

論理式とは条件式とは(IF関数,AND関数,OR関数)


エクセルを使いこなす上で論理式はとても重要です、
そもそも論理式とは何か、どうして論理式というのか、
論理式の作り方、論理式の使い方について解説します。


そもそも論理式という言い方が分かりずらいと思う。
なぜエクセルでは論理式というのか・・・
Microsoftのヘルプによると、

IF関数
構文: IF(logical_test, value_if_true, [value_if_false])
logical_test - A value or logical expression that can be evaluated as TRUE or FALSE.
value_if_true - [optional] The value to return when logical_test evaluates to TRUE.
value_if_false - [optional] The value to return when logical_test evaluates to FALSE.

このlogical expressionを訳しているので論理式になったのでしょう。

ちなみにVBAのIfステートメントは、
If condition Then [statements] [Else elsestatements]
このように書かれていますので、そのまま訳せば条件式になるでしょう。

一般的な用語としては、論理式と条件式に特段の違いはありません。
しいて言うなら、
複数の条件式を論理演算子で組み合わせたものが論理式
くらい感じでしょうか。
しかし、各プログラミング言語によって使い方はまちまちになります。
エクセルにおいても、IF関数は論理式と書かれますが、
同じように論理式を使う場合でも、条件付き書式のように条件という言い方をします。

では、そもそも式とは何か
式とは評価された値を持ちます。
論理式は、真(True)か偽(False)のどちらかの値になります。
注意してもらいたいのは、真の値は1つではないことです。
エクセルにおいては、
偽(False)は0です、そして真(True)は0以外の数値です。
偽(False)=0
真(True)<>0

になります、通常は真(True)=1ですが、0以外は全て真(True)と判定されます。

AND関数

AND(論理式1, [論理式2], ...)
すべての引数がTRUE(真)と評価された場合はTRUE(真)を返します。
引数のうち一つでもFALSE(偽)と評価された場合はFALSE(偽)を返します。

OR関数
OR(論理式1, [論理式2], ...)
いずれかの引数がTRUE(真)のとき、TRUE(真)を返します。
引数がすべてFALSE(偽)である場合は、FALSE(偽)を返します。

簡単な考え方として
AND関数は、各引数の値(真=1,偽=0)を掛け算します。
OR関数は、各引数の値(真=1,偽=0)を足し算します。
その結果が、0なら偽(False)、0以外なら真(True)となります。
関数なので、ネストが出来ます。
AND(AND(・・・), OR(・・・))
常に内側から判定し真(1)偽(0)の値にしていきます。

IF関数でのAND関数の使い方
算数、国語、英語という名前のセルがあるとして

・算数、国語、英語の全科目が80以上の場合「合格」、以外は「不合格」
=IF(算数>=80,IF(国語>=80,IF(英語>=80,"合格","不合格"),"不合格"),"不合格")
これをAND関数を使えば、
=IF(AND(算数>=80,国語>=80,英語>=80),"合格","不合格")

・算数、国語、英語の1科目でも80以上の場合「合格」、以外は「不合格」
=IF(算数>=80,"合格",IF(国語>=80,"合格",IF(英語>=80,"合格","不合格")))
=IF(OR(算数>=80,国語>=80,英語>=80),"合格","不合格")

このあたりまでは、どちらでも良い感じでしょうか。

・算数、国語、英語の2科目以上が80以上の場合「合格」、以外は「不合格」
=IF(算数>=80,IF(国語>=80,"合格",IF(英語>=80,"合格","不合格")),IF(国語>=80,IF(英語>=80,"合格","不合格"),"不合格"))
=IF(OR(AND(算数>=80,国語>=80),AND(算数>=80,英語>=80),AND(国語>=80,英語>=80)),"合格","不合格")

このくらいになると思考の整理が大変になってくるのでAND関数OR関数が使えると大分書くのが楽になります。
しかし、良く考えを整理して、論理的思考をめぐらすと、
=IF(IF(算数>=80,1,0)+IF(国語>=80,1,0)+IF(英語>=80,1,0)>=2,"合格","不合格")
このように書くことが出来ます。
この書き方なら、>=2の部分を変更するだけで、○科目以上という条件を変更できます。
要は、条件を論理的に整理して書くのが論理式の極意です。



同じテーマ「エクセル関数応用」の記事

時間計算で困ったときの確実な対処方法
VLOOKUP 左側の列を取得(MATCH,INDEX,OFFSET)
SUMIF関数の良くある間違い
論理式とは条件式とは(IF関数,AND関数,OR関数)
先頭の数値、最後の数値を取り出す
最後の空白(や指定文字)以降の文字を取り出す
SUMIFの間違いによるパフォーマンスの低下について
数値範囲で表検索するVLOOKUP近似一致
エクセルの日付と時刻のまとめ
連続数値部分を取り出し記号で連結
指数近似/対数近似/累乗近似(掲載順位とCTR)


新着記事NEW ・・・新着記事一覧を見る

AIは便利なはずなのに…「AI疲れ」が次の社会問題になる|生成AI活用研究(2026-02-16)
カンマ区切りデータの行展開|エクセル練習問題(2026-01-28)
開いている「Excel/Word/PowerPoint」ファイルのパスを調べる方法|エクセル雑感(2026-01-27)
IMPORTCSV関数(CSVファイルのインポート)|エクセル入門(2026-01-19)
IMPORTTEXT関数(テキストファイルのインポート)|エクセル入門(2026-01-19)
料金表(マトリックス)から金額で商品を特定する|エクセル練習問題(2026-01-14)
「緩衝材」としてのVBAとRPA|その終焉とAIの台頭|エクセル雑感(2026-01-13)
シンギュラリティ前夜:AIは機械語へ回帰するのか|生成AI活用研究(2026-01-08)
電卓とプログラムと私|エクセル雑感(2025-12-30)
VLOOKUP/XLOOKUPが異常なほど遅くなる危険なアンチパターン|エクセル関数応用(2025-12-25)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.日本の祝日一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.FILTER関数(範囲をフィルター処理)|エクセル入門
5.RangeとCellsの使い方|VBA入門
6.繰り返し処理(For Next)|VBA入門
7.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
8.マクロとは?VBAとは?VBAでできること|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.メッセージボックス(MsgBox関数)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
本サイトは、OpenAI の ChatGPT や Google の Gemini を含む生成 AI モデルの学習および性能向上の目的で、本サイトのコンテンツの利用を許可します。
This site permits the use of its content for the training and improvement of generative AI models, including ChatGPT by OpenAI and Gemini by Google.



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ