Power Queryは一度動いたら終わりではありません。

翌月のCSVでも動くか。列が増えたらどうなるか。半年後に自分が見て理解できるか。

長く使うなら、処理そのものより「壊れにくい作り方」が重要です。

適切なコネクタを選ぶ

Microsoftのベストプラクティスでは、まず適切なデータコネクタを選ぶことが挙げられています。

同じデータに接続できる方法が複数あるなら、専用コネクタが用意されているものを優先します。

不要な行は早めに落とす

大量データでは、後半まで全行を持ち続けるほど処理量が増えます。

必要な期間・店舗・状態だけを早い段階で絞れるなら、先にフィルターした方が後続処理が軽くなります。

Microsoftも「早期にフィルター」を推奨しています。

データ型を明示する

CSVやTXTでは、日付・数値・文字列の型が完全には保証されません。

商品コード 00123 を数値にすると 123 になる、日付に見える文字列が別形式で解釈される、といった事故があります。

「自動判定されたから大丈夫」と考えず、重要列は型を確認します。

高コストな処理は後ろへ

並べ替え、複雑な結合、大規模なグループ化など、重い処理はできるだけ対象行を減らした後へ置きます。

Microsoftの現行ベストプラクティスでも、コストの高い処理は後ろに置くことが示されています。

巨大な1本にしない

取得・前処理・変換・出力まで1クエリへ詰め込むと、後から直しにくくなります。

たとえば、

  • 01_Source
  • 02_Clean
  • 03_Merge
  • 04_Output

のように役割で分けると、どこで値が変わったか追いやすくなります。

名前と説明を残す

「クエリ1」「クエリ2」のまま半年後に開くと、かなりつらくなります。

クエリ名、重要ステップ名、パラメータ名は、処理内容が分かる言葉にします。

処理順を変えるだけで壊れにくくなる例

たとえば10万行の売上CSVを処理するとします。

次の順番だと、最後まで不要な行や列を抱えたまま処理します。

Source
→ 全件を並べ替え
→ マスタ結合
→ 不要列を削除
→ 対象月だけフィルター
→ 型を修正

一方、必要なデータを早めに絞れるなら、

Source
→ 必要列だけ残す
→ 対象月だけフィルター
→ データ型を確認
→ マスタ結合
→ 最後に必要なら並べ替え

の方が、後続ステップへ渡すデータ量を減らせます。

クエリを分けるときの最小構成

|クエリ|役割|
|---|---|
|01_Source|元ファイルを取得するだけ|
|02_Clean|列名・型・不要行を整える|
|03_Merge|マスタとの結合・突合|
|04_Output|最終出力用の列と順序|

不具合が起きたときに 02_Clean までは正しい、03_Merge で件数が増えた、と切り分けられます。

「1本にまとめるか、何本に分けるか」に絶対の正解はありません。処理の意味が変わる境界で分けると、あとから原因を追いやすくなります。

Power Queryを長く使うなら、速度だけでなく、後から原因を追える構造を作ることが大切です。

参考

  • Microsoft Learn: Power Queryを使用する場合のベストプラクティス
    https://learn.microsoft.com/ja-jp/power-query/best-practices
おすすめの記事