エクセル2016でパワークエリやってみる備忘録9(別ブックを一括取り込み(結合))

こちらは素人です。

 

エクセル2016でパワークエリ、ピボットテーブルを使います。
office2016スタンダードなので、パワーピボットタブ出ません。
(「開発」タブのCOMアドインにパワーピボットがない)

 

<今回したこと>

詳しい手順は省略しますが、別ブックのデータの取り込みを試しました。
エクセル2016だと、
新しいクエリ→ファイルから→フォルダから
(一括の場合は、フォルダパスの後、結合)
(※ブック単体の取り込みは別)

 

ここまでは簡単でしたが・・・次回開いた時にはまりました。

 


パワークエリで、別ブックを一括取り込み(結合)での注意点:


(1)「サンプルクエリ」っていうのができている。
(多分、ヘルパークエリとも言う)
使おうと思って開いたら、「サンプルクエリ」っていうのができていました。
これは、結合をしたらできるものみたいです。
自分の作成したクエリは、「その他のクエリ」として追いやられていました。
(「サンプルクエリ」は触りません。)


(2)元ブックのデータ数を増やし、クエリで更新したが、結果が反映されない。
クエリのステップを確認したところ、
「フィルターされた列」で新しい項目は、表示しない項目に勝手に処理されていました。


M言語(数式)を見ると、
= Table.SelectRows(変更された型, each ([Column1] = "山田" or [Column1] = "川田" or [Column1] = "山下"))


みたいに残った項目(前回表示させた項目)のみ記録されています。
(これだと新しいデータ項目(行)はフィルターされてしまう)


(手動で、ここで表示させればいいのですが、毎回は面倒・・・)


で、下記のように書き換えました。
Table.SelectRows(変更された型, each ([Column1] <> null))

 

ただし、これでも問題があって、読み込み元エクセルデータには、読み込みたい表の上に、

職員氏名
令和〇年度


のような欄外の記載があり、上記ステップでは削除できません。

 

で、ステップを分割する(空白削除と不要な欄外の文字削除)ため、
ステップ・・・空白削除
ステップ・・・型の変更(数字列などを変更)
ステップ・・・不要な欄外の文字削除
にしました。(よちよち歩きです)

 

もっと他の方法としてクエリを二つにするとか、テーブルで読み込むとかいろいろできそうですが、検証しないと分かりません。


その他:(できたこと)
別ブック取り込みの工夫(1個の場合でも毎回ファイル名が異なる場合)
<日付や時間がファイル名に記載されている場合、ファイル名を直すのが面倒だからの工夫>

「一括で別ブックを取り込む」場合、名前の差異で、取捨選択できる。
(参考書:Excelパワーピボット7つのステップ・・・P283~)
ということは、一つの取り込みしかないとしても、
複数取り込みを想定してクエリを作成しておけば面倒がないのではないか?
(フォルダに1個のみ。ファイル名に日付がある場合など、日付を無視)

例 「data20」で始まるデータを取り込むように設定
こうすれば「data202108」でも「data202107」でも読んでくれる。
(data19は読み込むと0行の読み込みになります。)