这是一些应该是基本的东西,但我无法弄清楚。
因此,我在 A:G 列中有信息。B:G 列中的一些单元格是空的,其他单元格则不是。
在下面的电子表格中,如果在 A:A 列中填写了条件“John”,那么如何找出区域 B:G 中有多少个单元格是非空的?
我的尝试,但没有效果:
=COUNTIFS(A:A, "John", B:G, "*")
+----+-------+---------+---------+---------+-------+-----------+--------+
| | A | B | C | D | E | F | G |
+----+-------+---------+---------+---------+-------+-----------+--------+
| 1 | John | bla | blaba | fsdfs | | sdfsdfdsf | sdfsdf |
| 2 | Bill | sfsdf | | sdfsdf | | sdfsdsd | |
| 3 | Tim | | | | | | |
| 4 | John | sdfsdf | ssdfsdf | | | sdfsdf | sdfsd |
| 5 | Rick | egerreg | g | gergerg | | g | |
| 6 | Steve | | | | ergrg | | |
| 7 | Rick | ergerg | er | gergerg | | | |
| 8 | John | | reger | | | | erge |
| 9 | Tim | | erg | | erg | | |
| 10 | Rick | ergerg | | | | ergerg | erge |
+----+-------+---------+---------+---------+-------+-----------+--------+
答案1
你说得对。是相当基础。你可以这样做:
=SUMPRODUCT((A1:A10="John")*(NOT(ISBLANK((B1:G10)))))
或者
{=SUM((A1:A10="John")*(NOT(ISBLANK((B1:G10)))))}
当然,第二个公式是数组输入的。
请注意,虽然使用整列时公式仍然有效,但不建议这样做,因为公式将需要很长时间来计算。
答案2
根据Microsoft Office 帮助中心关于COUNTIFS
:
重要提示:每个附加范围必须具有与criteria_range1参数相同的行数和列数。范围不必彼此相邻。
这就是您失败的原因COUNTIFS
:该参数B:G
的列数与第一个参数的列数不一样A:A
。
实现此目的的一种方法是使用SUMPRODUCT
,它没有此大小限制。
您可以按照 RobinCTS 的建议使用以下公式:
=SUMPRODUCT((A1:A6="John")*(NOT(ISBLANK(B1:E6))))
然而,如果单元格有内部0
,它就不会被视为空的。
Robin 的答案的另一种解决方案是利用这样一个事实:在测试这些条件时,空单元格和包含的单元格0
都会返回:和。TRUE
<>0
<>""
=SUMPRODUCT((A1:A6="John")*(B1:E6<>0))
=SUMPRODUCT((A1:A6="John")*(B1:E6<>""))
根据您的需要以及工作簿中包含的数据类型,这两种解决方案之一应该可以起作用。
下面的例子说明了这一点: