第39回 ほえほえ@DX塾
登壇者:ほえほえ@DX塾
日時 :2022年5月7日 20時~
テーマ:実践PowerQuery講座。複数テーブルのドッキングとM言語。
今日の注目点は・・・
本当に2時間で終わるのか!
です。
只今20時06分
それでは始まり始まり。
M言語をガンダムで例えると・・・エルメス!
モビルスーツだなんだではない!
以下 資料のライセンス
簡単に言うと
・どんな利用方法でも構わない。
・ライセンスは明示すること。
・責任は負いません。
結果はこれ。E列に表Bになし、一致などが表示される。
これを実行するコードはこれ
これをGUIで作ったときにどう作成され、どう動いているのかを解説します。
事前準備
クエリオプション 既定のクエリ読込設定を変えよう。
毎回テーブルに読み込まれると開発効率が悪い
開発モデル
パワークエリを使うことで、データ抽出層もNonVBAで対応できる。
VBAで取得するよりいろいろ簡単にできる。
全体図
(非常にシンプルなモデルです)・・・・
クエリは名前とFormulaだけ。
セキュリティ面
クエリのホールディング
選択クエリにWhere ID in を使うが、これが管理者には分かってしまう。
ドキュメント
PowerQueryの良書はほぼない。
Microsoft Docsは読みにくいが、使えるようになりたいなら頑張るしかない。
アクセス記法
レコードから値を抽出するのが[]。これがLookup。VBAで言う辞書。
{}がインデクシング。VBAで言う配列。
テーブルはレコードとインデクシングの組み合わせ。
なので・・
こんな書き方ができる。
資料にも細かい説明あり。
テーブル{[地域="高知県"]} みたいな記法もある!
パワークエリの強みと活かし方
結論:M式は手で修正できるようになってこそ!
VBAとの学習比較
VBAは難しい言語。Excelの知識も必要。
一方でM言語は式ベース。制御構造がないので、短時間で基本知識が身に付く。
VBAは200時間の学習がスタート、M言語は100時間の学習がゴール。ただしM言語の立ち上がり曲線は急なので、最初から手組をするのではなくGUIの生成するコードをみて勉強していくとよい。
ドリルダウン
これを1行毎に確認しながら、記法の確認。
見たいデータは一気にレコードにする記法はこれ。
ドリルダウンでインデクシングとルックアップの話
(これは良い説明だったぁ)
ここから突合シナリオ
Table.nestedJoin(表A,"s_code",表B, "s_code", ”表B", JoinKind.FullOuter)
これが2Tableの結合のキモ! PowerQueryの強みの一つ
組み込み関数化
中級超えればライブラリ化も可能
例えば・・・
ただ、ここまでする必要性は低い。M言語の標準関数で対応可能のなものが多い。
M言語のメリット
データの取得から変形、突合まで一気通貫で記述できる。
突合などの典型的な処理であれば手組のM式をテンプレートとして再利用しやすい。
終了!
ここまでで22時15分! 2時間で終わったと言ってもいい感じでしょう!
セーーーーーフ!
講義に使用したファイル
ちゅんちゅん日誌はこちら
https://www.notion.so/kotorinchunchun/hoehoe-911c533b35a549c2855d26af37af535d
ほえほえ先生のパワク講座はコチラ。DMで!
https://twitter.com/hoehoe1234/status/1522225643181985792?s=20&t=jIAbwCYUSrknKSYE0X6LSA