Power Queryのnull、空文字""、数値の0は同じ欠損値ではありません。集計結果を合わせるために一括で0へ置換すると、未入力が「売上ゼロ」などの意味に変わってしまいます。まず列ごとの業務上の意味を決め、変換前の件数を保全してから処理します。
空文字とnullと数値0を区別
入荷数列を例にすると、nullは値がない状態、""は空の文字列、0は数値として入荷がゼロと記録された状態です。CSVから取り込んだ列では、空白に見えても半角スペース、全角スペース、タブが入る場合があります。Power Queryで列型のアイコンを確認し、数値列なのかテキスト列なのかを確定します。
空欄に置換すべき値を先に決める
「未入力を0にする」判断は列単位で行います。例えば受注数量は「未入力=未確定」ならnullを保ち、帳票の合算だけで0として扱う補助列を作れます。一方、配送区分などの分類列は0へ変換すると分類が壊れます。空白文字を取り除く場合は、先にテキスト列のトリミングを実施し、値が""になった件数を記録します。
集計列ごとに欠損処理を変える
数値列の集計用補助列なら[列の追加]→[カスタム列]で、入力列がすでに数値/null型の条件で次のようにできます。
if [数量] = null then 0 else [数量]
ただしこの処理は「欠損も数値0として集計する」という業務判断を反映した式です。文字列の"0"、空白付きの" 0 "を同じ式に混ぜる前に型変換とエラー行の分離が必要です。
変換前後の件数と合計を確認
変更前に「null件数」「空文字件数」「数値0件数」「数値合計」を控え、変更後にゼロへ振り替わった件数が意図どおりか確認します。元の数量列を残して集計用数量列だけ追加すれば、後で入力不足と実際のゼロを判別できます。変換によってエラー値をnullに置き換えた場合も、元のエラー件数を別に記録してください。
