Excelの論理関数全19種類を徹底解説!初心者から使える使い方と実用例

Excel Office 365には全部で19種類の論理関数があります。

この記事では、Excelで使える論理関数全19種類を解説します。それぞれの関数の使い方から、具体的な実用例をご紹介します!

この記事でわかること
  • Excelの論理関数にはどんな種類があるのか?
  • 各論理関数の具体的な役割と使い方

論理関数の基本と種類

論理関数とは

特定の「条件」が正しいか(TRUE)間違っているか(FALSE)を判定し、その結果に応じて異なる処理を行うための関数

論理関数は、主に以下の3つのカテゴリーに分類できます。

  1. 基本的な条件判定関数
    条件が正しいか(TRUE)または間違っているか(FALSE)を判定します。AND関数やOR関数などがこれにあたります。
  2. 条件に応じた値を返す関数
    条件判定の結果に基づいて、指定した値を返したり、別の計算を実行したりします。IF関数やSWITCH関数などがこれにあたります。
  3. 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のデータ処理能力は飛躍的に向上します。

ぜひ、これらの関数をマスターして、日々の業務を効率化してくださいね!

コメント

タイトルとURLをコピーしました