我想在一列中找到所有相同的名称,然后针对同一行中的单元格范围对该名称的每个实例执行 COUNTA。
我尝试过使用 IF,但它不接受 COUNTA。
如果有必要,我很乐意重新组织表格并分步进行。如果需要,我可以做一些 VBA 就好了。
答案1
您正在寻找扩展的 COUNTAIF(范围、条件、[计数范围]),类似于 SUMIF。不幸的是,它不存在,所以我们必须创建它!
假设列 A 包含姓名,列 B 是您想要计算的值(如果不为空),用于 A 中每组姓名。我假设您有 1000 行,包括第 1 行中的标题。在列 C 中创建:
=NOT(ISBLANK(B2:B1000))+0
然后在 D 栏:
=SUMIF($A$2:$A$1000, A2, $C$2:$C$1000)
编辑:一体化解决方案:如果您想在没有辅助列的情况下执行此操作,请尝试以下数组公式(使用 ctrl+shift+enter(CSE)键入并提交)。
=SUM(BITAND(($A$2:$A$1000=A2),NOT(ISBLANK($B$2:$B$1000)))+0)
您需要使用 CSE 来告诉 Excel 将公式参数视为数组,而不仅仅是标量单单元格数字。普通 AND 不适用于数组,因此 BITAND 是您的好朋友。BITAND 的参数会评估您的条件并生成两个布尔数组,这两个数组逐行进行 AND 运算。“+0”将生成的布尔数组转换为仅包含 0 和 1 的数字数组,这些数字可以相加得到单个标量值。