Office 365 Excel公式实现:按ID区块去重统计非空单元格
用Excel Office 365公式实现连续ID区块的非空/X单次计数统计
针对你描述的需求(连续ID区块内只要有非空或"X"就计1次,最终统计符合条件的区块总数),可以用Office 365的动态数组函数实现,无需VBA:
核心公式(统计非空单元格)
假设ID列是A列(表头A1,数据从A2开始),data列是B列,公式如下:
=SUM(--BYROW(UNIQUE(A2:A100, TRUE), LAMBDA(x, COUNTIFS(A:A, x, B:B, "<>")>0)))
公式解释
UNIQUE(A2:A100, TRUE):提取连续重复ID的唯一值,每个连续区块对应一个唯一ID(比如12,12,2,2会提取出12和2)BYROW(..., LAMBDA(x, ...)):遍历每个提取出的ID,对每个IDx,用COUNTIFS统计该ID对应的B列非空单元格数量,判断是否大于0(即该区块至少有一个非空值)--:将逻辑值TRUE/FALSE转换为数值1/0SUM:将所有符合条件的区块计数(1)相加,得到最终结果
统计"X"的变体公式
如果只需要统计data列中包含"X"的区块,把COUNTIFS里的B:B, "<>"替换为B:B, "X"即可:
=SUM(--BYROW(UNIQUE(A2:A100, TRUE), LAMBDA(x, COUNTIFS(A:A, x, B:B, "X")>0)))
示例验证
- 原数据:ID1区块有1个X,ID2区块无X,ID3区块有1个X → 公式结果为2
- ID2区块新增1个X → 公式结果为3
- 所有区块都设为X → 公式结果仍为3(每个区块只计1次)
内容的提问来源于stack exchange,提问作者Kez
相关产品推荐
相关产品推荐

