Excel Dynamic sumproduct

时间:2016-12-30 12:15:15

标签: excel excel-vba vba

我为m和n创建了一个形式(a_11,..,a_1n,...,a_m1 ...,a_mn)的向量(值范围),它们是从另一个工作表和一个概率向量输入的(P_1,...,P_N)。在另一张表中,我现在有不同的子集1,..,m作为输入,所以例如我有字符串“1,3,4”。我现在想计算这个字符串

a_11*a_31*a_41*p_1+a_12*a_32*a_42*p_2+...+a_1n* a_3n* a_4n*p_n 

(基本上是矢量(a_11,...,a_1n),(a_31,...,a_3n),(a_41,...,a_4n)和(p_1,...,p_n)的产品< / p>

由于字符串“1,3,4”每次都不同(也是长度)我想动态地这样做但不使用VBA。我已经通过双循环在VBA中成功完成了它,但我想使用解算器,所以我想在参考条目的工作表中实现它。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

我建议保持简单,只需将 i,j 复制到另一张表,将它们设置为一行,而不是想要进行乘法运算。所以,如果您的Sheet1看起来像这样

enter image description here

在Sheet2中使用此公式

=IF(ISNUMBER(FIND(","&ROWS(A$2:A2)&",",","&$E$2&",")),Sheet1!A2,1)

并且只需在每列上使用PRODUCT进行乘法运算即可

enter image description here

产品也可以用单一公式计算为

=SUMPRODUCT(SUBTOTAL(6,OFFSET(A1,1,COLUMN(A2:C5)-COLUMN(A:A),ROWS(A2:C5),1)),Sheet1!A8:C8)

如果愿意的话。