Power Queryで列を追加・変換する方法
仕入先CSVを販売用データへ変えるときは、商品コードの整形、金額計算、確認区分の追加などが必要になります。Power Queryなら、その操作を手順として保存し、次回のCSVにも同じ変換を適用できます。
この記事では、既存列を残したまま新しい列を作る方法と、元の列を直接変換する方法を使い分けます。
変換結果を確認できるまでは、「列の追加」で新しい列を作る方が安全です。元データと比較して問題がなければ、不要な列を最後に削除します。
列の追加と変換の違い
| 操作 | 向いている作業 | 確認しやすさ |
|---|---|---|
| 列の追加 | 金額計算、区分判定、整形後コード | 元の列と横に並べて比較できる |
| 変換 | 空白除去、型変更、値の置換 | 元の値が変わるため事前確認が必要 |
1.数量×単価で金額列を作る
- Power Queryエディターで「列の追加」タブを開きます。
- 「カスタム列」を選び、新しい列名を「金額」にします。
- 数式欄へ
[数量] * [単価]と入力します。 - 追加後の「金額」列を整数または必要な小数型へ変更します。
カスタム列では、既存列を使った計算式を作れます。操作画面の詳細は、Microsoftのカスタム列の解説も参考になります。
数量や単価に文字、空欄、変換エラーがあると、金額列にも影響します。すぐに0へ置き換えず、元データの修正が必要かを確認してください。
2.条件列で「要確認」を付ける
高額商品などを目視確認したい場合は、「列の追加」→「条件列」で判定を作れます。たとえば学習用として、単価が3,000以上なら「要確認」、それ以外は「通常」と設定します。
カスタム列で書く場合の例は次のとおりです。
if [単価] >= 3000 then "要確認" else "通常"
3,000という値は説明用です。実務では利益率、販売チャネル、担当者の確認基準に合わせて決めます。
3.商品コードを整形する
商品コードの前後に不要な空白がある場合は、列を選び、「変換」→「書式」→「トリミング」を使います。カスタム列なら次のように書けます。
Text.Trim([商品コード])
6桁固定のコードへゼロ埋めする例は次のとおりです。
Text.PadStart(Text.From([商品コード]), 6, "0")
「101」が本当に「000101」なのかは、6桁固定という仕様が分かっている場合だけ判断できます。コード体系が不明なまま桁を補わないでください。
4.値の置換を使う
販売チャネル名の表記をそろえる場合は、対象列を選択し、「変換」→「値の置換」を使います。たとえば「Amazon.co.jp」と「Amazon」を一つの表記に統一できます。
置換は列全体へ適用されるため、似た文字列まで変わらないかプレビューで確認します。Microsoftの値とエラーの置換手順
5.エラーを消す前に絞り込む
- 列見出しのフィルターを開き、「エラー」を確認します。
- 元CSVの該当行と見比べ、型違い・空欄・記号混入などの原因を調べます。
- 修正ルールが決まったものだけ置換または変換します。
- 判断できない値は別の確認用クエリへ残します。
エラーを一律に0へ置き換えると、欠損と本当の0を区別できなくなります。「エラー件数が0件」だけでなく、置換した件数も確認できる流れが安全です。
更新前後の確認チェック
- 追加した金額が数量×単価と一致する
- 条件列の境界値が意図どおりに分類される
- 商品コードの桁数と先頭ゼロが保たれている
- 置換対象外の文字列が変わっていない
- 変換エラーと置換件数を確認した
- 行数・数量・金額の合計が元データと合う
まとめ
Power Queryで列を加工するときは、最初に「列の追加」で元の値と比較し、確認後に不要列を整理します。金額計算、条件判定、コード整形を別々のステップにすると、後から原因を追いやすくなります。