Excel基于相邻单元格最小日期批量匹配H列值至C列的公式需求
Excel动态匹配H列值到F列最小日期对应C列的解决方案
适用Excel 365/2021(支持动态数组与LET函数)
直接在C2单元格输入以下公式,下拉填充至需要的行数:
=LET( 已填充行数, COUNTA($C$1:C1), 待匹配日期, FILTER($F:$F,$C:$C=""), 最小日期, MIN(待匹配日期), IF(已填充行数<COUNTA($H:$H),INDEX($H:$H,已填充行数+1),"") )
公式逻辑:
已填充行数:统计当前行上方已填充的C列单元格数量,确定下一个要取的H列值位置待匹配日期:筛选出F列中C列尚未填充的日期(排除已匹配的行)最小日期:从待匹配日期里找出最小值- 最后判断已填充行数是否小于H列有效数据量,是则取对应H列值,否则返回空
适用旧版Excel(不支持动态数组)
需要借助辅助列实现:
添加辅助列(比如I列),在I2输入公式并下拉:
=IF(C2="",F2,"")该列用于标记F列中尚未匹配的日期,已匹配的行返回空。
在C2输入公式并下拉填充:
=IF(ROW()-1<=COUNTA(H:H),INDEX(H:H,MATCH(MIN(I:I),I:I,0)),"")
公式逻辑:
MIN(I:I):找出当前未匹配的最小日期MATCH(...):定位该最小日期在I列的位置INDEX(H:H,...):取H列对应顺序的数值(ROW()-1对应第N个H值)- 当H列值用完后返回空
操作注意事项
- 确保H列数据按匹配顺序排列(H2是第一个待匹配值,H3为第二个,以此类推)
- 开启Excel自动计算功能(文件>选项>公式>勾选「自动计算」),日期更新后公式会自动重新计算,匹配剩余H列值
- 若F列存在重复最小日期,公式会优先匹配第一个出现的行
内容的提问来源于stack exchange,提问作者Logician
相关产品推荐
相关产品推荐

