Excel公式中基于数组的数学运算

时间:2014-01-02 21:29:31

标签: vb.net excel excel-vba excel-formula vba

我正在解决一个问题,我希望能够总计用户所做的正确选择的数量。每个选择的权重都不同。

在excel中,我有一行数据点,每行包含正确的答案,下面是每个受访者的数据,这样他们对第一个问题的选择与第一个问题的键位于同一列。

在行的最后,我希望包括获得的积分数,因此如果受访者单元格与提供的单元格匹配,我会检查整行,如果是,请添加适当数量的点。< / p>

不幸的是我无法想象一种方法只使用公式(没有宏或自定义函数,因为我正在以编程方式生成excel文件)并且使用了大量字符串“... + IF(C16 = C8, 1,0)+ IF(D16 = D8,5,0)+ ...“

有没有人有任何想法?

1 个答案:

答案 0 :(得分:3)

你在工作表中有分数[权重]吗?如果它们在第9行,例如尝试使用SUMPRODUCT这样的

=SUMPRODUCT((C16:Z16=C$8:Z$8)+0,C$9:Z$9)

如果你想将分数直接放在公式中,你就可以这样做

=SUMPRODUCT((C16:Z16=C$8:Z$8)+0,{1,5,2,3,4,5,6,7,1,2,3,4,5,6,1,2,3,4,2,3,4,4,7,1})

假设数据到Z列,根据需要调整公式。如果您在答案行中可能有空白,则可以通过使用此版本来避免评分为正确:

=SUMPRODUCT((C16:Z16=C$8:Z$8)*(C$8:Z$8<>""),C$9:Z$9)