Excel中用于聚合数据的逻辑函数

问题描述 投票:0回答:2

在MS Excel中,我正在尝试编写一个聚合函数,该函数计算满足一组要求的数据表中的条目数。

我尝试过使用AND(),OR()运算符,但即使输入数组,它们也只返回一个值。

AND(1={1,1},1={1,1}) returns TRUE, instead of {TRUE, TRUE}

我也尝试使用*作为AND和+作为OR,但由于某种原因,这是我得到的。

1={1;1}*1={1;1} returns {FALSE;FALSE} when I am expecting a {TRUE;TRUE}

但是,当我把它们放在一起时,它的工作原理除了(TRUE + TRUE)* TRUE之外,它的计算结果为FALSE而不是TRUE。这些是我在下面使用的功能及其预期结果。 (标题是第0行)

count - {sum(IF( (A1:A5=1 + B1:B5=1)*C1:C5=1 , 1, 0))} = 2
sum - {sum(IF( (A1:A5=1 + B1:B5=1)*C1:C5=1 , D1:D5, 0))} = 7
min - {min(IF( (A1:A5=1 + B1:B5=1)*C1:C5=1 , D1:D5, 9999999))} = 3
max - {max(IF( (A1:A5=1 + B1:B5=1)*C1:C5=1 , D1:D5, 0))} = 4 

A   B   C   D   
1   1   1   3   
1   0   1   4   
0   0   0   5  
0   0   1   6   
1   1   0   7   
excel-formula logical-operators
2个回答
0
投票

如果你输入数组然后它确实返回一个数组,但你需要在多个单元格中输入数组。

例如:突出显示2高2宽的范围。在公式框中放:

=(1={1,0})*(1={0;1})

然后按Ctrl-Shift-Enter。您将返回一组值:

enter image description here

通过将SUM添加到外部,我们将该数组返回到总和:

=SUM((1={1,0})*(1={0;1}))

按Ctrl-Shift-Enter键,您将获得数组或1的总和

enter image description here

如果要显示数组,必须在多个单元格中输入公式,否则显示将只是数组的左上角值。


0
投票

如果我们的数据如下:

enter image description here

所以我们想要计算A或B或两者都是1而C是1的行。

(12黄色行)

我们可以用:

=SUMPRODUCT(--((A1:A28)+(B1:B28)<>0)*(C1:C28))

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.