[PowerQuery]フィルはnullのセルにのみ

2021-07-25

はじめに

Power Queryの「フィル」機能を使って,値の入っていないセルに値を埋めようとしたが,埋まらないことがあった.やりたかったのはこんなこと.

以下の表の「支店」列の全セルに支店名を埋めて

フィル前

こうしたい.

フィル後

結論

  1. フィルはnullのセルに対してのみ値を埋めることができる.
  2. 長さ0の文字列や空白文字が入っていると埋まらない.
  3. nullに置換してフィルで埋める.

元データの準備

Excelで以下の表を作成する.

元データ

csvファイルで保存する.「支店」列に値の入ってない行(3,4,6,8行)が発生する.

支店,商品,売上
A支店,A商品,100
,B商品,101
,C商品,102
B支店,A商品,200
,B商品,201
C支店,A商品,300
,C商品,301

クエリを使ってcsvファイルを読込む.

クエリで読込み

ファイルを指定して,「データの変換」ボタンで読込む.

データの変換

Power Queryエディタに読込んだデータ.値が入っていないフィールドのあるcsvファイルをクエリでインポートすると,nullではなく長さ0の文字列が入る.

読込んだデータ

ここでフィルを行っても,支店名は埋まらない.

nullに置換してフィルを実行

長さ0の文字列が入っているセルを選んで,「値の置換」を選ぶ.

値の置換

「検索する値」には何も入れず,「置換後」にnullを入力する.

nullに置換

「OK」ボタンを押すと,nullが入る.

nullに置換

設定される式は以下の通り.「支店」列にある長さ0の文字列をnullに置換している.

= Table.ReplaceValue(変更された型,"",null,Replacer.ReplaceValue,{"支店"})

ここでフィルを行うと,支店名が埋まる.

フィル実行

支店名が埋まる

「閉じて読み込む」ボタンを押す.

閉じて読み込む

完成.

完成

環境

  • Windows 10 Pro
  • Excel 365