PQパワークエリの勉強(ひとりBPR)パラメータ

20231028PQパワークエリの勉強(ひとりBPR)

 

パソコン素人です。
パワークエリ素人です。
自分用のメモです。備忘録。
読んでも分からないと思います。(汗)
間違いもあると思います。
(なお、ホームページの引用等不都合がありましたら、早急に削除いたします。)
(なお、M言語は大文字小文字を区別するので、注意して下さい。下記はメモなので、間違っているかも。)

 

<前置き>
2、3年前にエクセルのパワークエリなどを本で勉強した。
結構、ピボット解除など、エクセル内部では日常的に使ったりしているが、最近、もっと使い道を広げないといけない気がしてきた。

というのも、
「オープンデータを取り込んで、ダッシュボード化したりする」とか、
「データをマップに自動的に(?)落とし込み表示する」とかが、
ごく一部(?)で流行っているようだ。

でも、忙しい人らに興味本位で聞くわけにもいかないので、個人的に何かできないかやってみる。
でも、今現在何もできていないので、その備忘録。
(「ひとりBPR」と書いたように、他にも少し何か出来たら書いていくつもりです。)

ネットで、
パワークエリで、比較的楽してwebデータを取ってくる質問と回答を見つけた。
(エクセルの学校様「毎月アドレスが変わるwebページからデータを取得したい」(感謝))

すこしやってみたが、最後の方にM言語だが、クエリを2つ利用するとか、パラメータの設定とか、無名関数とか、eachの繰り返し処理が多くあり、この記事だけでは自分には理解できないことが分かった。
(基礎がない。)
<以上前置き>


で、今回は、office田中様の記事を見て基礎を少し勉強しました。(感謝)の続きです。
今回は「セルの値でクエリを変化させる(ファイル名やパス)」の勉強。
この中の前半で、ワークシートに書かれたフルパスを利用して、パワークエリで、CSVデータを読み込むことを紹介しています。

この記事の元となった「セルの値でクエリを変化させる(パラメータクエリの基本)」で、二つのやり方を紹介していてその応用がこの記事です。
<1つ目は、2つのクエリに分けて作成するやり方>①
<2つ目は、クエリを1つでパラメータをM言語内で取得するやり方>②

 

自分がやってみたこと。(①もできた)
今回の記事では①はできなかったと書いてありますが、できました。
②もできました。

その原因は、この記事は、元の記事とのやり方の違い(手順の間違い)があったのでないかなと思っています。
(いや、間違いでなく、意図的にやり方を変えているのかな・・・)
①では、元の記事では、接続クエリにした方のテーブルの処理に、「ドリルダウン」が必要です。(多分)
ドリルダウンは、リストとして利用するための構造化(transform columntypes)
これでやったら、すんなりできました。

②では、元の記事では、ファイル名のセルに名前を付けていました。(①ではテーブルに名前を付けた)
今回の記事の②の、挿入するコードを見ると、
取得したファイル名 = Excel.CurrentWorkbok()・・・・・・・[Content]{0}[ファイル名],
になっています。
セルに名前を付けるなら、[Content]{0}[Column1],
でないかなと思いました。(動きました。)

(上記のことが間違いなのかどうかすら分かっていませんが、office田中様の記事には感謝しております。)

 

******************************************************
記事の後半「「フォルダから」のフォルダを変更する」を勉強する」

記事の後半は、フォルダー内にある各データをまとめて処理する場合に、フォルダーのパスを可変にする方法を紹介してくれています。

この場合、パワークエリは、まずフォルダーにアクセスして、
そこで、1個のデータを取得します。(サンプル)
それに合わせて、同一フォルダ内のデータ(CSV)を結合していきます。

(数年前に勉強したことをすっかり忘れていましたが、)上記のようなファイル結合をすると、「ヘルパークエリ」というのが自動で出てきて、
中に「サンプルクエリ」ができます。

そのサンプルクエリは、(多分)3個のファイル+サンプルファイルの本体クエリでできます。
①サンプルファイル(シートのようなアイコン)
②パラメータ(左右2列のようなアイコン)
③ファイルの変換(fxのアイコン)
④サンプルファイルの本体クエリ(通常のテーブルのアイコン)
で、①の読む込み先のソースも直すことが記事に記載されています。
(直さなくてもいいとも書いてありますが、絶対直した方がいいので、勉強になります。)


いろいろ感謝いたします。