Excel技术问询:筛选两日期间行及查找非零最高日值
Excel 两个需求的解决方案
需求1:查找两个日期之间的所有行
方法1:内置筛选功能(简单直观)
- 选中日期列表的表头,点击「数据」选项卡的「筛选」按钮
- 点击日期列的筛选箭头,选择「日期筛选」→「自定义筛选」
- 在对话框中设置两个条件:「大于或等于」起始日期、「小于或等于」结束日期,确定后即可显示符合条件的行
方法2:FILTER函数(Excel 365/2021及以上版本)
假设日期列在A列,数据区域为A:D,起始日期存于F1,结束日期存于F2,在空白单元格输入公式:
=FILTER(A:D, (A:A>=F1)*(A:A<=F2), "无匹配数据")
公式会自动返回所有指定日期范围内的行,无需手动维护筛选状态。
方法3:兼容旧版本的数组公式(Excel 2019及更早版本)
假设数据区域为A2:D100,起始日期F1,结束日期F2,在G2单元格输入公式后按Ctrl+Shift+Enter确认:
=IFERROR(INDEX(A$2:D$100, SMALL(IF((A$2:A$100>=F1)*(A$2:A$100<=F2), ROW(A$2:A$100)-ROW(A$2)+1), ROW(A1)), COLUMN(A1)), "")
向右向下拖动填充公式,直到出现空白单元格为止。
需求2:按日期找出大于0的最高日值
方法1:MAXIFS函数(Excel 2019/365及以上版本)
- 先提取第二个表格的唯一日期列表(选中日期列→「数据」→「删除重复项」)
- 假设唯一日期在J列,数值列在I列,在K2单元格输入公式:
=MAXIFS(I:I, H:H, J2, I:I, ">0")
拖动填充公式到所有日期行,若需处理无有效数值的情况,可修改为:
=IFERROR(MAXIFS(I:I, H:H, J2, I:I, ">0"), "无有效数值")
方法2:兼容旧版本的数组公式
在对应单元格输入公式后按Ctrl+Shift+Enter确认:
=IFERROR(MAX(IF((H:H=J2)*(I:I>0), I:I, "")), "无有效数值")
方法3:数据透视表(无需公式)
- 选中第二个表格的所有数据,点击「插入」→「数据透视表」
- 将「日期」拖到「行」区域,「数值」拖到「值」区域
- 点击「值」区域的数值字段,选择「值字段设置」,将汇总方式改为「最大值」
- 右键点击数值列→「值筛选」→「大于」,输入0后确定,即可得到每个日期的目标最大值
内容的提问来源于stack exchange,提问作者random_data_enthusiast
相关产品推荐
相关产品推荐

