Excel Office 365には全部で19種類の論理関数があります。
この記事では、Excelで使える論理関数全19種類を解説します。それぞれの関数の使い方から、具体的な実用例をご紹介します!
論理関数の基本と種類
特定の「条件」が正しいか(TRUE)間違っているか(FALSE)を判定し、その結果に応じて異なる処理を行うための関数
論理関数は、主に以下の3つのカテゴリーに分類できます。
- 基本的な条件判定関数
条件が正しいか(TRUE)または間違っているか(FALSE)を判定します。AND関数やOR関数などがこれにあたります。 - 条件に応じた値を返す関数
条件判定の結果に基づいて、指定した値を返したり、別の計算を実行したりします。IF関数やSWITCH関数などがこれにあたります。 - LAMBDA関数と組み合わせる新しい論理関数
より柔軟なデータ処理を可能にする、新しいカテゴリーの関数です。LET関数やMAP関数などが含まれます。

この記事では、全19個の論理関数を、上記のカテゴリー順に解説します。
論理関数全19種類の使い方と実用例
ここでは、Excel Office 365で使用できる論理関数全19個の役割と構文、具体的な使い方を一覧表でご紹介します。
カテゴリー | 関数名 | 役割 | 構文と引数 |
基本的な条件判定関数 | AND | すべての条件が満たされた場合にTRUEを返します。 | =AND(論理式1, [論理式2], …) |
OR | いずれかの条件が満たされた場合にTRUEを返します。 | =OR(論理式1, [論理式2], …) | |
NOT | 論理値(TRUE/FALSE)を反転させます。 | =NOT(論理式) | |
TRUE | 論理値「TRUE」を返します。 | =TRUE() | |
FALSE | 論理値「FALSE」を返します。 | =FALSE() | |
XOR | いずれか一方の条件だけが真の場合にTRUEを返します。 | =XOR(論理式1, [論理式2], …) | |
条件に応じた値を返す関数 | IF | 指定した条件が真か偽かによって、返す値を切り替えます。 | =IF(論理式, 真の場合の値, [偽の場合の値]) |
IFERROR | 式の評価でエラーが発生した場合に、指定した値を返します。 | =IFERROR(値, エラーの場合の値) | |
IFNA | 式の評価で#N/Aエラーが発生した場合に、指定した値を返します。 | =IFNA(値, #N/Aエラーの場合の値) | |
IFS | 複数の条件を順番にチェックし、最初に真と判定された条件に対応する値を返します。 | =IFS(論理式1, 値1, [論理式2, 値2], … [既定値]) | |
SWITCH | 値と複数の条件を比較し、一致する条件に対応する値を返します。 | =SWITCH(値, 条件1, 結果1, [条件2, 結果2], … [既定値]) | |
LAMBDA関数と組み合わせる新しい論理関数 | LAMBDA | カスタムの再利用可能な関数を作成します。 | =LAMBDA([引数1], [引数2], …, 計算式) |
LET | 計算内で名前を割り当てて、計算式を簡潔にします。 | =LET(名前1, 値1, [名前2, 値2], …, 計算式) | |
BYCOL | 配列を列ごとに論理式でスキャンし、結果の配列を返します。 | =BYCOL(配列, LAMBDA(列, 論理式)) | |
BYROW | 配列を行ごとに論理式でスキャンし、結果の配列を返します。 | =BYROW(配列, LAMBDA(行, 論理式)) | |
MAP | 配列の各要素に計算式を適用し、新しい配列を返します。 | =MAP(配列, LAMBDA(項目, 計算式)) | |
REDUCE | 配列の各要素を計算し、累積した単一の値を返します。 | =REDUCE(初期値, 配列, LAMBDA(累積値, 項目, 計算式)) | |
SCAN | 配列の各要素を計算し、中間結果の配列を返します。 | =SCAN(初期値, 配列, LAMBDA(中間値, 項目, 計算式)) | |
MAKEARRAY | 指定された行数と列数を持つ計算結果の配列を作成します。 | =MAKEARRAY(行数, 列数, LAMBDA(行, 列, 計算式)) |
論理関数を使いこなすためのヒント
ここでは、各関数の具体的な使い方を、より実践的な例題と合わせてご紹介します。
基本的な条件判定関数
これらの関数は、IF関数などの引数として使われることが多く、複雑な条件を組み立てる際に非常に役立ちます。
1. AND関数
複数の条件をすべて満たすか判定したいときに使います。
構文
=AND(論理式1, [論理式2], …)
引数の意味
論理式1、[論理式2]は、TRUEまたはFALSEに評価できる条件式を複数指定します。
例題: 「売上が300万円以上」かつ「顧客満足度が90点以上」の場合に「成功」と表示したい。

2. OR関数
複数の条件のいずれかを満たすか判定したいときに使います。
構文
=OR(論理式1, [論理式2], …)
引数の意味
論理式1、[論理式2]は、TRUEまたはFALSEに評価できる条件式を複数指定します。
例題: 「担当者がAさん」または「担当者がBさん」の場合に「重要」と表示したい。

3. NOT関数
条件を反転させたいときに使います。
構文
=NOT(論理式)
引数の意味
論理式は、TRUEまたはFALSEに評価できる単一の条件式を指定します。
例題: 「担当者がAさんではない」場合に「他の案件」と表示したい。

4. TRUE関数 / 5. FALSE関数
それぞれ論理値のTRUE(真)またはFALSE(偽)を返します。他の関数と組み合わせて使われることが多いです。
構文
=TRUE()
=FALSE()
引数の意味
引数はありません。
例題: 単純にTRUEまたはFALSEという結果を返したい場合。

6. XOR関数
XORは排他的論理和と呼ばれ、どちらか一方だけが真の場合にTRUEを返します。両方が真、または両方が偽の場合はFALSEになります。
構文
=XOR(論理式1, [論理式2], …)
引数の意味
論理式1、[論理式2]は、TRUEまたはFALSEに評価できる条件式を複数指定します。
例題: 「売上が目標達成」かつ「経費が予算オーバー」のどちらか片方の場合に「再検討」と表示したい。

条件に応じた値を返す関数
これらの関数は、条件判定の結果に基づいて、特定の値をセルに表示させたいときに役立ちます。
7. IF関数
最も基本的な論理関数で、指定した条件が真か偽かによって返す値を切り替えます。
構文
=IF(論理式, 真の場合の値, [偽の場合の値])
引数の意味
論理式は、TRUEまたはFALSEに評価できる条件式を指定します。真の場合の値は、論理式がTRUEだった場合に返す値を指定します。[偽の場合の値]は、論理式がFALSEだった場合に返す値を指定します。(省略可能)
例題: 「点数が60点以上」なら「合格」、それ以外なら「不合格」と表示したい。

8. IFERROR関数
エラーが発生した場合に、指定したメッセージなどを表示させたいときに使います。
構文
=IFERROR(値, エラーの場合の値)
引数の意味
値は、エラーをチェックしたい式または値を指定します。エラーの場合の値は、値の評価がエラーだった場合に返す値を指定します。
例題: 割り算の式で、分母が0の場合にエラー(#DIV/0!)を回避したい。

9. IFNA関数
VLOOKUPなどで、データが見つからない場合のエラー(#N/A)を回避したいときに使います。
構文
=IFNA(値, #N/Aエラーの場合の値)
引数の意味
値は、#N/Aエラーをチェックしたい式または値を指定します。#N/Aエラーの場合の値は、値の評価が#N/Aエラーだった場合に返す値を指定します。
例題: 商品IDが見つからない場合に「商品情報なし」と表示したい。

10. IFS関数
複数のIF関数をネスト(入れ子)にせずに、複数の条件を順番に判定したいときに使います。
構文
=IFS(論理式1, 値1, [論理式2, 値2], … [既定値])
引数の意味
論理式1、値1、[論理式2]、[値2]は、論理式とその論理式がTRUEだった場合に返す値をセットで複数指定します。[既定値]は、どの論理式もTRUEにならなかった場合に返す値を指定します。(省略可能)
例題: 「点数が90点以上」なら「A」、「80点以上」なら「B」、「70点以上」なら「C」、それ以外は「D」と表示したい。

11. SWITCH関数
ある値と複数の候補を比較し、一致するものに応じて値を返したいときに使います。
構文
=SWITCH(値, 条件1, 結果1, [条件2, 結果2], … [既定値])
引数の意味
値は、比較の対象となる値を指定します。条件1、結果1、[条件2]、[結果2]は、比較の対象となる値と、その値に一致した場合に返す結果をセットで複数指定します。[既定値]は、どの条件にも一致しなかった場合に返す値を指定します。(省略可能)
例題: 「担当者名」に応じて、担当部署を返したい。

LAMBDA関数と組み合わせる新しい論理関数
Excel Office 365の登場により、より柔軟なデータ処理を可能にする関数が追加されました。これらは通常、LAMBDA関数と組み合わせて使います。
12. LAMBDA関数
引数と計算式を指定して、オリジナルのカスタム関数を作成します。
構文
=LAMBDA([引数1], [引数2], …, 計算式)
引数の意味
[引数1]、[引数2]は、カスタム関数で使える引数名を指定します。計算式は、引数を使って実行したい計算式を指定します。
例題: 消費税込みの金額を計算するカスタム関数を作成し、それを「税込価格」という名前に定義したい。
=LAMBDA(価格, 価格 * 1.1)
このLAMBDA関数を「税込価格」という名前で定義すれば、今後は=税込価格(A1)のように簡潔に計算できます。

13. LET関数
計算内で一時的に変数(名前)を定義することで、式を読みやすく、高速にすることができます。
構文
=LET(名前1, 値1, [名前2, 値2], …, 計算式)
引数の意味
名前1、値1、[名前2]、[値2]は、計算内で使用する名前とその値をセットで指定します。計算式は、名前を使って実行したい計算式を指定します。
例題: 消費税込みの金額を計算する際に、式を簡潔にしたい。
=LET(税率, 0.1, 価格, 1000, 価格 * (1 + 税率))
この式は「税率」という名前を0.1に、「価格」という名前を1000に定義し、価格 * (1 + 税率)という計算を行います。

14. BYCOL関数 / 15. BYROW関数
配列のデータを列ごと(BYCOL)または行ごと(BYROW)に処理したいときに使います。
構文
=BYCOL(配列, LAMBDA(列, 論理式))
=BYROW(配列, LAMBDA(行, 論理式))
引数の意味
配列は、処理したいデータの範囲(配列)を指定します。LAMBDA(列, 論理式)は、列ごとの処理を定義するLAMBDA関数を指定します。LAMBDA(行, 論理式)は、行ごとの処理を定義するLAMBDA関数を指定します。
例題: A1からC3の表で、列ごとの合計を計算したい。

例題: A1からC3の表で、行ごとの合計を計算したい。

16. MAP関数
配列の各要素に同じ処理を適用して、新しい配列を生成したいときに使います。
構文
=MAP(配列, LAMBDA(項目, 計算式))
引数の意味
配列は、処理したいデータの範囲(配列)を指定します。LAMBDA(項目, 計算式)は、各要素に適用する計算式を定義するLAMBDA関数を指定します。
例題: A1からC1までの各商品の価格に10%の消費税を加えて表示したい。

17. REDUCE関数 / 18. SCAN関数
REDUCE関数は、配列の各要素を順番に処理し、最終的に一つの値を返します。
SCAN関数は、配列の各要素を順番に処理し、各ステップの結果を配列として返します。
構文
=REDUCE(初期値, 配列, LAMBDA(累積値, 項目, 計算式))
=SCAN(初期値, 配列, LAMBDA(中間値, 項目, 計算式))
引数の意味
初期値は、最初の計算の起点となる値を指定します。配列は、処理したいデータの範囲(配列)を指定します。LAMBDA(累積値/中間値, 項目, 計算式)は、累積値(REDUCE)または中間値(SCAN)を更新する計算式を定義するLAMBDA関数を指定します。
REDUCEの例題: 売上データをすべて足し算して、最終的な合計値だけを返したい。
数式:=REDUCE(0, A1:A5, LAMBDA(total, value, total + value))
結果: 560

SCANの例題: 売上データの日次累積合計を配列として返したい。
数式:=SCAN(0, A1:A5,LAMBDA(total, value, total + value))
結果: {100, 220, 300, 450, 560}

19. MAKEARRAY関数
指定した行数と列数で、計算結果の配列を作成します。
構文
=MAKEARRAY(行数, 列数, LAMBDA(行, 列, 計算式))
引数の意味
行数は、作成する配列の行数を指定します。列数は、作成する配列の列数を指定します。LAMBDA(行, 列, 計算式)は、配列の各セルの値を計算するLAMBDA関数を指定します。
例題: 5×5の九九の表を作成したい。
数式:=MAKEARRAY(5, 5, LAMBDA(r, c, r * c))
結果:5行5列の九九の表が生成されます。

記事のまとめ
いかがでしたでしょうか?
今回は、Excel Office 365で使える論理関数全19種類を網羅的にご紹介しました。
ANDやIFといった基本的な関数から、LAMBDAと組み合わせて使う高度な関数まで、それぞれの役割と使い方を理解することで、Excelのデータ処理能力は飛躍的に向上します。
ぜひ、これらの関数をマスターして、日々の業務を効率化してくださいね!
コメント