关于根据条件对单元格进行计数有很多问题,但我无法找到一种方法来在当前行中另一列中的值小于/大于当前单元格时对单元格进行计数。示例:
A 列(下方)中有多少个单元格具有非空值并且该值小于 B 列同一行中的值?
A B
-- --
6
2 1
3* 6
2
4* 6
4 1
答案应该是 2,也就是我以星号添加的两个(数据中通常没有星号)。
我想要使用的是:
=COUNTIFS(A1:A6,"<>",A1:A6,"<"&cell in column B for whatever row Excel is currently looking at)
…但你不能这么做。有什么想法吗,最好避免使用 VBA?
注意:如果有解决方案,理想情况下,在引用 Excel 表中的列名时它仍然有效。使用诸如偏移之类的东西很容易导致将来的错误。
答案1
为了避免添加计数器列,我认为您可以使用 SUMPRODUCT 公式:
=SUMPRODUCT((A1:A6<>"")*(A1:A6<B1:B6))
答案2
我并不想构建连接比较符号的复杂公式,而是更喜欢在 C 列中创建一个结果为 0 或 1 的公式。然后只需SUM
在此列上进行操作即可。
在您的示例中:
C1 = IF(AND($A1<>"",$A1<$B1),1,0)
那么你的答案将是SUM($C:$C)