Google Sheets中如何用Arrayformula实现随排序方向变化的运行Countif?
解决方案
可以实现这个需求,直接用ARRAYFORMULA结合COUNTIFS和A1的布尔判断就能完成,公式如下:
=ARRAYFORMULA(IF(B2:B="",,IF(A1=TRUE, COUNTIFS(B2:B, B2:B, ROW(B2:B), "<="&ROW(B2:B)), COUNTIFS(B2:B, B2:B, ROW(B2:B), ">="&ROW(B2:B)) )))
公式说明
IF(B2:B="",, ...):跳过B列的空单元格,避免生成无效的计数结果- 核心逻辑通过
IF(A1=TRUE, ..., ...)分支实现:- 当A1为
TRUE时:COUNTIFS统计当前行及以上所有行中,与当前B列单元格值相同的条目数量,对应从上到下的累计计数逻辑 - 当A1为
FALSE时:COUNTIFS统计当前行及以下所有行中,与当前B列单元格值相同的条目数量,对应从下到上的累计计数逻辑
- 当A1为
这个公式会自动适配B列所有非空行,无需手动拖动填充,完全满足批量计算的需求。如果你的数据起始行不是B2,只需要对应调整公式中的行号范围即可。
内容的提问来源于stack exchange,提问作者Victor Enrich
相关产品推荐
相关产品推荐

