【发布时间】:2018-03-17 17:40:10
【问题描述】:
我是 Excel-VBA 的初学者,我需要创建一个函数来计算 几何加权平均值,给定一个值列表 (Mi) 和一个权重列表 (`威')。
Excel 公式为:EXP((SUM(Wi*LN(Mi))/(sum(Wi))
我对公式的“求和”部分有疑问。这是我到目前为止所做的:
Function GEOWAMC(Wi as Double, Mi as Double) As Double
Range("A1").Formual="Sum("& Range(Cells(2,1), Cells(2,3)).Address(False,False)&")"
GEOWAMC=((WorksheetFunction.Sum(Wi*ln(Mi))/(worksheetFunction.sum(Wi)))
End Function
【问题讨论】:
-
您不能从工作表上的 udf 设置另一个单元格的公式。
-
这是否意味着我需要创建两个不同的函数?
-
您不能从工作表上的 udf 设置另一个单元格的公式。 因此,要么将公式键入 A1,要么编写一个将公式写入 A1 的 Sub(不是函数) . fwiw,根本不清楚您为什么要尝试将公式写入 A1。
-
你能举个例子吗? (您有一些问题,但最大的问题是您的函数不会像现在这样接受多个单元格。)
-
目标是计算投资组合的几何加权平均市值。我可以有 40 只股票(例如),每只股票都占我总投资组合的一定百分比。那将是“Wi”。为了计算这一点,我们还需要每只股票的当前市值,即“Mi”。 (如果可以的话,我会附上我的 excel 表格示例,我在此博客上找不到该功能)
标签: vba excel function formula