Excel活用

列タイトルが変わるデータをパワークエリで取得・更新する方法(3)

さて、今回で3回目のこのシリーズ。いよいよ最終章です。

none
none
もっと簡単な方法はにゃいの!?

酒井たかま
酒井たかま
・・・あります!
今回はその方法を見ていきましょう。押さえておくポイントはたったひとつです。

1行目をヘッダーとして使用しない!

none
none
・・これだけ?

酒井たかま
酒井たかま
これだけです。

サンプルクエリを使わずに列タイトルの変更に対応する方法

データの取得

データ取得の時にこんな画面が出るので、ここでは「データ型を検出しない」を選んでデータの変換を押すことです。これは、1行目を列タイトルにせずに取り込むための措置です。

パワークエリ上での編集

ここで「Column〇」とある列タイトルを変更します。

次に不要となった旧タイトル行を削除します。

これは必要に応じてですが、不要な列があれば削除します。

データの型を文字列から数値に変更して・・・。

これで完成です。ここまで詳細エディターを直接編集しなくてもできました。

ちゃんと動くかも確認しておきましょう。

うん、大丈夫そう。このように、数式で参照しても問題なく動きます。

none
none
ん?下の数字おかしくない?

酒井たかま
酒井たかま
ぎくっ・・・!
売上の数字はちゃんと1908.csvに置き換わってるのでご容赦を・・・!
(数式の参照ミスったなorz)

詳細エディターを確認

念のため詳細エディターを確認しておきます。

let
    fPath = Excel.CurrentWorkbook(){[Name="テーブル1"]}[Content]{0}[列1],
   
    ソース = Csv.Document(File.Contents( fPath ),[Delimiter=",", Columns=5,
            Encoding=65001, QuoteStyle=QuoteStyle.None]),
    #"名前が変更された列 " = Table.RenameColumns(ソース,{{"Column1", "科目名"}, {"Column2", "当月発生"}, {"Column3", "当月累計"}, {"Column4", "前期発生"}, {"Column5", "前期累計"}}),
    削除された最初の行 = Table.Skip(#"名前が変更された列 ",1),
    削除された列 = Table.RemoveColumns(削除された最初の行,{"前期発生"}),
    変更された型 = Table.TransformColumnTypes(削除された列,{{"当月発生", type number}, {"当月累計", type number}, {"前期累計", type number}})
in
    変更された型

相対パスに変えるところは直接編集しないといけないにせよ、他に編集する必要が無いので、以前の記事よりは簡単にできると思います。

最後に

今回のポイントのおさらいです。

1行目をヘッダーとして使用しない!

そう、ほんとにこれだけなのです。

これだけで今回の列タイトルが変わる問題は回避できたんですね。

前回前々回の記事を全否定するような今回の記事はいかがだったでしょうか。

大事なことは、ゴールにたどり着く手段はひとつじゃない!これがこのシリーズ最大の教訓かもしれません。

最後まで読んでいただき、ありがとうございました。