在一个范围内具有多个条件的求和

时间:2018-10-05 11:05:03

标签: excel excel-formula

在数据集中,我有调查参与者给出的答案。在一个示例中,答案的编号为1到5,其中1表示是,而2到5表示否。

有人问了20个左右类似的问题,参与者可以属于20个子组之一。问题分为6类。

现在处理此类数据集的最佳方法通常是使用数据透视表,但是数据集的设置方法不适用于数据透视表,并且由于数据集的绝对大小重塑效率不高。

要提取某个子组中某类问题的回答为“是”的人数,我使用以下函数:

=SuMPRODUCT(--(Test!D$4:$CC$1824=1)*(Test!$C$4:$C$1824=$C3)*(Test!$D$3:$CC$3=D$2))

其中Test!D$4:$CC$1824是给出答案的范围,其他两个分别是子组和类的范围。

通过使用--(Test!D$4:$CC$1824=1),我将所有数据都转换为0,除非参与者回答是(单元格值= 1)。

现在,我想对他们回答“否”的地方做同样的事情,所以值是2或3或4或5。理想的方法是将一些OR逻辑附加到第一个测试中,结果是这个:--(Test!D$4:$CC$1824={2,3,4,5})

这当然是行不通的,但是除了将第一部分重新键入4次并将它们加在一起之外,还有什么简单的记法吗?

2 个答案:

答案 0 :(得分:3)

我想您可以只使用>1代替=1

对于选定的结果(例如1、3和5),您可能需要添加每个数字的总和。

旁注:--不再是必需的,因为只有一个括号时,它仅用于将truefalse转换为10sumproduct

答案 1 :(得分:2)

可以通过将所有可能性加在一起来模仿OR操作。

=SuMPRODUCT(((Test!D$4:$CC$1824=2)+(Test!D$4:$CC$1824=3)+(Test!D$4:$CC$1824=4)+(Test!D$4:$CC$1824=5))*
            (Test!$C$4:$C$1824=$C3)*(Test!$D$3:$CC$3=D$2))

如果有可能两个是正确的(在这种情况下没有),则将总和包装在SIGN函数中,以获得零或一。

=SuMPRODUCT(SIGN((Test!D$4:$CC$1824=2)+(Test!D$4:$CC$1824=3)+(Test!D$4:$CC$1824=4)+(Test!D$4:$CC$1824=5))*
            (Test!$C$4:$C$1824=$C3)*(Test!$D$3:$CC$3=D$2))