X



【Excel】Power Queryを語るスレ【Power BI】
0001名無しさん@そうだ選挙にいこう垢版2019/10/20(日) 11:59:28.17
Excel 2016から標準装備、Excel 2010以降も追加可能なPower Query。
使ってみると驚く部分は多々あれど、普及したとは言い難い。

手探りで分かったこと、英語の資料から判明したこと等、いろいろ語って下さい。
Power Pivot、Power View、Power BIについても歓迎。

公式 「概要と学習」 (日本語)
https://support.office.com/ja-jp/article/Power-Query-%E6%A6%82%E8%A6%81%E3%81%A8%E5%AD%A6%E7%BF%92-ed614c81-4b00-4291-bd3a-55d80767f81d

Excel 2010、2013用アドイン (日本語)
https://www.microsoft.com/ja-jp/download/details.aspx?id=39379

公式 M言語レファレンス (英語)
https://docs.microsoft.com/en-us/powerquery-m/index

「Power Query メモ」 (外部サイト:M言語レファレンスの日本語化等)
https://sites.google.com/site/powerquerymemo/
0306名無しさん@そうだ選挙にいこう垢版2023/06/03(土) 17:51:17.37
>>305
M言語?はちょくちょく触らせてもらっています
それ自体は簡単そうなので気になりますね

話が変わりますがテーブルに読み込んでいるクエリだけ(?)データモデルに追加するを止めるようにしたらあれだけ出ていたメモリ不足エラーやその他のエラーがぱったり消えました
やはりバグなんですね
0307名無しさん@そうだ選挙にいこう垢版2023/06/03(土) 18:25:50.26
>>306
= Table.ReplaceValue(前のステップ, each [キー列],each if [キー列] = null then [右のキー列] else [キー列],Replacer.ReplaceValue,{"キー列"})
0308名無しさん@そうだ選挙にいこう垢版2023/06/03(土) 18:32:00.29
あれ?これで十分なのかな?
= Table.ReplaceValue(前のステップ, null, [右のキー列],Replacer.ReplaceValue,{"キー列"})
試してみて
0309名無しさん@そうだ選挙にいこう垢版2023/06/03(土) 18:32:02.67
一つ聞きたいのですが
パワークエリで横に長いテーブルを読み込み編集します
そのシートの下でも上でもいいので集計行を追加する事は可能でしょうか?


次にそのクエリを参照したクエリで行列入れ替えを行い、見出し列を行に並び替えます
見出し行の隣に参照元の集計行を行列入れ替えで追加できますか?
0310名無しさん@そうだ選挙にいこう垢版2023/06/03(土) 18:41:24.85
5ちゃん GTPもBing AIも凄いなぁ
0311名無しさん@そうだ選挙にいこう垢版2023/06/03(土) 19:36:50.80
ちなみになのですが昨日サイトで完全外部結合した後にキー列をカスタム関数のifで結合すればいいという事のを見て自分で実践してみましたが=が二つになってしまい、なんとかトークンが必要ですというエラーが出てきました
あれは何が問題だったのでしょうか?
BingAIに聞けばよかったですね
0312名無しさん@そうだ選挙にいこう垢版2023/06/03(土) 22:24:43.95
>>307
eachが必要
= Table.ReplaceValue(前のステップ, null, each [右のキー列],Replacer.ReplaceValue,{"キー列"})
0313名無しさん@そうだ選挙にいこう垢版2023/06/03(土) 22:48:35.75
>>311
「トークンが必要」というエラーは
詳細エディターで手入力でM言語式を書いたとき、
うっかり間違える「前のステップ」名。

でなきゃ、途中ステップの最後に "," を忘れたか、
最終ステップ(in前)の最後の記述に余計な "," を入れた
だったか。
0314名無しさん@そうだ選挙にいこう垢版2023/06/03(土) 23:22:22.76
>>313
そうだったのですね
ありがとうございます
まだまだパワークエリのM言語は触り始めたばかりでルールを知りませんでした
0315名無しさん@そうだ選挙にいこう垢版2023/06/04(日) 13:13:19.77
パワークエリのグループ化の集計方法は何が違うのでしょうか?
0316名無しさん@そうだ選挙にいこう垢版2023/06/05(月) 12:30:31.25
B列からH列まであって
それぞれの列の値は被らないとします
この場合B列からH列までを一つの列にまとめる事は可能でしょうか?
0318名無しさん@そうだ選挙にいこう垢版2023/06/05(月) 19:09:10.88
データモデル(PowerPivot)はデータをブックに読み込んでしまう
ファイルサイズ見ればわかるよ
PowerPivotの編集画面で表示されるデータがそのままブックに保存されてる
PowerQueryだけならそうならない
0319名無しさん@そうだ選挙にいこう垢版2023/06/05(月) 21:44:11.31
>>318
データモデルに追加はよく省メモリとか軽量化のための手段として紹介されていますが
全くの出鱈目だったんですね
0320名無しさん@そうだ選挙にいこう垢版2023/06/06(火) 06:57:57.49
データモデルは、
ワークシート限界の104万行以上を扱える。
Power Pivotと併用すると、計算が速い。
その代わり、データが大きいほどメモリーは食う。
0321名無しさん@そうだ選挙にいこう垢版2023/06/06(火) 07:34:36.14
>>320
リレーションシップだから処理が軽く早いんだと聞いていましたが違ったのですね
0322320垢版2023/06/06(火) 10:15:46.29
たとえば、>>297
日本版電力エリア需給実績(1時間値)もどきをやると、
1時間平均値なので、1供給エリアごとに年間8,760行。

個別の供給10エリアはあって、
さらに、50Hz連系時間帯串刺し、60Hz連系串刺し、10エリア計時間帯串刺しで+3エリア
都合、13エリア分になる。
年間:8,760行×13エリア=113,880行/年。

ここまでの、Web公開csvファイルDLからクレンジング、加工、集計とかの下処理は、
Excelで個別にクエリーやVBAを使って月次処理。

公開開始の2016年度から2022年度までの7年間だと、797,160行。
3ヶ年だけ、蓄電池シミュレーション版も入れたら、104万行を超えてもうた。

で、まだ勉強しながら作ってる途中だけど、
Power BI Desktopから年度別Excelファイルを読みに行って、
統合してデータモデルに格納(そもそも、BIにはワークシートがない)、
これの月別1時間値推移の、積み上げ棒&折れ線の複合グラフを作ると・・・

・スライサー切替えによるグラフ再描写が1秒弱。(第8世代Core i7のKなし)
・月次集計、年次集計、エリア間比較、電源構成比も楽ですよ
・BIの.pbixファイルだけなら130MBくらい
・ただし、BIだけでメモリーは1.4GB食ってます、
 制作途中でBIの中でクエリー更新すると、CPU負荷率とメモリー消費量がもっと跳ね上がって、ちょっと時間が掛かります、
 出来てしまえば、スライサー切替えによる再計算は速いです・・・

って話。

https://i.imgur.com/C74ul4i.png
https://i.imgur.com/omO9dQm.png
https://i.imgur.com/1QPmbIO.png
0324名無しさん@そうだ選挙にいこう垢版2023/06/06(火) 17:13:19.88
外せるよ。

「クエリと接続」の右ペイン出して、
目的のクエリー右クリックして「読込み先」、
「このデータをデータモデルに追加する」のチェックを外す
だったか。
Power Pivot開いて目的のクエリーのタブ右クリックして削除でも行けたかな?
0326名無しさん@そうだ選挙にいこう垢版2023/06/06(火) 20:01:51.66
パワーピボットで3種類の値の入った列を複数列、行フィールドに入れてフィルターをかけたらどうなりますか?
ANDでフィルターをかけられた結果が表示されますか?
0328名無しさん@そうだ選挙にいこう垢版2023/06/07(水) 07:18:28.24
>>327
やはり一つの列には一つの値しか存在してはいけないのですね
私もア以外の値をなくすことによってピボットテーブルで集計する事ができました

https://i.imgur.com/bTwA4tg.jpg


https://i.imgur.com/z7yJTK3.jpg

この様に列を並べて一つのピボットテーブルで集計したいです
0329名無しさん@そうだ選挙にいこう垢版2023/06/07(水) 08:26:02.56
>>328
「一つの列に一つの値」は基本中の基本、イロハの「イ」やで。
それと、他人に説明するとき、示す文章と絵を一致させるのも、イロハの「イ」や。

よーく、覚えとけ。
0330名無しさん@そうだ選挙にいこう垢版2023/06/07(水) 08:45:36.27
>>329
一つの列に一つの値が基本中の基本なので一つの列しか並べられない
という事はわかりました

ではなぜこれがア イ ウの値のある列ではなく、アしかない複数の列を並べる場合だと上手く機能するのでしょうか?
0331名無しさん@そうだ選挙にいこう垢版2023/06/08(木) 21:58:54.72
ピボットテーブルにもデータモデルに追加すると動作が重くなる とか メモリ不足等のエラーメッセージが出る という事はありますか?
0335名無しさん@そうだ選挙にいこう垢版2023/06/09(金) 20:55:11.42
>>331
データの格納効率(圧縮率?)はワークシートよりデータモデルの方が良いらしい
でもその処理で余計にCPUやメモリは消費するかもしれないね
0336名無しさん@そうだ選挙にいこう垢版2023/06/11(日) 10:42:42.93
列にフィルターを掛けます
フィルターされた のステップが挿入されます
このステップのコードをコピーすれば何回でも流用できますか?
0337名無しさん@そうだ選挙にいこう垢版2023/06/14(水) 22:38:53.61
SQLの基本を解説する本を読んでいてパワークエリに通じるものを感じます
つまりそもそもSQLを覚えましょうという事なのでしょうか?
0340名無しさん@そうだ選挙にいこう垢版2023/06/15(木) 21:07:17.33
パワークエリはSQLでできる事をさもすごい新機能の様に言っているだけでしょうか?
0344名無しさん@そうだ選挙にいこう垢版2023/06/16(金) 12:14:32.96
Pythonを少し触りはじめた人がExcelでは上手く作れない複雑な計算(数学?)のグラフがPythonだったら簡単に作れると驚いていたのですが、それはデータベースとかライブラリだからだとしたらそういう事だったのかという感じ
0346名無しさん@そうだ選挙にいこう垢版2023/06/19(月) 22:48:24.89
パワークエリでPythonを動かす人もいるのでしょう?
0347名無しさん@そうだ選挙にいこう垢版2023/08/04(金) 09:28:17.84
リレーション先のテーブルにある別カラムを条件に、棒グラフの1本だけを色変えたりできないかな?
0348名無しさん@そうだ選挙にいこう垢版2023/08/04(金) 12:22:46.80
ん?
どういう集計のどういうグラフか、詳細が分らないが、

条件使ってPowerQueryか関数で別系列に出来るなら、
色付け自体は固定的にグラフの設定

棒グラフじゃないけど、例えば、
最大値を別の色のマーカーにしたいとき、
最大値の系列を別に作って、他データを#N/Aにして
その1点だけ、あたかも別系列で重ねて表示させる、
なんてことはよくやる。

系列名が動的に変わるならVBA

とか。
0349名無しさん@そうだ選挙にいこう垢版2023/08/23(水) 09:28:23.14
やっぱり、出たよ

Introducing Python in Excel: The Best of Both Worlds for Data Analysis and Visualization
https://techcommunity.microsoft.com/t5/microsoft-365-blog/introducing-python-in-excel-the-best-of-both-worlds-for-data/ba-p/3905482?ocid=usoc_TWITTER_M365_spl100004503643083

Microsoft、「Python in Excel」を発表 〜Windows向けベータ版でテスト開始
https://forest.watch.impress.co.jp/docs/news/1525532.html
0351名無しさん@そうだ選挙にいこう垢版2023/10/02(月) 03:26:16.21
pdf表のデータ・スクレイピングは難儀だけど、
例えば、毎月発表される東電パワーグリッドの再エネ接続量のこのファイル、
https://www.tepco.co.jp/pg/consignment/system/pdf/newenergy_hondo_backnumber.pdf

これから%の表は抜きで
電源種別、申込ステータス、年月ごとの容量(万kW)をリスト化にするには、
・ページ番号・行番号・列番号使って、
・いったん時系列・項目・データ部に分け、
・番号を頼りにマージで再合成
すれば、PowerQueryでも出来んのね。
0353名無しさん@そうだ選挙にいこう垢版2024/02/29(木) 16:59:07.69
Webデータを読み込むクエリーで
ステップを重ねていって、途中でエラーになったとき(例:該当するデータがない等)、
その後のステップを飛ばして(if then elseでやるか・・・)
データがないのテーブルを#tableで生成して終わるような処理は
出来るかな?
0355名無しさん@そうだ選挙にいこう垢版2024/03/08(金) 15:47:22.05
初歩的な質問かもしれんのですが、この動画https://youtu.be/tFrjr3IiIlM?si=nYS3GRwPgYwMprmO 見ながら勉強しててドリルダウンまで行ったんだけど何故か綺麗に左からGDP順でドリルダウにならず…国名の五十音順になってしまうのって何故だと思う?
0356名無しさん@そうだ選挙にいこう垢版2024/03/08(金) 16:05:36.54
>>355
軸の並び替えで対処できたわ
レスを投稿する


ニューススポーツなんでも実況