- ベストアンサー
Excel VBAで加重平均を計算したい!
こんにちは。VBA初心者なのですが、加重平均のプログラミングの仕方が分からず困っています。 例えば、下の表で、最後の行まで計算する場合、どのようにプログラムするのでしょうか? (何百行もあり、膨大な計算になると仮定します。) A B C 1 5,000 100 ___ ←C1に加重平均値 2 3,000 200 3 2,000 400 4 : : 5 : : かなり困っているので、どなたか助けてください・・・ よろしくお願いしますm(_ _)m
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
下記でどうでしょうか。 Dim rngA As String Dim rngB As String rngA = Range("A1", Cells(Rows.Count, 1).End(xlUp)).Address rngB = Range(rngA).Offset(, 1).Address Range("C1").Formula = "=SUMPRODUCT(" & rngA & "," & rngB & ")/SUM(" & rngB & ")" あるいは Dim rngA As Range Dim rngB As Range Set rngA = Range("A2", Cells(Rows.Count, 1).End(xlUp)) Set rngB = rngA.Offset(, 1) With WorksheetFunction Range("C3").Value = .SumProduct(rngA, rngB) / .Sum(rngB) End With
その他の回答 (1)
- bin-chan
- ベストアンサー率33% (1403/4213)
一列を計算用に設けてはいけませんか?列Dを計算用に使用します。 1)セルD1に式[=A1*B1]を入力。 2)セルD1を「コピー」(だけ) 3)Ctrl+Shift+Endキーを押下。 4)「貼り付け」 5)セルC1に式[=IF(SUM(B:B)=0,"",SUM(D:D)/SUM(B:B))]を入力。
お礼
早々のご回答ありがとうございます。 お答えいただいた通り、セル計算でも十分計算可能なのですが、 VBAを使って加重平均をプログラミングしたいんです・・・ もし、おわかりでしたら教えてくださいm(_ _)m
お礼
無事に解決できました! xls88さん、どうもありがとうございます!m(_ _)m