Excel VBA 質問スレ Part84 (125レス)
Excel VBA 質問スレ Part84 http://mevius.5ch.net/test/read.cgi/tech/1759297002/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
17: デフォルトの名無しさん [] 2025/10/05(日) 06:02:00.45 ID:knUkubLb みんながみんな大量のデータ集計や高度な集計をやるわけでは無いからPower Queryを必要とする人はいないと言われれば確かにそうですね。 だけどExcelで集計をすると言うのであればVBAでは無理です。 http://mevius.5ch.net/test/read.cgi/tech/1759297002/17
21: デフォルトの名無しさん [] 2025/10/05(日) 07:58:20.71 ID:knUkubLb >>20 本当にそれなんですよ パワークエリーやSQLなら列同士の集計やグループバイ、Join、UnPivotができるけど、VBAでUnpivotは流石にキツい http://mevius.5ch.net/test/read.cgi/tech/1759297002/21
24: デフォルトの名無しさん [] 2025/10/05(日) 09:10:22.53 ID:knUkubLb >>23 その事前のデータ整形がパワークエリーなんですよ そもそもPower BIはパワークエリーとパワーピボットの二つが合わさった製品だし ADOが非推奨だとは知らなかったです やっぱりVBAはダメダメなんですね http://mevius.5ch.net/test/read.cgi/tech/1759297002/24
25: デフォルトの名無しさん [] 2025/10/05(日) 09:12:20.05 ID:knUkubLb >>22 GROUPBY関数は最近になってやっとM365だけで使える様になった引数の翻訳も終わっていない関数じゃ無いですか しかもGROUPBYに渡す元データのUnPivotはどうするんですか? UnPivot関数はありませんよ? http://mevius.5ch.net/test/read.cgi/tech/1759297002/25
26: デフォルトの名無しさん [] 2025/10/05(日) 09:18:37.32 ID:knUkubLb パワークエリーは let 変数名 = 関数 in ただこれだけです 各ステップ名にそれぞれの関数の戻り値(型)が代入されるだけです 一体どれだけ簡単なのかと 名前付きfunction関数なら (変数名 型) => let 変数名 = 関数 in ただこれだけ http://mevius.5ch.net/test/read.cgi/tech/1759297002/26
27: デフォルトの名無しさん [] 2025/10/05(日) 09:28:11.50 ID:knUkubLb 会社で本格的なデータベースを構築しているとか、サーバーが使える、あるいは業務にしているのならそりゃSQLを推奨しますよ しかし日本企業がそんなにITの導入をしているとは私はまったく思えません だから当然必然的にExcelの標準機能一択になるわけです 世の中の企業にはVBAを禁止している会社もあると聞きます だったら尚更パワークエリー あとSQLはETLではないからSQLにできないことも多い http://mevius.5ch.net/test/read.cgi/tech/1759297002/27
29: デフォルトの名無しさん [] 2025/10/05(日) 09:51:23.22 ID:knUkubLb >>28 UnPivotと行列入れ替えは全くの別物ですよ 行列入れ替えは本当にただ 列 行 を 行 列 にするだけなんだけど、UnPivotは横持ちデータを縦持ちデータに変換する事を言います 例えば 1月2月3月4月5月〜 各エリア 〜 という表があればその各月のデータを エリア列|月列 とリスト表形式に整えてくれます これ無くして高度な集計はできません http://mevius.5ch.net/test/read.cgi/tech/1759297002/29
32: デフォルトの名無しさん [] 2025/10/05(日) 10:08:01.77 ID:knUkubLb なんでVBAで流石にUnPivot旬は難しいと言えるかと言うと、UnPivotする為にはそれぞれの項目とその数に応じて大量に行の挿入を行う必要があるからです これをVBAでやろうとすると行ズレ問題に頭を悩ませるし、セル操作、Rangeは非常に遅いし、2次配列の操作はVBAは非常に貧弱だからです 一応、パワークエリーが登場する前(本当はMicrosoft Queryという前身機能があったらしいですが)のVBAのまず最初にやる事はUnPivotだったらしいので、絶対にできないとは言いません しかし、パワークエリーならボタンぽちぽちで済む事を全部コードに書かなきゃならないので非常に面倒くさい上に不具合もあります サーバーがある、本物のSQLが使用できる環境があると言うのなら当然止めません 既に正規化されているデータだけを扱うと言うのであれば尚更でしょう しかし世の中その様なデータばかりを扱うとは到底思えません http://mevius.5ch.net/test/read.cgi/tech/1759297002/32
33: デフォルトの名無しさん [] 2025/10/05(日) 10:09:32.03 ID:knUkubLb >>31 表っぽいデータなら「大抵」ではなく、「全て」うまい塩梅に整形できますぜ です なぜならそれがETLだからです http://mevius.5ch.net/test/read.cgi/tech/1759297002/33
37: デフォルトの名無しさん [] 2025/10/05(日) 11:44:07.60 ID:knUkubLb 元データがちゃんと正規化されているリスト表だけだったらSQLでも十分 それはその通りです でも世の中残念ながらそうじゃないんです これはなぜETLというツールがいくつもあるのかという話です 大量の列があるデータをソフトウエアがCSVで出力されるケースを私は実際に知っているのです そしてその時に私はUnPivotを知りました http://mevius.5ch.net/test/read.cgi/tech/1759297002/37
38: デフォルトの名無しさん [] 2025/10/05(日) 11:49:26.34 ID:knUkubLb これだけは言えると思うのは 確かにSQLは1列に一つの種類の値、型のデータを扱うのなら最適化されているので高速ですが、そうでない場合、データのクリーニング、前処理が必要は場合は必ずしもそうではないと思います あとデータソースは各種サーバーに出来るので、まずはお試しでやってみる、という叩き台やテストを「お手軽に」する事もできます http://mevius.5ch.net/test/read.cgi/tech/1759297002/38
44: デフォルトの名無しさん [] 2025/10/05(日) 19:35:04.95 ID:knUkubLb >>42 複合キーを利用する、複数列の値を使用する、結合するという事はできますよ http://mevius.5ch.net/test/read.cgi/tech/1759297002/44
45: デフォルトの名無しさん [] 2025/10/05(日) 20:29:32.36 ID:knUkubLb そもそもExcelになぜPythonが導入されたかと言うと、パワークエリーで前処理、集計したデータを非公式に導入したPythonでさらに高度な集計を行う、と言う事が行われていたからです。 そう言う事が行われているくらい非常に協力な機能なのです。 JavaScriptのコードも動かせます。 http://mevius.5ch.net/test/read.cgi/tech/1759297002/45
47: デフォルトの名無しさん [] 2025/10/05(日) 22:15:43.84 ID:knUkubLb >>46 全てパワークエリーの話です http://mevius.5ch.net/test/read.cgi/tech/1759297002/47
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.020s