セル間検証ルール
メニューを表示するにはスワイプしてください
クロスセルルールとは?
これまで作成してきた検証ルールは、すべて単一セルの値を固定条件(数値範囲、リスト、テキストパターンなど)と照合するものでした。クロスセル検証はさらに一歩進み、同じ行内の別のセルと入力値を比較します。
Excelにおけるクロスセル参照の扱い
行2のセルにカスタム検証式を設定する際、同じ行内の他のセルを自由に参照できます。Excelは、通常の数式と同様に、列全体にルールを適用する際に参照を自動調整します。
例1: 終了日は開始日より後でなければならない
最も一般的なクロスセルルールです。終了日が開始日より前の場合は論理的なエラーですが、組み込みルールでは検出できません。カスタム数式で対応可能です。
たとえば、L列(End Date)の検証でK列(Start Date)を参照する場合:
=L2>K2
Excelは自動的にL3>K3、L4>K4など、下の各セルに対して評価します。End DateがStart Dateより前または同じ場合、入力は拒否されます。
例2: 割引には最小数量が必要
割引は、注文数量が条件を満たす場合のみ適用されるべきです。H列がQuantity、J列が**Discount %**の場合:
=IF(J2>0, H2>=3, TRUE)
この式は「割引が入力されている場合、数量は3以上でなければならない。そうでなければ常に許可する」となります。
最後のTRUEは重要です。割引が0の場合、数量チェックなしで通過できるようにします。
例3: 単価はカテゴリに応じて制限
Tech製品は500未満で販売してはいけません。Office製品にはこの制限はありません。D列がCategory、I列がUnit Priceの場合:
=IF(D2="Tech", I2>=500, TRUE)
この式は「カテゴリがTechの場合は最低価格を強制し、それ以外はどんな価格でも許可する」となります。
クロスセルルールの安全な構築
注意すべきポイント:
- 正しい列の固定 — 行参照は相対参照(
H2、$H$2ではなく)を使用し、列内で数式が正しく調整されるようにする; - 空白セルへの対応 — 参照セルが空の場合に備え、数式を
IFやIFERRORでラップし、予期しない拒否を防ぐ; - 境界値でのテスト — 同じ日付、数量ゼロ、空欄フィールドなど、クロスセルルールが最も壊れやすいケースでテストする。
課題
-
End Date列にクロスセル検証を適用:
- 数式:
=L2>K2 - エラースタイル: Stop
- エラーメッセージ: "End Date must be after Start Date"
- 数式:
-
**Discount %**列にクロスセル検証を適用:
- 数式:
=IF(J2>0, H2>=3, TRUE) - エラースタイル: Warning
- エラーメッセージ: "Discount should only be applied for quantities of 3 or more"
- 数式:
-
Unit Price列にクロスセル検証を適用:
- 数式:
=IF(D2="Tech", I2>=500, TRUE) - エラースタイル: Stop
- エラーメッセージ: "Tech products must be priced at 500 or above"
- 数式:
-
Start Date列にクロスセル検証を適用:
- 数式:
=K2>=B2 - エラースタイル: Stop
- エラーメッセージ: "Start Date cannot be before Order Date"
- 数式:
-
各列で意図的に矛盾する値を入力し、4つのルールがすべて正しく動作することを確認する;
-
参照列に空白セルを入力してテストし、予期しない挙動がないか確認し、対応方法を検討する。
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください