Excel需求:仅当相邻单元格含数字时统计唯一单元格数量
解决Excel中带条件的唯一值统计问题
刚好碰到过类似的需求,咱们一步步来搞定它:你要统计A列的唯一值数量,但只有当这个值对应的相邻单元格(我默认是B列,要是你的列不一样,直接替换成对应列就行)里有数字时,才把这个唯一值算进去。
核心公式(分Excel版本)
适用于Excel 365/2021及以后版本(支持动态数组)
直接输入下面的公式,按回车就行:=SUM(--(UNIQUE(FILTER(A1:A25, ISNUMBER(B1:B25)))<>""))
适用于Excel 2019及更早版本(需要数组公式)
输入公式后,**必须按Ctrl+Shift+Enter**来触发数组运算:{=SUM(IF(FREQUENCY(IF(ISNUMBER(B1:B25), MATCH(A1:A25, A1:A25, 0)), ROW(A1:A25)-ROW(A1)+1), 1))}
公式拆解(理解了才好灵活调整)
咱们唠唠这些公式为啥管用:
ISNUMBER(B1:B25):先筛出B列里是数字的行,返回一组TRUE/FALSE的数组- 动态数组版本逻辑:用
FILTER只保留B列是数字的A单元格值,再用UNIQUE提取里面的唯一值,最后用SUM统计数量(--是把文本转成可计算的数值) - 旧版数组公式逻辑:用
MATCH找出A列每个值第一次出现的行号,结合IF只保留B列是数字的行号,再用FREQUENCY统计这些行号的出现次数——每个唯一行号对应一个唯一的A值,最后SUM所有1就得到符合条件的数量
举个例子验证
比如你的数据是:
| A列 | B列 |
|---|---|
| VC1 | 5 |
| VC1 | 4 |
| VC2 | (空) |
| VC3 | 7 |
| VC3 | (空) |
| VC5 | 9 |
用上面的公式会返回3,刚好是符合条件的VC1、VC3、VC5这三个唯一值,完美匹配你的需求!
替换小贴士
- 要是你的相邻列不是B列,比如是C列,就把公式里的
B1:B25换成C1:C25 - 数据范围不是A1:A25?直接改成你实际的单元格范围就行,比如
A2:A100
内容的提问来源于stack exchange,提问作者Sean Kilburn
相关产品推荐
相关产品推荐

