Excel 投资组合优化和矩阵乘法的MMULT没有给我正确的答案
我在Excel中有两个向量要执行矩阵多应用: 我想计算投资组合回报率,应该是(30%*3%)+(20%*2%)+(50%*1%)=1.8%Excel 投资组合优化和矩阵乘法的MMULT没有给我正确的答案,excel,excel-formula,Excel,Excel Formula,我在Excel中有两个向量要执行矩阵多应用: 我想计算投资组合回报率,应该是(30%*3%)+(20%*2%)+(50%*1%)=1.8% 我执行了MMULT(转置(A2:C2),A5:C5),它给了我0.60%。我做错什么了吗???我想你需要的是产品,而不是结果 =SUMPRODUCT(A2:C2, A4:C4) 我认为你需要的是产品,而不是结果 =SUMPRODUCT(A2:C2, A4:C4) 我同意@Jeeped的回答,这里使用SUMPRODUCT更好 只需提供更多信息: MMUL
我执行了MMULT(转置(A2:C2),A5:C5),它给了我0.60%。我做错什么了吗???我想你需要的是产品,而不是结果
=SUMPRODUCT(A2:C2, A4:C4)
我认为你需要的是产品,而不是结果
=SUMPRODUCT(A2:C2, A4:C4)
我同意@Jeeped的回答,这里使用
SUMPRODUCT
更好
只需提供更多信息:
MMULT(转置(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.03]
[0.3 0.2 0.5] * [0.02] = [0.018]
[0.01]
通常,如果公式返回数组,则单元格中仅显示最左上方列中的值。(在这种情况下,它将是0.9%
,因为0.009
的格式是百分比)
但是,在这种情况下,只有将公式作为数组公式输入时才会返回0.9%
(按Ctrl+Shift+Enter键,而不是按Enter键)。我发现TRANSPOSE
作为非数组公式的一部分时,其行为非常奇怪,这解释了为什么您看到0.6%
的结果不正确
当然,这个矩阵结果根本不是你想要的,因为你只想要一个结果。实际上,TRANSPOSE
必须位于MMULT
的第二个参数中,而不是第一个参数中
MMULT(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.03]
[0.3 0.2 0.5] * [0.02] = [0.018]
[0.01]
这就是你想要的
同样,为了实际得到这个结果,您必须输入
MMULT(A2:C2,转置(A5:C5))
作为数组公式。我同意@Jeeped的回答,即SUMPRODUCT
在这里使用更好
只需提供更多信息:
MMULT(转置(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.03]
[0.3 0.2 0.5] * [0.02] = [0.018]
[0.01]
通常,如果公式返回数组,则单元格中仅显示最左上方列中的值。(在这种情况下,它将是0.9%
,因为0.009
的格式是百分比)
但是,在这种情况下,只有将公式作为数组公式输入时才会返回0.9%
(按Ctrl+Shift+Enter键,而不是按Enter键)。我发现TRANSPOSE
作为非数组公式的一部分时,其行为非常奇怪,这解释了为什么您看到0.6%
的结果不正确
当然,这个矩阵结果根本不是你想要的,因为你只想要一个结果。实际上,TRANSPOSE
必须位于MMULT
的第二个参数中,而不是第一个参数中
MMULT(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.03]
[0.3 0.2 0.5] * [0.02] = [0.018]
[0.01]
这就是你想要的
同样,为了实际得到这个结果,您必须输入
MMULT(A2:C2,转置(A5:C5))
作为数组公式。是否可以使用MMULT?这不是相同的数学运算。通过公式、公式审核、计算公式查看差异。有趣的是,MMULT只会给出列B中引用的结果。因此,它不仅是错误的数学,而且调用了隐式求交@如果将公式作为数组公式输入,则无论公式位于何处,chrisneilsenMMULT
都将给出相同的结果。您在不同位置看到公式的不同结果的原因是因为转置
,如果公式不是作为数组公式输入的,我发现它的行为非常奇怪(而且不正确)。@不,我从来没有说过OP使用数组公式时的任何内容(正如您回答的那样),它返回一个数组。由于隐式相交位于源的第二列,OP得到了向量=0.6%的最高结果。所有这些都与Q无关,只是解释一下OP为什么会得到答案。转置的行为是完全可预测的。是否可以使用MMULT进行转置?这不是相同的数学运算。通过公式、公式审核、计算公式查看差异。有趣的是,MMULT只会给出列B中引用的结果。因此,它不仅是错误的数学,而且调用了隐式求交@如果将公式作为数组公式输入,则无论公式位于何处,chrisneilsenMMULT
都将给出相同的结果。您在不同位置看到公式的不同结果的原因是因为转置
,如果公式不是作为数组公式输入的,我发现它的行为非常奇怪(而且不正确)。@不,我从来没有说过OP使用数组公式时的任何内容(正如您回答的那样),它返回一个数组。由于隐式相交位于源的第二列,OP得到了向量=0.6%的最高结果。所有这些都与Q无关,只是解释一下OP为什么会得到答案。转置的行为是完整的predictable@JunJang不客气。请接受其中一个正确答案。@JunJang不客气。请接受其中一个正确答案。