B*******e 发帖数: 3882 | 1 偶是现学现卖, 应该是酱紫.
数据从第一行开始
第一列是gdp, 第二列是需要算的值, 结果存到第三列
假设每一worrksheet 是一年的.
其他格式相应改一下就可以了
把nCountry 改成实际的国家值
Sub gdp1()
'
' gdp1 Macro
' Macro recorded 3/19/2003 by Backyard
'
' Keyboard Shortcut: Ctrl+e
'
Dim nCountry As Integer
nCountry = 8
Dim gdpSum As Double
gdpSum = 0
Dim i As Integer, j As Integer
i = 1
j = 1
Do While (i <= nCountry)
gdpSum = gdpSum + Cells(i, 1)
i = i + 1
Loop
Cells(nCountry + 2, 1) = gdpSum
Dim wSum As Double
wSum = 0
i = 1 | t******g 发帖数: 10390 | 2 看看我理解你的问题对不对.
我先求和A列的gdp总值,在An+1格写=sum(A1:An)
然后在C列求出权数,Cm=Am/An+1
然后在D列算B列加权后的数值,Dm=Bm*Cm
在求和Dn+1=SUM(D1:Dn)
在E列这么算Em=(Dn+1-Dm)/(n-1),
如果我理解的加权平均不错的话,E列就应该是你要的结果.
要知道,你是可以填完第一个,然后复制到一下同列的格里的.
例如,你在C1格里填了=A1/250
然后你复制到下面一格A2里,就自动变成=A2/250
或者你利用excel的自动填写功能. |
|