Sheet基本
IF × COUNTIF 組み合わせガイド
IF × COUNTIF 組み合わせガイド
重複チェックと存在確認の定番パターン
IFとCOUNTIFを組み合わせると「このコードはリストに存在するか」「この値は重複しているか」を1つの式で判定できる。データ検証・入力チェックの定番テクニック。
GASとの関係:includes() や indexOf() との組み合わせと同じ
GASで if(list.includes(value)){ ... } と書く「リストに含まれるか」の判定は、IF+COUNTIF と同じロジックです。スプレッドシートで動作確認してからGASに移植できます。
目次
IF × COUNTIF の基本パターン
=IF(COUNTIF(範囲, 値) > 0, "存在する場合", "存在しない場合")
// A2の値が「マスターリスト」シートのA列に存在するか確認
=IF(COUNTIF(マスター!A:A, A2) > 0, "登録済み", "未登録")
// シンプルな書き方(>0は省略可能)
=IF(COUNTIF(マスター!A:A, A2), "登録済み", "未登録")
COUNTIF が 0 以外(1以上)のとき TRUE として評価されるため、>0 は省略できます。
重複チェックのパターン
パターン1:入力済みの値が重複しているか
// A2:A100の各行で、同じ値が他にも存在するか確認
=IF(COUNTIF($A$2:$A$100, A2) > 1, "重複あり", "")
// 2件以上あったら警告(自分自身も1件なので >1)
=ARRAYFORMULA(IF(COUNTIF(A2:A100, A2:A100) > 1, "⚠重複", ""))
パターン2:リストへの存在確認
// 受注リストの商品コードが商品マスターに存在するか確認
=IF(COUNTIF(商品マスター!$A:$A, B2), "OK", "コード不明")
// 複数リストのどこかに存在するか
=IF(COUNTIF(リスト1!$A:$A, A2) + COUNTIF(リスト2!$A:$A, A2) > 0, "存在", "なし")
パターン3:条件付き書式と組み合わせて視覚化
// 条件付き書式の「カスタム数式」に使う(A列が重複していたら赤)
=COUNTIF($A:$A, A1) > 1
COUNTIF vs MATCH vs VLOOKUP の存在確認
| 方法 | 特徴 |
|---|---|
| IF(COUNTIF(…)) | シンプル・件数も分かる・OR条件が書きやすい |
| IFERROR(VLOOKUP(…)) | 値の取り出しと同時に存在確認できる |
| IFERROR(MATCH(…)) | 位置も取得できる。VLOOKUP不要ならこちら |
実務での応用:入力チェックシート
// B列(ステータス)に「完了」「進行中」「未着手」以外が入ったら警告
=IF(COUNTIF({"完了","進行中","未着手"}, B2)=0, "⚠無効な値", "")
// D列(担当者名)が担当者マスターにあるか確認
=IF(COUNTIF(担当者マスター!$A:$A, D2), "", "⚠担当者不明")
この知識をGASで活かす
GASでデータ検証処理を書くとき、IF+COUNTIFで設計した「存在確認ロジック」をそのままincludes()やfind()に変換できます。スプレッドシートで動作確認してからGASで自動バリデーションに発展させる手順が実用的です。
Free Newsletter
AIを業務に活かしたいなら
SMR-Labメルマガ
毎週火曜10時、コピペで使えるChatGPTプロンプト・
GASテンプレートをお届け。登録は1分・完全無料。
