「スプレッドシートで複数の条件を同時にチェックしたい」「売上と出席率の両方が基準以上か判定したい」。こんな場面、仕事でよくありますよね。
IF関数だけだと条件は1つしか設定できません。条件が増えるたびにネストすると、数式が読みにくくなってしまいます。
そんなときに使うのが、スプレッドシートのAND関数です。この記事では構文と基本の使い方から、IF関数との組み合わせまで丁寧に解説します。OR関数との違いやエラーの対処法もまとめています。
スプレッドシートのAND関数とは?
AND関数(読み方: アンド関数)は、指定した条件がすべてTRUEかどうかを判定する関数です。「AND」は英語の「〜かつ〜」に由来しています。日本語では「論理積」とも呼ばれます。
たとえば「テストが80点以上 かつ 出席率が90%以上」のような場面です。2つ以上の条件をすべて満たしているかチェックしたいときに活躍します。
AND関数でできることをまとめると、次のとおりです。
- 複数の条件をすべて満たしているか判定する
- IF関数と組み合わせて「かつ」の条件分岐を作る
- 最大255個の条件を同時にチェックする
AND関数単体はTRUE / FALSEを返すだけです。実務ではIF関数と組み合わせて使うことがほとんどですよ。
NOTE
AND関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も完全なので、ファイルのやり取りでも安心です。
スプレッドシートのAND関数の書き方(構文と引数)
基本構文
=AND(論理式1, [論理式2], ...)
カッコの中に、判定したい条件を1つ以上指定します。条件はカンマで区切って追加できます。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 論理式1 | 必須 | 判定したい条件(例: A2>=80) |
| 論理式2以降 | 任意 | 追加の条件。最大255個まで指定できる |
引数は1つだけでも動きますが、複数条件を判定してこそ真価を発揮します。
TIP
論理式にはセル参照と比較演算子を組み合わせます。テキストを比較するときはダブルクォーテーションで囲んでください。例:
A1="完了"
TRUE/FALSEの判定ルール
AND関数の結果は、すべての条件がTRUEのときだけTRUEです。1つでもFALSEがあれば結果はFALSEになります。
| 条件1 | 条件2 | AND関数の結果 |
|---|---|---|
| TRUE | TRUE | TRUE |
| TRUE | FALSE | FALSE |
| FALSE | TRUE | FALSE |
| FALSE | FALSE | FALSE |
「全部OK → TRUE、1つでもNG → FALSE」と覚えておけば大丈夫ですよ。
AND関数の基本的な使い方
ここからは実際の数式で基本的な使い方を確認していきましょう。
2つの条件を同時にチェックする
A列にテストの点数、B列にレポートの点数が入っているとします。両方とも70点以上かどうかを判定してみましょう。
=AND(A2>=70, B2>=70)
- A2>=70: テストが70点以上か
- B2>=70: レポートが70点以上か
A2が85、B2が75なら結果はTRUEです。A2が65だとB2が何であってもFALSEになります。
3つ以上の条件にも対応する
AND関数は条件をカンマで追加するだけです。3科目すべてが70点以上かを判定してみましょう。
=AND(A2>=70, B2>=70, C2>=70)
条件が増えても書き方は同じです。ただし条件が5つを超えると数式が読みにくくなります。そのときは別のセルに条件結果を出してからANDで判定する方法も検討してみてください。
数値と文字列を組み合わせた条件
数値の比較と文字列の比較を混ぜることもできます。「金額が10万円以下 かつ ステータスが”承認済”」を判定する例です。
=AND(B2<=100000, C2="承認済")
文字列の条件はダブルクォーテーションで囲みます。大文字・小文字は区別されません。
IF関数×AND関数の実践テクニック
AND関数の実務での本領発揮は、IF関数との組み合わせです。AND単体のTRUE/FALSEではなく、条件に応じた文字列や数値を返せるようになります。
IF+ANDで「すべて満たす」条件分岐
IF関数の第1引数にAND関数を入れるのが基本形です。
=IF(AND(条件1, 条件2), TRUE値, FALSE値)
すべての条件を満たしたときだけ「TRUE値」を返します。1つでも満たさなければ「FALSE値」になります。
実務パターン1: 複数基準で合否判定する
「筆記80点以上 かつ 面接70点以上」で合格とする例です。B列に筆記、C列に面接の点数が入っています。
=IF(AND(B2>=80, C2>=70), "合格", "不合格")
筆記85点・面接75点なら「合格」です。筆記90点でも面接65点なら「不合格」になります。複数基準のチェックは手作業だと見落としやすいので、数式にしておくと安心ですよね。
実務パターン2: 在庫・発注の自動判定
「在庫が10個以下 かつ カテゴリが”消耗品”」なら「要発注」と表示する例です。
=IF(AND(B2<=10, C2="消耗品"), "要発注", "在庫OK")
在庫管理シートに入力しておけば、条件を満たした行だけ「要発注」と表示されます。目視チェックの手間が大幅に減りますよ。
実務パターン3: 3条件以上のAND判定
「売上目標達成 かつ 新規獲得3件以上 かつ クレーム0件」で「優秀」と判定する例です。
=IF(AND(B2>=C2, D2>=3, E2=0), "優秀", "通常")
条件が3つに増えても、ANDの中にカンマで追加するだけです。評価基準を数式にしておくと、担当者ごとの判定を一括で処理できます。
TIP
条件分岐を3段階以上に分けたい場合は、IFS関数も検討してみてください。AND関数と組み合わせれば「すべて満たす」条件を複数パターンで判定できます。
よくあるエラーと対処法
AND関数で「結果がおかしい」「エラーが出る」というときの原因と対処法をまとめます。
エラー一覧と対処法
| エラー・症状 | 原因 | 対処法 |
|---|---|---|
| #VALUE! | 引数に文字列を直接指定した(例: =AND("はい", TRUE)) | 比較演算子を使う(例: =AND(A1="はい")) |
| 常にFALSEになる | 空白セルがFALSEとして扱われている | IF関数で空白チェックを先に行う |
| 常にTRUEになる | 条件式の書き方が間違っている(例: =AND(A1="東京", "大阪")) | 各条件を独立した論理式にする(例: =AND(A1="東京", B1="大阪")) |
| 予想と逆の結果 | 比較演算子の間違い(>= と > の取り違え) | 境界値を含むかどうか確認する |
| #ERROR! | 括弧の閉じ忘れ・カンマの過不足 | 数式バーで括弧の対応を確認する |
| 数値が0のときFALSE | 0はFALSEとして扱われる仕様 | 0を有効値にしたい場合は A1>=0 のように比較式にする |
空白セルに注意する
AND関数に空白セルが含まれると、その引数はFALSEとして扱われます。データ未入力の行で予想外のFALSEが出る場合は、空白セルが原因かもしれません。
=IF(A2="", "未入力", AND(A2>=70, B2>=70))
事前に空白チェックを入れておくと、意図しない結果を防げますよ。
範囲指定の落とし穴
=AND(A1:A10>0) のように範囲に比較演算子をつけた書き方は要注意です。Googleスプレッドシートでは配列として処理されますが、意図した動作にならないことがあります。
1セルずつ条件を書くほうが確実です。
=AND(A1>0, A2>0, A3>0)
AND関数とOR関数の違い・使い分け
比較表で違いを確認
スプレッドシートの論理関数には、AND以外にもよく使う関数があります。違いを表で整理しましょう。
| 関数 | 判定ルール | 使いどころ |
|---|---|---|
| AND | すべてTRUE → TRUE | 「かつ」の条件判定 |
| OR | 1つ以上TRUE → TRUE | 「または」の条件判定 |
| NOT | TRUE⇔FALSEを反転 | 条件の否定 |
ANDは「全部当てはまる?」、OR関数(読み方: オア関数)は「どれか1つでも当てはまる?」と考えるとわかりやすいです。
どの関数を使うか判断する
迷ったときは次の基準で選んでみてください。
- すべての条件を満たす必要がある → AND関数
- どれか1つ満たせばOK → OR関数
- 条件をひっくり返したい → NOT関数(TRUE/FALSEを反転する関数)
実務で使用頻度が高いのはAND関数とOR関数です。まずはこの2つを押さえておけば十分ですよ。
AND+ORを組み合わせた高度な条件分岐
AND関数とOR関数を組み合わせると、より複雑な条件を表現できます。「部署が”営業”または”企画” かつ 売上が100万円以上」を判定する例です。
=IF(AND(OR(A2="営業", A2="企画"), B2>=1000000), "対象", "対象外")
ORで「営業 または 企画」を判定し、ANDで「売上100万円以上」と組み合わせています。括弧の入れ子が深くなるので、セル参照を活用して数式を分割するのもおすすめです。
まとめ
AND関数は、複数の条件をすべて満たしているかを判定する論理関数です。
- すべてTRUEならTRUE、1つでもFALSEならFALSE
- IF関数と組み合わせて「かつ」の条件分岐を作るのが定番
- 空白セルはFALSEとして扱われるので注意
- 「または」の判定にはOR関数を使う
まずはIF関数×AND関数の組み合わせから試してみてください。合否判定や在庫チェックなど、実務ですぐに使える場面がたくさんありますよ。
複数条件でデータを数えたい場合は、COUNTIFS関数も合わせてチェックしてみてください。
