基于Concat(A,B)统计D列唯一值及获取对应日期列表的Excel需求
解决方案
针对County+Program组合,以下是满足两个目标的Excel公式方案,均支持动态更新的数据源:
1. 返回对应组合的所有唯一StartDate列表
使用动态数组公式(适用于Excel 365/2021及以上版本),结合UNIQUE和FILTER函数实现筛选+去重:
普通区域引用公式
=UNIQUE(FILTER(D:D,(A:A=A1)*(B:B=B1)))
- 逻辑:先用
FILTER筛选出与当前行(A1、B1)County+Program匹配的所有StartDate,再通过UNIQUE提取唯一值,结果会自动溢出显示所有符合条件的日期。
结构化表格引用(推荐,支持动态数据源)
将数据源转换为Excel表格(选中数据区域→按Ctrl+T),假设表格名称为Table1,公式可写为:
=UNIQUE(FILTER(Table1[StartDate],(Table1[County]=Table1[@County])*(Table1[Program]=Table1[@Program])))
- 优势:当数据源新增/删除行时,表格会自动扩展范围,公式无需手动调整,完全适配动态变化的数据集。
2. 统计对应组合的StartDate唯一值数量
基于上述逻辑,用ROWS函数统计唯一值的行数即可:
普通区域引用公式
=ROWS(UNIQUE(FILTER(D:D,(A:A=A1)*(B:B=B1))))
结构化表格引用(推荐)
=ROWS(UNIQUE(FILTER(Table1[StartDate],(Table1[County]=Table1[@County])*(Table1[Program]=Table1[@Program]))))
补充说明
你之前使用的=INDEX(D:D,MATCH(A1,A:A,0))仅能返回首个匹配的StartDate,原因是MATCH默认只查找第一个符合条件的位置。而FILTER+UNIQUE的组合可以覆盖同一County+Program下的多资金来源场景,完整提取所有唯一日期。
内容的提问来源于stack exchange,提问作者Marissa Cheplick
相关产品推荐
相关产品推荐

