You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel下拉筛选问题求助:实现按选中月份筛选日期列

Excel下拉筛选“本月”记录的公式方案

前提说明

假设你的原始数据范围是A:D(A-C为固定列,D列为订单日期),顶部下拉菜单单元格为A1,选项包含“本月”。


方案1:适用于Excel 365/2021(动态数组)

在结果区域的首个单元格(比如F2)输入以下公式,公式会自动溢出填充所有符合条件的记录:

=IF(A1="本月",FILTER(A:D,(YEAR(D:D)=YEAR(TODAY()))*(MONTH(D:D)=MONTH(TODAY())),""),A:D)
  • 逻辑:当A1选中“本月”时,筛选出D列日期为当前年月的记录;否则显示全部原始数据
  • 若需要固定筛选某一月,把YEAR(TODAY())和MONTH(TODAY())换成具体值,比如YEAR(2024)、MONTH(6)

方案2:适用于旧版Excel(无动态数组)

在结果区域的F2单元格输入以下数组公式(输入后按Ctrl+Shift+Enter确认,不要直接回车):

=IF(A1<>"本月",A2,IFERROR(INDEX(A:A,SMALL(IF((YEAR(D:D)=YEAR(TODAY()))*(MONTH(D:D)=MONTH(TODAY())),ROW(D:D)),ROW(A1))),""))

完成后横向拖动公式到I2(对应原始A-D列),再纵向拖动填充到需要的行数,直到出现空白。


注意事项

  • 替换公式中的A:D、D:D为你实际的数据列范围
  • 如果下拉菜单有其他选项(如“上月”),可扩展IF条件,例如:
    =IF(A1="本月",FILTER(A:D,(YEAR(D:D)=YEAR(TODAY()))*(MONTH(D:D)=MONTH(TODAY())),""),IF(A1="上月",FILTER(A:D,(YEAR(D:D)=YEAR(TODAY()))*(MONTH(D:D)=MONTH(TODAY())-1),""),A:D))
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 19:52:20