口座の種類ごとに、登録が足りない必須項目を見つけるには?

口座の種類と必須項目から必要な組み合わせを作って保存し、実績にない口座・項目の組を探します。実績がゼロの口座も対象です。

説明図:口座一覧Accounts、種類ごとの必須項目Requirements、登録済み項目Actual
架空のデータを使った説明図です。実際の画面キャプチャではありません。

口座ごとに必須項目がそろっているかを調べるには、まず「登録されているはずの項目」の一覧を作ります。CoreならX・Y、PlusならZが必要というルールを口座一覧に結合し、実際の登録内容と照合する方法です。

実績だけでは必要な行を決められない

この例では、架空のAccountsに載っている口座をすべて確認します。Actualに登録が1件もないA3も対象です。Requirementsには、Typeごとに必要なItemだけを記載します。この2表から「どの口座にどの項目が必要か」を示す一覧Expectedを作り、Actualと比較します。

表中の∅は空欄を示す説明用の記号で、入力する文字ではありません。

Accounts

Account Type
A1 Core
A2 Core
A3 Plus

Requirements

Type Item
Core X
Core Y
Plus Z

Actual

RecordedAccount RecordedItem
A1 X
A2 X
A2 Y

必要な組を保存して実績と照合する

  1. AccountsとRequirementsだけを読み込みます。Type同士を「一致する行のみ」で結び、Requirements側のTypeだけ非表示にします。Account・Type・Itemの3列を残します。
  2. 「結果のプレビュー」でA1–X、A1–Y、A2–X、A2–Y、A3–Zの5行を確認します。次にActualと照合する基準表として使うため、「結果を保存」でExpectedというExcelファイルに保存します。
  3. 新しい作業で保存したExpectedと元のActualを読み込みます。Expectedを画面左に置き、Account→RecordedAccount、Item→RecordedItemを接続します。「左のシートの全行を保持」を選び、2列とも一致する条件にします。
  4. 「結果を整理」で「絞り込み」を追加し、ActualのRecordedItemを選びます。条件を「空の値」にして「適用」を押します。元データの条件ではなく、結合後にできた空欄を調べます。
  5. Account・Type・Itemと実績側の2列を表示したまま、未一致の根拠を確認します。A1–YとA3–Zの2行を保存します。

必要な組を保存して実績と照合する 説明図

実績がないA3も確認する

A1にはXがあり、Yがありません。A3は実績がゼロでもPlusの必須項目Zが不足として出ます。A2にはXとYの両方があるため除かれます。右側の空欄は必須項目名がないのではなく、その組に対応する実績が見つからないことを示します。

Account Type Item RecordedAccount RecordedItem
A1 Core Y ∅ ∅
A3 Plus Z ∅ ∅

実績がないA3も確認する 説明図

基準の不足と実績の不足を分ける

Accountsには同じAccountを重複させず、Typeも入力します。RequirementsはTypeとItemの組み合わせを重複させず、Itemを空欄にしないでください。AccountsにあるTypeがRequirementsにもそろっていないと、必要な項目の一覧を作れません。

この手順で探すのは不足項目だけで、Actualの余分な登録は確認できません。保存と読み込み直しは手動で行い、口座や必須項目が変わったらExpectedの作成からやり直します。

自分のファイルで始めましょう

JOIN SHEETを使ってみる ↗

Excel・CSVの作業はPCでご利用ください。
新しいタブで開くため、作業中のデータは置き換わりません。

サンプルの検証日:

出典

How to validate completeness of one list against another (Reddit r/excel)

原文は口座の種類に応じたcompositeの要件と実際の一覧を照合し、不足した組を表示する方法を尋ねています。 上の表と手順は、この質問を参考に別途作成した架空の例です。質問者の実データや製品の利用体験ではありません。