按查找属性统计项目数:Excel任务表未完成阻塞任务计数公式问题求助
解决Excel任务阻塞项未完成数量统计问题
我明白你在整理房屋修缮任务清单时遇到的这个麻烦——统计每个任务未完成的阻塞项数量确实容易踩数组公式的坑。咱们一步步来解决:
问题根源
你之前的数组公式失效的核心原因有两个:
- 旧版Excel中,
INDEX结合数组形式的MATCH结果时,无法自动遍历所有匹配位置,只会返回第一个结果; - 空的
Blockers列单元格会让MATCH返回错误值,干扰求和计算。
针对不同Excel版本的解决方案
1. Excel 365/2021(推荐,无需数组快捷键)
用XLOOKUP+SUMPRODUCT的组合,动态数组会自动处理每个阻塞项的查找,还能忽略空单元格:
=SUMPRODUCT(--(XLOOKUP(Task[@[Blockers1]:[Blockers5]], [Title], [Done?], "")="No"), --(NOT(ISBLANK(Task[@[Blockers1]:[Blockers5]]))))
XLOOKUP:对每个Blockers列的值,查找对应任务的Done?状态,找不到(空单元格)返回空字符串;--(...):将布尔值转成1/0,方便求和;- 第二个
--(NOT(ISBLANK(...))):排除空的阻塞项,避免统计无效值。
2. 旧版Excel(需按Ctrl+Shift+Enter确认数组公式)
如果你的Excel不支持动态数组,用带错误处理的数组公式:
=SUM(IF(NOT(ISBLANK(Task[@[Blockers1]:[Blockers5]])), IF(INDEX([Done?], MATCH(Task[@[Blockers1]:[Blockers5]], [Title], 0))="No", 1, 0), 0))
输入完公式后,必须按Ctrl+Shift+Enter(不能只按Enter),Excel会自动在公式前后加上{},表示这是数组公式。
验证方法
你可以找一个测试任务:
- 给它设置2个未完成(Done?为"No")的阻塞项,公式应返回2;
- 把其中一个阻塞项的Done?改成"Yes",公式应返回1;
- 清空一个阻塞项单元格,公式不会把它计入统计。
内容的提问来源于stack exchange,提问作者High Plains Grifter
相关产品推荐
相关产品推荐

