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