You need to enable JavaScript to run this app. 无需下拉即可从Excel日期列提取唯一不重复值的公式修改求助
优惠活动
大模型
产品
解决方案
定价
更多

无需下拉即可从Excel日期列提取唯一不重复值的公式修改求助

问题背景

我在Calc Sheet工作表中有一个Selected Countries表格,每个单元格都设有下拉列表,可从Holidays表中选择特定国家/地区。
我在Calc Sheet的E2单元格编写了如下公式,用于提取选中国家/地区对应列中的日期:

=IFERROR(INDEX(HolidayList[#All],ROW(HolidayList[#All]),TRANSPOSE(MATCH(CHOOSE({1;2;3;4;5},$A$2,$A$3,$A$4,$A$5,$C$2),TRANSPOSE(HolidayList[#Headers]),0))),"")

我在L列编写了如下公式,用于合并选中国家/地区的日期,生成单一的唯一不重复值(无重复)日期列:

=IFERROR(SMALL(SelectedHolidays,ROW(INDIRECT("1:"&COUNT(SelectedHolidays)))),)

该公式可自动列出所有日期,无需手动下拉填充到每个单元格。现在需要修改该公式,使其能够直接生成单一的唯一不重复日期列,同样不需要手动下拉填充。我已在NamedRanges工作表中列出了工作簿中创建的所有命名区域。

补充说明

我已经通过FREQUENCY函数实现了无需下拉生成唯一日期列表,但公式中MATCH函数返回的行数组中存在针对重复值的#VALUE!错误,请问如何排除该数组中的#VALUE!错误?
出问题的公式如下:

=SMALL(MDHolidays,IF(FREQUENCY(MDHolidays,MDHolidays)>0,MATCH(MDHolidays,MDHolidays,0),""))
解决方案

方案1:兼容现有逻辑的修正版

直接在MATCH表达式外层嵌套IFERROR过滤错误值,将错误值转为空值忽略即可,修正后公式:

=IFERROR(SMALL(MDHolidays,IF(FREQUENCY(MDHolidays,MDHolidays)>0,IFERROR(MATCH(MDHolidays,MDHolidays,0),""),"")),"")

旧版Excel按Ctrl+Shift+Enter三键结束输入,365/2021及以上支持动态数组的Excel版本直接回车即可自动溢出所有唯一排序后的日期,无需手动下拉填充。

方案2:动态数组版本极简写法

如果你使用的是支持动态数组的Excel版本,可以直接用内置的UNIQUE+SORT函数实现需求,逻辑更清晰无冗余,也不会出现错误值问题:

=SORT(UNIQUE(MDHolidays))

输入后回车即可自动向下溢出所有去重后按升序排列的日期。


内容的提问来源于stack exchange,提问作者sifar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 05:54:05