[PowerQuery]フィルはnullのセルにのみ
2021-07-25
はじめに
Power Queryの「フィル」機能を使って,値の入っていないセルに値を埋めようとしたが,埋まらないことがあった.やりたかったのはこんなこと.
以下の表の「支店」列の全セルに支店名を埋めて
こうしたい.
結論
- フィルはnullのセルに対してのみ値を埋めることができる.
- 長さ0の文字列や空白文字が入っていると埋まらない.
- 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
を入力する.
「OK」ボタンを押すと,null
が入る.
設定される式は以下の通り.「支店」列にある長さ0の文字列をnullに置換している.
= Table.ReplaceValue(変更された型,"",null,Replacer.ReplaceValue,{"支店"})
ここでフィルを行うと,支店名が埋まる.
「閉じて読み込む」ボタンを押す.
完成.
環境
- Windows 10 Pro
- Excel 365