双向查找需求调整:精准匹配或向下取最近低值返回对应类别
调整后的Excel双向查找公式方案
核心逻辑调整
原公式通过计算绝对值最小差实现双向接近匹配,现在要限制为仅精准匹配,或向下取最近的较小值,需调整筛选逻辑:仅保留目标年份下小于等于目标数值的项,再从中选取最接近(即最大)的数值匹配对应类别。
优化后的公式(用LET提升可读性)
=LET( target_year, A14, target_value, B14, year_column, FILTER(B$2:J$10, B$1:J$1=target_year), valid_vals, FILTER(year_column, year_column<=target_value), IFERROR( INDEX(A$2:A$10, XMATCH(MAX(valid_vals), year_column, 0)), "无符合条件的最小值" ) )
公式拆解
target_year/target_value:定义目标年份和数值,让公式结构更清晰year_column:筛选出目标年份对应的所有类别数值valid_vals:从年份对应数值中过滤出小于等于目标值的有效项MAX(valid_vals):在有效项中取最大值(即最接近目标值的较小值)XMATCH(..., year_column, 0):精准匹配该最大值,返回对应类别所在行的索引IFERROR:处理所有数值均大于目标值的异常情况(可自定义提示文本)
兼容旧版Excel的简化公式
如果无法使用LET函数,可直接嵌套写为:
=IFERROR(INDEX(A$2:A$10,XMATCH(MAX(FILTER(B$2:J$10,(B$1:J$1=A14)*(B$2:J$10<=B14))),FILTER(B$2:J$10,B$1:J$1=A14),0)),"无符合条件值")
内容的提问来源于stack exchange,提问作者sole23
相关产品推荐
相关产品推荐

