ADVERTISEMENT

【Googleスプレッドシート】AND関数とOR関数で複数条件を組み合わせる!IF関数との連携

【Googleスプレッドシート】AND関数とOR関数で複数条件を組み合わせる!IF関数との連携
🛡️ 超解決

「売上が100万円以上かつ地域が東京の場合だけボーナスを計算したい」「A列がりんごまたはB列が果物の行を抽出したい」など、複数の条件を同時に判定したい場面は多いです。GoogleスプレッドシートにはAND関数とOR関数が用意されており、これらをIF関数と組み合わせることで、複雑な条件分岐を1つの数式で実現できます。この記事では、AND関数とOR関数の基本から、IF関数との連携方法、よくあるエラーの対処法までを具体例とともに解説します。

【要点】AND・ORをIFと組み合わせて複数条件を判定する方法

  • =AND(条件1, 条件2, …): すべての条件がTRUEの場合のみTRUEを返します。IF関数の論理式として使うと、複数条件すべてを満たすときだけ処理を実行できます。
  • =OR(条件1, 条件2, …): いずれか1つでもTRUEの条件があればTRUEを返します。IF関数と組み合わせると、どれか1つでも条件に合致するかどうかを判定できます。
  • =IF(AND(…), 真の場合, 偽の場合) / =IF(OR(…), 真の場合, 偽の場合): ANDやORをIFの第1引数に直接入れ子にすることで、複数条件を1つのIF式で処理できるようになります。

ADVERTISEMENT

AND関数とOR関数の基本

AND関数とOR関数は、複数の論理条件を評価してTRUEまたはFALSEを返す関数です。AND関数はすべての条件がTRUEのときだけTRUEを返し、OR関数は1つでもTRUEがあればTRUEを返します。これらの関数は単独でも使えますが、実際にはIF関数と組み合わせて使うことがほとんどです。例えば、テストの点数が80点以上かつ出席率が90%以上の場合に「合格」と表示するには、=IF(AND(A1>=80, B1>=90), "合格", "不合格")のように書きます。

AND・ORの引数には、論理値(TRUE/FALSE)を返す式や、数値(0はFALSE、それ以外はTRUEと解釈)を指定できます。最大30個までの条件を指定可能です。

IF関数とAND/OR関数を組み合わせる手順

ここでは、実際のシートで使える具体例を交えながら、IF+ANDとIF+ORの基本的な書き方を説明します。サンプルとして、以下のような売上管理表を想定します。

A列:担当者、B列:売上(万円)、C列:地域、D列:判定結果

IF+ANDで複数条件のすべてを満たす場合の処理

  1. 条件を決める
    例えば「売上が100万円以上かつ地域が東京」の場合に「対象」と表示する場合を考えます。
  2. 数式を入力するセルを選択
    D2セルを選択します。
  3. IF+ANDの数式を入力
    =IF(AND(B2>=100, C2="東京"), "対象", ""))と入力します。ANDで2つの条件をまとめ、その結果をIFの論理式に使います。すべて満たすときは「対象」、そうでなければ空白を返します。
  4. 数式をコピーする
    D2セルの右下フィルハンドルをダブルクリックして、下の行に数式をコピーします。

これで、売上100万円以上かつ東京の行だけに「対象」と表示されます。

IF+ORでいずれかの条件を満たす場合の処理

  1. 条件を決める
    例えば「売上が50万円未満または地域が大阪」の場合に「要注意」と表示する場合を考えます。
  2. 数式を入力
    E2セルに=IF(OR(B2<50, C2="大阪"), "要注意", "")と入力します。ORで2つの条件のいずれかがTRUEなら「要注意」を返します。
  3. コピーする
    同様にフィルハンドルで下にコピーします。

ANDとORを組み合わせる(複合条件)

ANDとORを入れ子にして、より複雑な条件も作れます。例えば「(売上100万円以上かつ地域が東京)または(売上50万円以上かつ地域が大阪)」という条件は、=IF(OR(AND(B2>=100, C2="東京"), AND(B2>=50, C2="大阪")), "条件一致", "")と書きます。ORの引数に2つのANDが入っている形です。

手順は上記と同じで、数式の構造が複雑になるだけです。インデントや改行を意識して入力するとミスを減らせます。

AND・ORを使うときの注意点とよくあるエラー

括弧の位置を間違えてしまう

ANDやORを入れ子にするとき、括弧の対応がずれるとエラーになります。特にANDとORを混在させる場合、各関数の開き括弧と閉じ括弧を正しく対応させましょう。Googleスプレッドシートは数式入力中に括弧の色分けやマッチング表示を行うので、それを活用すると間違いを防げます。

TRUE/FALSEを直接返さない値を使ったとき

ANDやORの引数にはTRUE/FALSEを返す式を渡すのが基本です。数値を直接指定すると、0はFALSE、それ以外はTRUEと解釈されますが、意図しない結果になることがあります。例えば=IF(AND(A1, B1), "OK", "NG")と書くと、A1やB1が0や空白のときにFALSEとみなされます。明示的に比較演算子を使って、=IF(AND(A1<>0, B1<>0), ...)のように書くほうが安全です。

文字列の比較で大文字小文字を区別しない

Googleスプレッドシートの比較演算子(=)はデフォルトで大文字小文字を区別しません。厳密に区別したい場合はEXACT関数と組み合わせます。ただしANDやORの条件内でEXACTを使うと数式が長くなるので、必要に応じて使い分けてください。

#VALUE!エラーが表示される

引数に数値と文字列が混在しているなど、データ型の不一致が原因で起こります。例えば=IF(AND(A1="東京", B1>100), ...)でB1に文字列が入っているとエラーになります。事前にデータの型を統一するか、IFERRORでエラーを回避しましょう。

ADVERTISEMENT

AND関数とOR関数の比較

関数 戻り値の条件 使用イメージ
AND すべての条件がTRUEの場合のみTRUE 「かつ」「すべて」の条件
OR いずれか1つでもTRUEならTRUE 「または」「どれか」の条件
IF+AND ANDがTRUEのときに真の値、FALSEのときに偽の値 複数条件すべてを満たすときだけ処理
IF+OR ORがTRUEのときに真の値、FALSEのときに偽の値 いずれかの条件を満たすときに処理

まとめ

AND関数とOR関数を使えば、IF関数の論理式に複数の条件を簡単に組み込めます。ANDは「すべて一致」、ORは「いずれか一致」という条件を表現します。これらの関数を組み合わせることで、複雑な条件分岐も1つの数式で記述できるようになります。例えば在庫管理やアンケート集計など、実務で頻繁に登場するシチュエーションで活用できます。ぜひ自分のデータで試し、IFとAND・ORの連携に慣れてください。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。