Power Queryで更新後の行数が想定より減った場合、元データの行数→フィルター→結合→エラー除外という順に、どのステップで何行落ちたか調べます。見た目の行数だけで正しい抽出と判断しないでください。
元ファイルと取込後の行数を比べる
まず元のCSVやExcelテーブルの明細行数と、Power Query[ソース]ステップの行数を比較します。空白行の除去、重複の削除、型変換時のエラー行の削除などが入っていないか、[適用したステップ]を確認します。フィルターの▼を開いて、意図しない特定値だけ残す設定がないかも調べます。
非表示のフィルター条件を洗い出す
結合したクエリで行が消える場合、結合の種類を確認します。内部結合(Inner)は両側で一致するキーがある行だけを残します。受注100件のうち顧客マスターに存在しないIDが5件なら、内部結合後は95件になり得ます。元の100件を保持したい目的なら左外部結合を検討し、マスター不一致行を抽出して原因を調べます。
内部結合で落ちたキーを抽出する
削除されたキーの一覧を作るには、元表を左、参照表を右にした「左反結合(Left Anti)」を別クエリで実行し、マスターにない受注IDを列挙します。行数だけでなくキーの重複数も確認します。右テーブルの同じキーが複数行あれば、結合結果が減るどころか増えることもあります。
行数が変わる原因をログに残す
ステップごとの行数、元ID件数、欠損ID件数を監査表へ残します。100件→フィルター90件→内部結合85件などの差を説明できなければ、本番の集計に使わない方が安全です。元データが更新される運用では、件数差と欠損キー数にしきい値を設け、想定外の変化を検知します。
