Google Sheets:如何用ArrayFormula实现批量自动扩展的唯一值计数?
解决方案
你需要按A列每行的值分组,统计对应分组内符合格式要求的E&F唯一组合数,用单个公式覆盖B8:B1000。直接嵌套ArrayFormula无法实现分组统计,因为COUNTUNIQUE是聚合函数,会返回单个结果,需要用逐行遍历的函数来处理。
正确公式
=ARRAYFORMULA(IF(A8:A1000="", "", BYROW(A8:A1000, LAMBDA(currentA, COUNTUNIQUE(IF((A8:A1000=currentA)*(REGEXMATCH(E8:E1000, "\d{4}-\d{4}")), E8:E1000&" "&F8:F1000, ""))))))
公式说明
- 外层IF判断:检查A8:A1000对应行是否为空,为空则返回空值,避免公式填充到无数据的行。
- BYROW遍历:逐行读取A列的值,将当前行的A值传入
currentA参数,实现按行分组的逻辑。 - 内部统计逻辑:和你原来的公式逻辑一致——筛选出A列等于
currentA且E列符合\d{4}-\d{4}格式的行,拼接E和F列后统计唯一值数量。
之前尝试的问题分析
- 第一个公式中
A8:A=A8是固定引用A8单元格,所有行都用A8的值统计,结果全部相同。 - 第二个公式中
A8:A=A8:A永远为真,COUNTUNIQUE会统计整个区域内符合格式的所有唯一值,得到全局总数而非分组统计结果。
内容的提问来源于stack exchange,提问作者Robert
相关产品推荐
相关产品推荐

