如何在工作表中筛选出对应最小日期值的整行所有列数据
按分组提取最小日期对应整行的可行方案
你需要实现的是按指定分组维度提取每个分组内最早日期对应的整行数据,以下是不同场景下的操作方法:
方案1:Excel 365/2021及以上版本(公式一键完成)
假设原始数据区域为A2:D100,分组维度列为A列,日期列为C列,在空白单元格输入以下公式即可直接返回所有符合要求的行:=SORT(FILTER(A2:D100,COUNTIFS(A:A,A2:A100,C:C,"<"&C2:C100)=0),1)
逻辑说明:COUNTIFS统计每个分组内比当前行日期更小的行数,结果为0即代表当前行是该分组下日期最小的行,经FILTER筛选后再按分组列排序,和你预期的输出效果一致。
方案2:全版本通用(操作流,无需复杂公式)
- 选中整个数据区域,点击「数据」选项卡→「排序」,主关键字选择你的分组列(如供应商/物料列)按升序排列,次关键字选择日期列按升序排列,点击确认。
- 在数据右侧新增一列辅助列,第二行单元格输入公式
=A2=A1,下拉填充所有行,返回TRUE的行即为和上一行同分组、且日期更大的冗余行。 - 筛选辅助列中结果为FALSE的行,就是你需要的每个分组最小日期对应的整行数据,直接复制出来即可使用。
方案3:MINIF类函数修正方案(解决你之前调用失败的问题)
你之前使用MINIF类函数失败大概率是没有联动匹配整行,修正操作如下:
- 提取所有不重复的分组值:选中分组列→点击「数据」选项卡→「删除重复项」,将得到的唯一分组值放在空白列(比如F列)。
- 在F列旁的G2单元格输入公式
=MINIFS(C:C,A:A,F2),下拉得到每个分组对应的最小日期。 - 用匹配函数关联返回整行数据:如果需要返回B列对应值,在H2单元格输入
=XLOOKUP(1,(A:A=F2)*(C:C=G2),B:B,""),依次修改匹配目标列即可得到所有字段值,旧版Excel输入数组公式后需要按Ctrl+Shift+Enter确认生效。
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

