投资组合优化和矩阵乘法的MMULT没有给我正确的答案

时间:2018-02-09 02:54:59

标签: excel excel-formula

我在Excel中有两个向量要执行矩阵复制: enter image description here

我想计算投资组合收益率,应该是(30%* 3%)+(20%* 2%)+(50%* 1%)= 1.8%

我进行了MMULT(TRANSPOSE(A2:C2),A5:C5),它给出了0.60%。我做错了什么????

2 个答案:

答案 0 :(得分:4)

我认为你需要SUMPRODUCT,而不是MMULT。

=SUMPRODUCT(A2:C2, A4:C4)

答案 1 :(得分:1)

我同意@ Jeeped的回答,SUMPRODUCT最好在这里使用。

提供更多信息:

MMULT(TRANSPOSE(A2:C2),A5:C5)以数学方式执行以下操作:

[0.3]                            [0.009  0.006  0.003]
[0.2]  *  [0.03  0.02  0.01]  =  [0.006  0.004  0.002]
[0.5]                            [0.015  0.010  0.005]

通常,如果公式返回数组,则仅在左上角的列中显示的值仅显示在单元格中。 (在这种情况下,它会0.9%,因为0.009的格式为百分比。)

但是,在这种情况下,只有在将公式作为数组公式输入时才会返回0.9%(按 Ctrl + Shift < / kbd> + 输入而不是 Enter )。我发现当TRANSPOSE是非数组公式的一部分时,0.6%行为非常奇怪,这解释了您看到TRANSPOSE的错误结果。

当然,这个矩阵结果甚至不是你想要的,因为你只需要一个结果。实际上,您需要将MMULT放在MMULT(A2:C2,TRANSPOSE(A5:C5))的第二个参数中,而不是第一个参数。

[0.03] [0.3 0.2 0.5] * [0.02] = [0.018] [0.01] 以数学方式执行以下操作:

MMULT(A2:C2,TRANSPOSE(A5:C5))

这就是你想要的。

同样,为了实际获得此结果,您必须输入{{1}}作为数组公式。