如何按日期索引筛选并显示当日全部唯一Code?
根据日期筛选对应唯一Code并实时更新的解决方案
场景说明
需要根据单列日期索引,筛选并显示该日期对应的全部唯一Code,切换指定日期时结果同步更新。数据示例如下:
day Code
01 DC13850
01 DC13851
01 DC13852
02 DC13853
02 DC13854
02 DC13855
03 DC13856
03 DC13857
03 DC13858
解决方案
假设日期列是A列,Code列是B列,指定查询的日期放在单元格D1,以下是两种可行方案:
1. Excel 365/2021 动态数组方案(推荐)
在空白单元格(如E1)输入以下公式,公式会自动溢出所有符合条件的唯一Code:
=UNIQUE(FILTER(B:B,A:A=D1,"无匹配数据"))
- 逻辑:
FILTER函数先筛选出A列等于D1的所有Code,UNIQUE函数对结果去重,最终返回当日所有唯一Code;修改D1的日期时,结果会自动同步更新。
2. 旧版Excel 兼容方案
如果使用无动态数组功能的旧版Excel,在E1单元格输入以下数组公式(输入完成后按Ctrl+Shift+Enter确认),然后下拉填充公式直到出现空白:
=IFERROR(INDEX($B$2:$B$10,SMALL(IF($A$2:$A$10=$D$1,ROW($B$2:$B$10)-ROW($B$2)+1),ROWS($E$1:E1))),"")
- 逻辑:通过
IF函数匹配符合日期条件的行号,SMALL函数按顺序提取行号,INDEX函数对应取出Code,IFERROR处理无匹配数据的情况;修改D1的日期后,下拉区域的结果会自动更新。
注意事项
- 确保A列的日期格式与
D1的格式完全一致,避免出现匹配失败的情况 - 若数据量较大,建议使用具体的单元格范围(如
A2:A1000)代替整列引用,提升公式计算效率
内容的提问来源于stack exchange,提问作者Kill Joy Ez
相关产品推荐
相关产品推荐

