Excel VBA 質問スレ Part81
>>1 乙
Excelの「データ モデル」って、Accessから読めたっけ?
Accessでデータ解析する気は起きなかったので、やったことない。
DBにしているExcelのBook内「データ モデル」の中身は、
他のExcel Bookからですら参照できない。
ワークシートに読み込んだクエリー、テーブルなら他Bookから参照できるけど、
104万行まで。
なので、「データ モデル」は自Book内で分析するとかの利用に限られるのでは?
Excelの「データ モデル」は、
・ワークシート表示上限の104万行以上格納できる。
・複数のテーブルを、キーとなる項目を使ってリレーションシップで紐付けられる。 >>5
excelのデータモデルと言ってもDBでは当たり前のリレーションと変わらないと思う
もちろんAccessでもリレーション指定できる
>ワークシート表示上限の104万行以上格納できる
それは外部のAccessテーブル等に格納されてるレコード数がそうであるだけですね
その外部のレコードを参照するだけならいいけど、追加、更新しようとするとスゲー面倒かと
Access上で作れば追加、更新、削除に対応したフォームも簡単に作れる
これらの操作に当たり前にトランザクションも使える
やらなくてもいい苦労をしてるだけかと
DBに相応しいことはDBで、excelに相応しいことはそちらで、美味しいとこをそれぞれ使えばいい >>7
いちいち見に行くの面倒なんで、必要な分まとめて貼り直して(ついでに過不足修正とか)くれても私は怒りません
QとAもこのスレに纏まると思いますし
(私が答えられるとは言ってない) 昔のファイルのコードを見ているとWorksheet(BASE_SHEET_1)って記述があるけど
BACE_SHEET_1って名前のシートはない
動かしてみるとSheet1を参照している
昔はこういう書き方してたの? ごめん、全体を読んだら
Public Constで使われてました >>7
(寝る前に少し。分析機器のやつかわからんのだけど)
現状やってるのは、例えば前日分の分析データのみを取り出してそれぞれ振り分けて保存する
だけに見える。これだけだとスゲーシステムにはなり得ない、なりようがない
例えば飲料メーカーで飲料別に分析した値のデータで何かできないか、とか
別の見方として分析機器の故障の予兆を予想したいとか
このような具体的に想像しやすい代替要素にも絡めてほしい
ジュースやミルクとかのような多くのメーカーあるならそのものズバリで構わない
どこでも必ずやってるから
今の情報だけだと、助言できても大したことにはならないかと 「分析」となったら、
1. まず、時間軸とか商品別とかでの実績グラフ(累積、最大/最小、平均、中央値程度の基本的な統計的数値も含む)
2. 商品や地区とか時間単位での比較グラフ
3. 外の要因を探るための、天候や人口、交通量などのデータとのリレーション
4. 傾向をみるための、ヒストグラムやアウトプットの高い順に並べ替えた持続曲線グラフ
5. 外れ値を検出するために1.に重ね合わせる、箱ひげ図や標準偏差±σ、±2σ、±3σのレンジグラフ
6. 仮説の「要因」とアウトプットの関係を見る相関グラフ
7. 相関の強さを見たり、シミュレーションや将来を予測するための回帰分析
・・・思いつくだけでこんな感じか >>9
BASE_SHEET_1 と BACE_SHEET_1 は違うぞ >>13
素晴らしい
5などは一般的ではないがハマるとこではすごい役立つ
半バレするので置き換えて例示すると
ノイズにしか見えない平時の地震系の秒単位の数値推移を箱ひげ図にすると、昨日と今日のざっくり差が見い出せたりすることもある
これ導入して楽になったし品質も上がったしでメチャ役に立った 箱ひげ図は、データを何かに活かす意味では、
もっと使われて良いと思う。
Visualize statistics with Histogram, Pareto and Box and Whisker charts
https://www.microsoft.com/en-us/microsoft-365/blog/2015/08/18/visualize-statistics-with-histogram-pareto-and-box-and-whisker-charts/
("How statistics are used in Box and Whisker"のくだり。自動翻訳でも充分わかる)
統計実務におけるレンジチェックのための外れ値検出方法
https://www.stat.go.jp/training/2kenkyu/ihou/72/pdf/2-2-723.pdf
箱ひげ図はExcelグラフのナビゲート頼りに作るより、
ワークシート関数で中央値、四分位範囲を出せるから、
手が込んでも差分を取って、積み上げ棒グラフで作った方が
後々で色々弄れる。
(ひげの部分:エラーバーはExcelの箱ひげ図機能を使うけど)
Excelによる箱ひげ図の作り方(棒グラフ編)
https://bellcurve.jp/statistics/blog/15348.html
応用で、中央値と四分位範囲から平均値と標準偏差±σに変更することもできるが、
グラフナビゲートでは、±2σ、±3σの設定はできなかったような・・・ また、系列が255個までしか設定出来ないのは、
Excelの泣き所。
ヒストグラムや散布図といった統計グラフを
集計が速くて期間変更などのフィルタリングが簡単な
ピボットテーブルからは作れないのも。
例えば日最高気温を月系列でプロットしても、
255ヶ月分=21年とちょっとしか載せられない。
AccessやVBAは、あくまでデータを揃えるところまで。
何だったらPowerQueryと組み合わせても。
が、ここまで脱線・・・というか深掘りしようとすると、
いよいよPythonやRの出番かも?
と思ってる。 >>17
標準偏差はその言葉時点で拒否反応かもしれんけど、一部で増えてる投資のボリンジャーバンドってとこから入っていける人もいると思う
これ最初見たときは微妙だったけど、解説見てなるほどって活用してる
言葉でなくて何かしら色々サンプル見てたら閃くこともある 標準偏差って「偏差値」に繋がって、拒否反応示すかもしれないけれど、
何のことはない、「平均値からどのくらい離れているかの『平均』」みたいなもの。
ただ、離れている距離を計測するのに、
引き算の順番で正負数に分かれてしまうので、差を二乗にしたり、
その平均もどきを出すために平方根にしたりしている。
ミソは、ある事象が仮に「左右対称のきれいな山なり」の正規分布で起こっているとしたら、
・±σの範囲は68.3%
・±2σの範囲は95.4%
・±3σの範囲は99.7%
が収まるということ。
箱ひげ図の外れ値判定は、
ジョン・テューキーとかいうおっちゃんが前世紀に考えた、
"Tukey industry standard"がベースらしく、
中央値をベースに実績の順位で25~75%の範囲の1.5倍で足切りするので、
リクツが全く違う模様。
1.5倍をいろいろ弄るケースもある。
ただし、物事が起こる事象は「きれいな山なり」になるとは限らない。
例えば、年間での「風速」の分布は、無風の頻度が圧倒的に多くて
正規分布とは別の確率分布モデル(ワイブル分布だったか?)が必要らしい。 前スレからの俺だけどこの流れはうーん違うね
VBAでそんな分析だの統計データから算出だのしたいわけじゃないのよね
そんなものは分析機器がやっててそれを終えたデータを出すの
ぶわーっとそのデータを振り分けたいのよ
excelで計算は特にさせなくてよいのさ 桁の制御をFormat関数であとは平均を出す事くらいかなさせるのは
データをどう分岐させて振り分けるかで悩んでる
野望だけはかーなりでかいけどまだ勉強して覚えんといかん
あとパワークエリも脳から削除した
VBAだけで確実に出来るしやる VB6みたいにフォーム何枚も使ってると、ときどき実行中にフォームが行方不明になるな さてかーなりでかい野望に向けて土日で少し構想練るか
AIに代わる時代がはよきて欲しいわ
ユーザーフォームをいかにカッコ良く使いやすく作るかが真骨頂だよな >>25
まだ野望とか勘違いしてんのかよ
進歩すること拒絶したんだから、振り分け程度の初心者システムでつつましくIT土方しときなさい
それがあなたに相応しい ちよっと構想がまとまったかな
とりあえずざっくり叩き台作ってくか
別件で動画編集もせなあかんけどVBAのが道のりが遠い
早くAIが進化して仕事を楽にしてほしいもんよ 例の日本語ワープロが使えることが自慢だった零細企業の馬鹿かな そんなのが未だにいるんだな
転職も選択肢に入れるといいぞ
かなり面白い夢をこっそり企んでたけど構想が現実味を帯びてきたわ
こりゃパワークエリ不要だった >>28
自己承認欲求が強いだけの無能な老害は消えろや 仕事さきからもらったエクセルファイルに
=_txc2(D3)
みたいな文字列計算するぽい関数入ってたんだけどマクロファイルついてきてなかったんで
似たようなマクロ_txc2()を作ろうとしたんだけど_始まりの命名できなくて詰みました
この_はなんなんですか アドインとかかな…
VBEでF2、オブジェクトブラウザで検索したらどうだろ 「名前の管理」で定義されてない?
Lambda関数て作ってる可能性が。 >>32
VBAでなければ前にアンダーバーが付いているのはスコープがモジュール内の変数を指すことが多いよ。
VBAの場合、変数宣言の接頭にアンダーバーを付けるとコンパイルエラーになるので、自分の場合はアンダーバーの前にモジュールを表す意味で「m」をくっつけてる。 VB(VBA)の慣習では、アンダーバー始まりは非表示のメンバー
オブジェクトブラウザで非表示のメンバ表示させると結構ある
ただ、VBAでは定義できないっぽいな