「売上が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で複数条件のすべてを満たす場合の処理
- 条件を決める
例えば「売上が100万円以上かつ地域が東京」の場合に「対象」と表示する場合を考えます。 - 数式を入力するセルを選択
D2セルを選択します。 - IF+ANDの数式を入力
=IF(AND(B2>=100, C2="東京"), "対象", ""))と入力します。ANDで2つの条件をまとめ、その結果をIFの論理式に使います。すべて満たすときは「対象」、そうでなければ空白を返します。 - 数式をコピーする
D2セルの右下フィルハンドルをダブルクリックして、下の行に数式をコピーします。
これで、売上100万円以上かつ東京の行だけに「対象」と表示されます。
IF+ORでいずれかの条件を満たす場合の処理
- 条件を決める
例えば「売上が50万円未満または地域が大阪」の場合に「要注意」と表示する場合を考えます。 - 数式を入力
E2セルに=IF(OR(B2<50, C2="大阪"), "要注意", "")と入力します。ORで2つの条件のいずれかがTRUEなら「要注意」を返します。 - コピーする
同様にフィルハンドルで下にコピーします。
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
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
