【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/
0098名無しさん@そうだ選挙にいこう
垢版 |
2022/02/14(月) 20:50:10.87
これ四捨五入すると5が切り捨てられるんだけどどうにかならないですか?

Round関数 パワクエ
0.234 0.23 0.23
0.345 0.35 0.34 ←←←
0.456 0.46 0.46
0099名無しさん@そうだ選挙にいこう
垢版 |
2022/02/14(月) 20:58:39.13
どっかの記事
パワークエリの四捨五入は「銀行型丸め」が適用されており、ワークシート上のROUNDと結果が異なる場合があります。
この対策として、M関数の「Number.Round」の丸めモードを算術型丸めになるように設定する必要があります。
0100名無しさん@そうだ選挙にいこう
垢版 |
2022/02/14(月) 22:30:00.61
>>99
ありがとう御座います
色々検索しててAwayFromZeroを入れてみて一応期待する動作にはなってそうですがこれで果たして正解なのか。。
0101名無しさん@そうだ選挙にいこう
垢版 |
2022/03/13(日) 10:44:22.49
「後ろにステップを挿入」の使い方、少し分かってきた。

例えば、csvファイルが単純なマトリックスだけでなくて、
ヘッダーみたいに集計日とかデータ更新日とかが入っているような複合構成の場合、
上位行削除とか列削除/追加してなど加工して、本体部をひとまず整形し、
最後のステップ名が「変更された型」だったとする。<-ココ大事

ここで全行に共通する「集計日」列を追加したいとすると、
右クリックで「後ろにステップを挿入」して、処理をいったん分岐(?)出来る。

元ステップ冒頭の「ソース = ・・・」をコピペして「ソース2 =・・・」とすれば、
csvを読込んだ最初の状態をまた読み込める。
今度はヘッダー部分の「集計日」だけに削って行って、
 集計日
 2022/3/12
の2行×1列だけのテーブルにし、
ここでの最後のステップ名が「変更された型2」だったとすると、
 R_集計日 = Table.FirstValue(変更された型2),
とかにして、1行目の値を名前定義の変数にしておく。

で、元の本体部への戻り方は、「カスタム列の追加」の場合だと
 カスタム列の追加 = Table.AddColumn(変更された型, "追加列名", each R_集計日)
で、全行共通の集計日列が追加出来た。

・複数行/列にした場合はどうすればいいのか、
・他のクエリーの任意の行/列の値を取得するにはどうすればいいのか、
は今後の課題。

M式はList.なんちゃらを使う?
引数は{0から始まる行番号}[列名]を使った何かか?
0104名無しさん@そうだ選挙にいこう
垢版 |
2022/03/23(水) 11:26:04.52
僭越ながら教えてください。

パワークエリで見た目の整形の話です。

Excel2019でパワークエリで大量の
テキストファイルを読み込ませてるのですが、そこまではうまくいきました
見栄えのためにテキストファイルごとに列を分割して並べて表示も時々利用したいと考えています。
そのようなことはできるでしょうか?

イメージとしてはテキストコピペしてエクセルのA1から横に張って行くイメージです。

※背景として利用したいテキストファイルが合計15000ほどあり各システム別に分けられているので一つのくぎりとしては100程度になります。
利用目的としてpivot機能も含むチェック業務利用です。
0107名無しさん@そうだ選挙にいこう
垢版 |
2022/03/23(水) 14:24:28.16
>>104 
powerquery内でTable.Pivot関数突っ込めば列にその情報ソースを出力できないこともない。リボンに列のピボット?があるはずだから、それ突っ込めば希望に近いものができるかもしれないので自分で調べて。その整形自体おすすめしないけど。15000列もエクセル側が受け皿を用意できたっけね?
0108名無しさん@そうだ選挙にいこう
垢版 |
2022/03/25(金) 22:58:56.33
誘導されてきました
エクセルのクエリで、一つのファイルにある複数のシートから、たとえば1つ目から4つ目のデータ(1000行くらい)を1枚目を1から4、2枚目を5から8に転記していくにはどのような設定でやればいいでしょうか
0109名無しさん@そうだ選挙にいこう
垢版 |
2022/03/26(土) 05:23:53.34
>>108
その質問文、
VBAスレでわかりにくいって言われてたのに
そのままコピペするとは
おたく、どういう神経なのか?

マージについては以下参照。
https://hamachan.info/excel2019-powerquery-kyotu/#:~:text=Power%20Query%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF%E3%83%BC%E3%81%A7%E3%82%AF%E3%82%A8%E3%83%AA%E3%81%AE%E3%83%9E%E3%83%BC%E3%82%B8,-%EF%BC%BB%E8%B2%A9%E5%A3%B2%EF%BC%BD%E3%82%AF%E3%82%A8%E3%83%AA%E3%82%92&text=Power%20Query%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF%E3%83%BC%E3%81%8C%E8%B5%B7%E5%8B%95,%E3%82%A6%E3%82%A3%E3%83%B3%E3%83%89%E3%82%A6%E3%81%8C%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82

あとは知らん。
0110名無しさん@そうだ選挙にいこう
垢版 |
2022/03/26(土) 07:09:05.40
>>108
VBAスレから誘導されたの見てて心配で見に来たけど
不特定多数のシートを扱うならクエリも多分動的制御が必要になるから結局VBAのお世話になると思うよ。

たらい回しにするつもりはないけど、
VBAで言ってることを実装出来るコードを書いといたので一応見といてくれ。
Power Queryは使っていないけどね。
0111名無しさん@そうだ選挙にいこう
垢版 |
2022/03/26(土) 08:06:23.90
>>109
質問者自身が自分が何やりたいのか分かってないと思うから丁寧に回答したところで思っていたのと違うとかそんな事言われるだけになるぞ
お互い損するだけ
0112名無しさん@そうだ選挙にいこう
垢版 |
2022/03/26(土) 12:52:40.95
>>110
普段はPower Query使ってるけど、
繰り返し大量処理だとメモリー爆食いするので
VBAも参考にさせてもらってるよ。

ヘルパークエリーでパラメータ使って
さらにその都度VBAでファイル保存の
合わせ技で効率良くなるかも知れない。
0113名無しさん@そうだ選挙にいこう
垢版 |
2022/03/26(土) 22:07:01.78
この処理は難しそうということですね
ありがとうございました
0115名無しさん@そうだ選挙にいこう
垢版 |
2022/03/28(月) 18:47:33.32
>>113
生半可Power Cueryでやろうとするから難しいだけ。
やる方法には適材適所というものがある。

上記の要件であればVBAならバカでチンケな俺でも数分で作ることが出来た。というかVBAスレに貼っておいた。

Power Queryの今までやってきたことは無駄にはならないだろうけど、
自分でVBAのコード書いたりSQL書いたり出来ると更に出来る仕事の幅が増えるよ。

まぁスレ違いだからこの話はここではこれ以上しないけどね。
0118名無しさん@そうだ選挙にいこう
垢版 |
2022/03/29(火) 07:37:54.81
すみませんが、どうしてもわからないので教えてください。

Powerqueryで以下の式を”リストでの数値カウント”ではなくて、
原文そのままのテキストで表示したいと思っています。
どういう式を書けばいいのでしょうか?

「 ピボットされた列1 = Table.Pivot(削除された列1, List.Distinct(削除された列1[Source.Name]), "Source.Name", "Column1", List.Count)」
※上の式は「列のピボット」のGUIボタンで自動作成されました。
0119名無しさん@そうだ選挙にいこう
垢版 |
2022/03/29(火) 10:53:52.14
>>118
こういうこと?
たとえば、こんなテーブル:T_元表(一番左の青テーブル)があったとする。
ここでは「項目1:あ」−「項目2:a」の値が、「あああ」と「AAA」が重複している。
https://i.imgur.com/QI2nbEp.png

これをクエリーに置換えたのが2つ目のQ_元表で、Q_元表を参照して「項目2」列をピボットした時、
自動生成されるのは、おっしゃるとおり、List.Countによる「値のカウント」。
数値だとList.Sumで自動集計される模様。

3つ目のQ_元表_ピボット_自動生成
let
ソース = Q_元表,
ピボットされた列 = Table.Pivot(ソース, List.Distinct(ソース[項目2]), "項目2", "値", List.Count)
in
ピボットされた列

で、List.Countを、List関数のうちから適当に、List.Firstに置換えてみた
ピボットされた列 = Table.Pivot(ソース, List.Distinct(ソース[項目2]), "項目2", "値", List.First)
のが、4つ目の、Q_元表_ピボット_手動_ListFirst。
重複していた「あ」行−「a」列の値は、1文字目の文字コードで若い番号の「AAA」を拾ってきた?

なお、自動生成で個数を拾ってきた3つ目も、列ピボットの詳細オプションで「集計しない」を選ぶと
「あ」行「a」列はErrorで、重複していない他行他列は文字列の「値」を拾ってくる。
https://i.imgur.com/nnDKqPz.png

何をやりたいのかよく分からないけど、ListのM関数でよさげなものがあれば、
https://docs.microsoft.com/ja-jp/powerquery-m/list-functions
目的のものが出来上がるかも知れない。

「『値』列が数値ではなくて文字列で、文字列として全て集めたい(項目1の重複はOK)」
というなら、項目2について1つ1つマージかしら? それだったら元表をソートすれば済んじゃいそう・・・
0120名無しさん@そうだ選挙にいこう
垢版 |
2022/03/30(水) 00:29:25.11
>>119
レスありがとうございます。

pngの通り類似の処理はしたのですが、残念ながらうまくいきませんでした。
緑文字でListととなり、一括に束ねられてしまいます。
※束ねられたものを成形する方法ありそうですが、わかっていません・・・

List.Firstやとかではテキストが表示するのですが・・・
List.SourceやList.ReverseだとListになってしまいます・・・
違いは適用したステップが自動生成されているくらいだとは考えています。
0121名無しさん@そうだ選挙にいこう
垢版 |
2022/03/30(水) 06:03:24.41
PowerQueryをGUI操作した結果で作られたコードを成形しようとしたら物凄く難しくないですか?

皆さん入り始めはどういう風に触られたんですか?
Microsoftが標準にGUIとして用意された機能を触っていると、
どうにもすこぶる遠回りして覚えてる気がしてならないです・・・

※それぞれ定義された名称が凄く長くなってるのが難易度あげてる気はします

ーーーーーーーーGUIでフォルダ取得時のコードーーーーーーーーーー
let
ソース = Folder.Files("C:\Users\max\Documents\Power"),
#"フィルター選択された非表示の File1" = Table.SelectRows(ソース, each [Attributes]?[Hidden]? <> true),
カスタム関数の呼び出し1 = Table.AddColumn(#"フィルター選択された非表示の File1", "ファイルの変換", each ファイルの変換([Content])),
#"名前が変更された列 1" = Table.RenameColumns(カスタム関数の呼び出し1, {"Name", "Source.Name"}),
削除された他の列1 = Table.SelectColumns(#"名前が変更された列 1", {"Source.Name", "ファイルの変換"}),
展開されたテーブル列1 = Table.ExpandTableColumn(削除された他の列1, "ファイルの変換", Table.ColumnNames(ファイルの変換(#"サンプル ファイル"))),
変更された型 = Table.TransformColumnTypes(展開されたテーブル列1,{{"Source.Name", type text}, {"Column1", type text}})
in
変更された型
ーーーーーーーーーーーーーーーーーーーー
0123120
垢版 |
2022/03/30(水) 09:53:33.54
>>122

おはようございます。

知識がなさすぎてどういう情報を提供すればいいのかさえわかっていませんが、
元のデータはフォルダ上にある「ただのテキストデータ」で、
GUIでフォルダごと選択して複数ファイルを引っ張ったものとなります。

丁度121のソースとほぼ同じだとおもいます。
数値とかは入力値としてはありますが、PowerQueryでは計算とかは求めないものと考えています。

諦めの選択にはなっていますが、powerqueryにここまでてこずると思っていなかったこともあり、
直近ではテーブルデータに起こしてから細かい計算とかはExcelの関数で手入力しようと考えています。

Excelの操作手順を以下に記載します。

@Excel新規作成 Aデータの取得-フォルタから B結合 Cクエリエディタその他のクエリから「変換」列のピボット D数式バーでList.Reverseに変換とかを

情報小出しすみません。
データ取得からのデータ成形したいだけなので、クエリが得意とすることだとは考えています。
0129名無しさん@そうだ選挙にいこう
垢版 |
2022/04/02(土) 11:50:11.30
そう言えば、ADOだとワイルドカードが%だから、
Accessも%だろうと思ったら実は*で、
フザケンナちゃんと統一しろムキー!ってなったことあるわ。
0130名無しさん@そうだ選挙にいこう
垢版 |
2022/04/11(月) 19:20:30.64
クエリ勉強用に書籍を購入検討していますが何かしら比較したことのある書籍あれば教えてください。


レスつくのが時間いると思いますので、
今時点は適当に購入してみて後日感想記載します。
0131名無しさん@そうだ選挙にいこう
垢版 |
2022/04/11(月) 19:31:11.43
>>130
クエリってpowerqueryを略して言ってるの?
0136名無しさん@そうだ選挙にいこう
垢版 |
2022/04/12(火) 19:59:29.96
月次更新を半年くらい繰り返してきたクエリーを今月更新したら、
こんなエラーメッセージが出てきて更新不能になったでござる。

> Formula.Firewall: クエリ 'Q_Result_byMonth_M04' (ステップ '変更された型') は、
> 前回の評価時には MultipleUnclassified/Trusted データを使用しましたが、現在は
> MultipleUnclassified/Trusted データを使用しようとしています。

参照している元クエリーのステップ '変更された型' と
このクエリーの '変更された型' を作る直してみたものの、改善せず。

"MultipleUnclassified" とはなんぞや?とググった中で、
英語のYouTubeで出てきたこの動画をぼんやり見てたら、
「PowerQueryのオプションで、プライバシーレベルを"無視"にしろ」
と、ささやくではないか・・・
Solve the Formula.Firewall Error in Power Query
https://youtu.be/z_kgvkgU8iI

とりあえずやってみたら、再度動き出すにはしたものの、
機械翻訳された大本営の説明がよくわからずorz

プライバシー レベルの設定 (Power Query)
https://support.microsoft.com/ja-jp/office/%E3%83%97%E3%83%A9%E3%82%A4%E3%83%90%E3%82%B7%E3%83%BC-%E3%83%AC%E3%83%99%E3%83%AB%E3%81%AE%E8%A8%AD%E5%AE%9A-power-query-cc3ede4d-359e-4b28-bc72-9bee7900b540?ocmsassetid=ha104009800&;correlationid=506dcb43-8d8c-4234-8a1a-a798fb3cc18f&ui=ja-jp&rs=ja-jp&ad=jp
0138名無しさん@そうだ選挙にいこう
垢版 |
2022/04/27(水) 21:26:09.00
質問です

グループ毎に小計及び総合計を出したいですが、簡単に出来る方法はありますでしょうか?
ネットに乗ってるLetは使い方が良く分かりませんでした
0140名無しさん@そうだ選挙にいこう
垢版 |
2022/04/27(水) 22:34:05.38
列数が20ほどありピボットテーブルで横に伸ばすと操作性が著しく劣るためパワークエリで直接編アレンジしてテーブル形式で出力したいです
機能の小計が使えれば良いのですがテーブル形式になってると使えないようです
0144名無しさん@そうだ選挙にいこう
垢版 |
2022/05/17(火) 20:43:53.61
フィルターされた行 = Table.SelectRows(テーブル, each Text.StartsWith([#"RowName"], FilterValue))

変数RowNameがうまく認識されず、
「Expression.Error: レコードのフィールド 'RowName' が見つかりませんでした。」
となります。
どうするのがよいでしょうか?
0146名無しさん@そうだ選挙にいこう
垢版 |
2022/05/17(火) 23:21:37.74
回答ありがとう。

RowNameは動的に変わる変数で、フィルタ用の文字列ではなく、列名を指してます。
たとえばRowNameが「商品名」だったとき、
・[#"RowName"]→エラー
・[RowName]→エラー
・[商品名]→正常
という感じでした。
RowNameに「商品名」が正しく入っていることは確認済みで、
もちろん列名が「商品名」という列も存在します。

角括弧 [] に変数を入れるときに、とくに気にすることはないと
思っているんですが、どうなんだろう?
0147名無しさん@そうだ選挙にいこう
垢版 |
2022/05/18(水) 13:50:53.35
おおよそ認識の通り、角括弧内の文字列に演算子を含む場合には#"〇〇"としてあげるくらい。このエラーには関係ない。
StartsWithはRowNameにFilterValueが含まれるか否かをTrueかFalseで返す関数らしいからそこが問題かと。その意味で「その文字列で始まる文字列が無い」んでしょうね。これ以上はわからん
0148名無しさん@そうだ選挙にいこう
垢版 |
2022/05/19(木) 08:23:07.10
>>147
ありがとう
もうちょっと考えてみますわ
0151名無しさん@そうだ選挙にいこう
垢版 |
2022/05/31(火) 01:46:15.43
パワークエリで利用するデータはある程度整えてから利用した方が良いのでしょうか

読み込むExcelファイル内に社名や判子を押すセルなど不要なデータがあったりしてちょっと扱いにくいです
特にマージするときに行などがズレてしまいます。

仕方が無いので、パワークエリの扱いがまだよくわからないのもあって素データを編集しています。
素のExcelで不要なセルを削除したりしてからマージします。でも編集するのは面倒だし
素のデータを編集するのは好きではないけど、これは仕方ないことでしょうか。
0152名無しさん@そうだ選挙にいこう
垢版 |
2022/05/31(火) 12:15:52.30
PowerQuery自体にデータ整形の機能はあるけど
それにも限界があるかと。

ワークシートの読込みで
行列の規則性ではダメで、罫線だけが頼りの場合だと、
VBAも使わないと整形出来ないかも。

Webページの自動認識である程度テーブルを分けてくれるので、
M言語に罫線も認識する関数があるのかしら?
htmlで配列を検出しているのかどうか、
まだ分からないけど。
0153名無しさん@そうだ選挙にいこう
垢版 |
2022/05/31(火) 19:53:17.67
もともとクエリだからね。
データベース並みに構造化されたデータを加工するのが前提。
帳票的なデータをいじるのにはあまり向いてないわな。
0154名無しさん@そうだ選挙にいこう
垢版 |
2022/05/31(火) 21:28:54.04
>>152
>>153

ありがとうございます
今日もう一度見直したらエラーやnullが原因で崩れてしまうことがわかり無事統合できました。
今までは不要な行は手動で消していましたがフィルタ機能を使えばできましたね……
0156名無しさん@そうだ選挙にいこう
垢版 |
2022/06/01(水) 16:52:33.88
質問が二つありますので宜しくお願い致します

1.  CurrentWorkBook内に作ったピボットテーブルは
  範囲参照では取り込めないというメッセージが出たので、
  Excel WorkBookからの取り込みで作業中のファイルを指定して
  ピボットテーブルのシートをデータモデルに取り込んで作業していました。
  ある程度作業は勧められましたが  突然読み込みエラーでクエリごと
  消えてしまいました。
  作業中のBook内のピボットテーブルからデータを読み込む
  のには制限があるのでしょうか?
  

2. クエリを削除しても、ピボットテーブルをデータモデルから
  作成するときに、削除したはずのクエリがテーブルとして出てきます。
  データモデルを完全に削除する方法を教えてください
0157名無しさん@そうだ選挙にいこう
垢版 |
2022/06/01(水) 20:02:45.92
>>156
ようわからんけど、

>1.
ピボットテーブルを参照「元」にすることは、経験的に避けている。
フィルターや構成変えるだけで指定した参照範囲が壊れてしまうから。
何かフィルターを変えたら104万行を超えてしまったとかも。
ピボットテーブルは参照元にはせず、それを最終出力とするかグラフに繋げるかだけにしている。
でなければGETPIVOTDATA関数を使ったこんな場合とか。
https://dekiru.net/article/4481/
さらにいじりたいのであれば、クエリーで絞るかPowerPivot内(DAX関数)でやるか。

>2.
クエリーを作る時、最後に「データモデルに追加する」にチェックを入れてワークシートに読込ませると
シート上のクエリーテーブルとは別に、
PowerPivotで扱われる「データモデル」としても同様のテーブルが作られると理解。
これがワークシート上限104万行を超えて扱えるヤツ(その場合は「接続のみ」で利用)。

当該クエリーも削除した後で、後者を削除するには、
(他のクエリーがあれば、そこをアクティブにするとメニューに「Power Pivot」が現れる)
 Power Pivot - 管理
で、PowerPivot上の当該シートタブを右クリックで削除。
0158名無しさん@そうだ選挙にいこう
垢版 |
2022/06/02(木) 13:49:56.88
>>157
ありがとうございます。ピボットテーブルはやはり参照元にしない方が良いのですね。
確かに集計項目を変えた時にエラーが出ました。

今やりたいのは例えば、下記のようなテーブルがあったとして
売上100以下の商品はその他というくくりにして集計したいのです


商品    カラー    売上
A      赤      100
A      青       50
A      黄       10
B      赤       70
B      青       20
C  赤       90
C      青       20
D      赤       20
D      青       50

上記の表を

商品   売上
A     160
C     110
その他  180

このように加工して、その表を再びテーブルとして使用したいのです。
私はピボットテーブルを使ってしまったのですが、このような場合に使える方法がありましたら、教えてください。
0159名無しさん@そうだ選挙にいこう
垢版 |
2022/06/02(木) 14:19:05.73
ピボットテーブルの参照元データはpowerqueryから見られないの?
powerqueryで参照元データを直接いじれば良いのでは?
0161157
垢版 |
2022/06/02(木) 22:03:48.12
>>160 が言うとおり、グループ化でやってみた。

とりあえず成果品の画像。
https://i.imgur.com/399Bh2k.png

1. 最初のQ_DataはテーブルT_Data(青)をクエリー化しただけ。(接続のみ)

2. 2つ目のQ_合計売上100超は商品でグループ化して、その売上合計を出し
https://i.imgur.com/8vxZzwH.png
フィルターで100超だけに絞ったもの。(接続のみ)

3. 3つ目のQ_合計売上100未満は、同様に、売上合計が100未満に絞って(商品BとD)、
その合計の答えをリスト形式で出せるから、
https://i.imgur.com/rtfVOYD.png
テーブルに変換、
https://i.imgur.com/VUKKfcp.png
行タイトルを"Column1"から2つめと同じ「カウント.売上 の合計」に変更、
「商品」列を追加して値を"その他"とし、
列順を2つ目と同様に並べ直した。(接続のみ)

4. 4つ目のQ_追加統合が2つ目に3つ目を追加したもの。(シートに読込み)

ちなみに「その他」の合計は180ではなく160の模様。

これなら二次利用の参照元にも出来るべ。
0162157
垢版 |
2022/06/02(木) 22:08:25.55
>>161 の追記
2.と3.のクエリーは1.を参照
0163157
垢版 |
2022/06/02(木) 22:11:18.45
>>161 の訂正
100超と100未満じゃ、「100」が抜けてまう...orz
そのあたりはよしなに。
0164名無しさん@そうだ選挙にいこう
垢版 |
2022/06/02(木) 23:14:56.46
質問させてください

折れ線グラフで毎日の温度データを表示しています
・基準値を超えた日に任意の文字を表示させる
・位置はデータに追従させる
ということはできますか
ヒントに入れてカーソルを合わせたら表示されるのではなく、常に表示した状態にしたいです
0165名無しさん@そうだ選挙にいこう
垢版 |
2022/06/02(木) 23:33:25.04
>>164
「任意の文字」とは何?

データラベルとして、日付や温度以外の、
元表中の「任意の何か」の列の値を
ラベルオプションの「セルの値」設定で表示すること?

であれば、PowerQueryというより、
VBAで系列と要素番号とかを指定して
データラベル表示させることになるのかと。
0168名無しさん@そうだ選挙にいこう
垢版 |
2022/06/08(水) 00:06:55.79
某アプリから出力されたCSVファイルを使って、その右側に何列にも渡ってピボットテーブルに使用できる関数の入った
セルを作ったエクセルファイルがあります。
これに毎週追加されるCSVファイルのデータを追加していくのですが、当初、単純に作ったエクセルファイルに
追加CSVファイルの値だけをコピペして、右側の関数セルはオートフィルで追加すればいいかと考えていたのですが、
PowerQueryなる便利なツールでもっと効率的にできそうというのがわかりました。
質問は以下になります。

1.すでに作られたエクセルファイルの書式(テーブル化されてます)で、CSVの追加データをPowerQueryでインポートするにはどうすればいいでしょうか。
(各列のタイトルは追加CSVと全く一緒です)
2.PowerQueryにまったくの無知でも、PowerQuery上で関数の入った列も入れてしまった方が良いでしょうか。

色々ググってみましたがさっぱりわかりませんでした。
Amazonで参考書注文してきたので今後勉強していきますが、とりあえず上記がサルでもできるほど簡単なら教えてください。
よろしくおねがいします。

↓こういう状況です。
https://i.imgur.com/Bi79f98.png
0169名無しさん@そうだ選挙にいこう
垢版 |
2022/06/08(水) 00:13:12.49
>>168
すみません、図の追加CSVにある左の番号は11から続く出力データです。
0171名無しさん@そうだ選挙にいこう
垢版 |
2022/06/08(水) 01:29:41.21
>>168
1. 週ごとのcsvを(あるいはそれを読込んだExcelファイルを作って)、
同じフォルダに入れておく。

2. これらを通しで集計するには、別ブックから「データの取得 - フォルダから」で、
全てのファイルを結合出来る。
・「パラメータ」を使う「ヘルパークエリ」が自動作成されるが、
 カスタマイズはそんなに難しくない。
・参考動画
 https://youtu.be/RCmoho3jU8Q
 https://youtu.be/VxKoqBJWgRo
 https://youtu.be/TvIsvzGiQTU
 https://youtu.be/uLV85sauJRw
 等。
・このクエリーの中で「新しい順」にソートするステップを入れておけば良い。
・1. を毎週やっていれば、最新の通し集計は、このクエリーを更新するだけ。

3. 関数計算の展開は、2.のファイル内で各週csv等を
結合してから展開する方が吉。
1.の各週ファイル内に関数計算を仕込んでおいても良いけど、
追加や変更が出たとき、全部直さなきゃならなくなるから。
0172171
垢版 |
2022/06/08(水) 01:43:56.70
>>171
> 3. 関数計算の展開は、2.のファイル内で各週csv等を
> 結合してから展開する方が吉。

とは書いたものの、
・1週分のデータが数千行以上
・結合した後の合計数万行以上
・横列に展開する関数列がやたら多い
なんてことで、2. のブックの処理速度が落ちるというのであれば、
計算負荷分散のため、
1. のファイル内で関数計算を展開しておくことはあり得る。
0173171
垢版 |
2022/06/08(水) 01:51:10.39
でなきゃ、各週分を取り込んだとき、2.のブックのワークシートには読込ませず、
データモデルにしておくのも一つの手。

データモデル内で右に列を追加しての関数計算は可能。
データモデルだとワークシート104万行の限界を超えられるし、
これをピボットテーブルのデータ元にすることも可能。

とかやってるうちに、欲が出てきてPower Pivot、DAX関数の沼にはまったが。
0174168
垢版 |
2022/06/08(水) 02:18:46.15
>>171
むちゃくちゃ親切にありがとうございます!
1週分のデータはせいぜい100〜200行ぐらいで、結合後もまだ3000行弱なので最初のやつで大丈夫だと思います。
とりあえず動画見てみます!
0175名無しさん@そうだ選挙にいこう
垢版 |
2022/06/28(火) 11:20:25.93
PowerBI上で重回帰分析は実施できますでしょうか?
0177名無しさん@そうだ選挙にいこう
垢版 |
2022/06/28(火) 13:40:02.58
>>176
ありがとうございます。
変数の選定は出来ますね。直接式を求めることは出来なそうです。
式は別途求めればいいのかなぁ。
0178名無しさん@そうだ選挙にいこう
垢版 |
2022/07/01(金) 17:58:50.96
お願いします
組織アカウントのPower BIワークスペース上に、いつからか他者が作成したレポートが表示されています
どうにかワークスペース内から表示を消したいのですが、方法をご存知の方いらっしゃいませんでしょうか
0179名無しさん@そうだ選挙にいこう
垢版 |
2022/07/26(火) 11:01:08.73
ExcelでPower Queryを触りはじめたのですが、
Table1とTable2それぞれの特定列が一致した場合に
一致した行だけを集めてTable3を作る、
といったことも可能でしょうか
0183名無しさん@そうだ選挙にいこう
垢版 |
2022/07/27(水) 20:06:48.57
>>182
無粋だな

>>180-181の流れで完璧だったのに
0185名無しさん@そうだ選挙にいこう
垢版 |
2022/08/01(月) 12:38:51.85
webからの取得で認証フォーム突破出来なかったから調べたけどBASIC認証のみなんやね
カスタムから出来るかもしれないて回答してる人いるだけでやり方はどこにも書いてなかった
認証フォームあるようなやつスクレイピングしたいならPythonとかプログラミング学んだ方が早いんかな
0186名無しさん@そうだ選挙にいこう
垢版 |
2022/08/16(火) 10:17:32.13
Power Queryで捨て仮名をナミ字に変換するにはどうすればいいんでしょう
ぁぃぅぇぉゃゅょゎっ それぞれを、
あいうえおやゆよわつ にしたいのですが、上手いやり方を思い付けません
0187名無しさん@そうだ選挙にいこう
垢版 |
2022/08/16(火) 13:03:37.37
変換テーブルを使う考え方でなんとかできました
もっと上手いやり方があるようでしたら教えてください
以下が今回やった方法です
= List.Accumulate(Table.ToRows(#table({"捨て仮名","ナミ字"}, {{"ァ","ア"},{"ィ","イ"},{"ゥ","ウ"},{"ェ","エ"},{"ォ","オ"},{"ャ","ヤ"},{"ュ","ユ"},{"ョ","ヨ"},{"ッ","ツ"}})),[カナ],(x, y)=>Text.Replace(x,y{0},y{1})))
0191名無しさん@そうだ選挙にいこう
垢版 |
2022/08/31(水) 15:07:50.25
Power Queryでクエリの並び替えってできますか?
今は新しいExcelブックをつくってクエリをコピペするという不毛な作業をしています
0192名無しさん@そうだ選挙にいこう
垢版 |
2022/08/31(水) 15:29:32.86
>>191
手動のドラッグによる並べ替えの話でいいの?

Excelの「クエリと接続」ペインだと右クリックメニューで一段ずつ上か下だけど、
いずれかのクエリーを編集で開いて
Power Query エディターの左ペインでやれば、
ドラッグで飛ばして並び替えは可能だけど。
0194名無しさん@そうだ選挙にいこう
垢版 |
2022/09/01(木) 08:59:15.50
他のブックへのクエリーのコピーは
PowerQueryのスクリプトをまるまるコピペで。

ワークシートの定義名範囲や、
クエリーでないテーブルの参照をクエリー内でしているときは、
それらも再構築が必要だけど、
名前定義の範囲のコピペは、
「(当該)ブック」とか「(当該)ワークシート」とか、
その有効「範囲」の作り直しが必要だったかと。
でないと「他ブックのリンク」になってしまうので要注意。
0195名無しさん@そうだ選挙にいこう
垢版 |
2022/09/11(日) 17:18:15.63
Table.AddColumn(ソース, "新列名", each [旧列名]*1000)の 旧列名 の部分を変数にするにはどうしたら良い?
0197名無しさん@そうだ選挙にいこう
垢版 |
2022/09/12(月) 06:51:38.13
>>195
それは俺も知りたい。
任意の列名変更は、一度ピボット解除して列名を縦にして、
if Text.Contains() then else
とかで検索と置換が出来るようにすれば良いのか?
エロい人、教えて。
レスを投稿する


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