Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel countif条件引用要计数的范围的位置?_Excel_Countif - Fatal编程技术网

Excel countif条件引用要计数的范围的位置?

Excel countif条件引用要计数的范围的位置?,excel,countif,Excel,Countif,我有一个excel电子表格,有三列(C、D、E):R、G、B 每列中都有一个从0到255的值。每组三个值(每行)代表一种颜色。灰色阴影由具有相同值的所有三列(对于给定行)标识。共有554行(并不是说这会对解决方案产生影响) 在不添加额外列的情况下,是否有方法使用countif()计算范围(C:E)中的灰色阴影 我已经尝试了许多变体(基于SE上不同问题的解决方案),但没有一种是有效的: =COUNTIF(C:E,AND(C:C=D:D,D:D=E:E)) =COUNTIF(C:E,AND(OFF

我有一个excel电子表格,有三列(C、D、E):R、G、B

每列中都有一个从0到255的值。每组三个值(每行)代表一种颜色。灰色阴影由具有相同值的所有三列(对于给定行)标识。共有554行(并不是说这会对解决方案产生影响)

在不添加额外列的情况下,是否有方法使用
countif()
计算范围(C:E)中的灰色阴影

我已经尝试了许多变体(基于SE上不同问题的解决方案),但没有一种是有效的:

=COUNTIF(C:E,AND(C:C=D:D,D:D=E:E))

=COUNTIF(C:E,AND(OFFSET(C:E,0,0,1,1)=OFFSET(C:E,0,1,1,1),OFFSET(C:E,0,0,1,1)=OFFSET(C:E,0,2,1,1)))

=COUNTIF(C:E,AND(INDEX(C:C,ROW())=INDEX(D:D,ROW()),INDEX(D:D,ROW())=INDEX(E:E,ROW())))

我相信一定会有一个解决办法——我只是还没发现而已。任何想法都将不胜感激。如果
countif()
使用的函数不正确,那么我显然愿意接受其他建议

那么,您可以使用
SUMPRODUCT

=SUMPRODUCT((C2:C555=D2:D555)*(C2:C555=E2:E555))
C2:C555=D2:D555
检查
C2:C555
中的每个单元格是否等于
D2:D555
中的对应单元格,并返回
TRUE
和/或
FALSE
的数组

C2:C555=E2:E555
执行相同的操作,但使用C列和E列

TRUE
FALSE
值相乘得到一个1和0的数组(另一个数组),其中只有
TRUE*TRUE
得到1


SUMPRODUCT
然后对每个1和0求和。您可以改为使用
SUM
,但它需要输入数组公式(即按Ctrl+Shift+Enter键才能正常工作)。

这非常好。我非常感谢你的解释。现在我只需要想一想如何避免限制范围(即-c:c而不是c2:c555),但从所有意图和目的来看,这就是我所寻找的。为了防止有人感兴趣,我扩大了@Jerry给出的解决方案,以解决范围未知的情况=SUMPRODUCT((不是(C:C=”“)*(C:C=D:D)*(D:D=E:E))@PeterAbolins啊,是的,如果您有空格,它们也将被视为“跨列的相同值”。SUMPRODUCT的唯一问题是,它的功能非常昂贵,并且在范围非常大时会影响性能。