
过去在区间匹配查询场景中,通常会使用vlookup、lookup等函数来嵌套vlookup或index、match等函数,具体的函数搭配则会根据具体情境相应变化。
但不管是哪种搭配,它都对匹配区间的排序提出了要求,比如要默认查询列为升序;或者必须设定特定的区间分段值,比如85分及以上为优秀,70-85分为良好,60-69分为及格,60分以下为不及格,那么分段值就要设置为59,69,84,100。
但是实际情况是,我们为了保持分段区间的直观和整洁性,需要设置区间为降序且分段值为凑整的数字,比如85,70,60,0。但此时如果不修改公式,则会出现错误结果!
因此怎么通过一个公式组合,来解决不管是哪种排序情况或分段值,都能够直接获取正确的匹配结果,是这节我们来学习的内容。
下面以供应商评级和管理数据表为例,如下图所示,已知供应商分值表和评级规则,设置匹配区间,来查询指定供应商的等级和管理建议。
评级规则如下:
1-3分 D级 不合格供应商
4-6分 C级 合格供应商
7-9分 B级 良好供应商
10分 A级 优秀供应商
根据评级规则,设定分值为10,7,4,1,为了强调高分值的评级,要执行降序排序,将高分值显示在上方,具体分值和等级匹配区间如下图所示。
但这种设定并不符合上面讲的两个要求,因此不能用常规的区间匹配公式来求解。
下面我们看一下使用新套路公式的效果动图:
下面进入解题思路。
由于供应商、分值和等级不属于同一个区域数据表中,因此首先要查询供应商的分值,然后再根据分值去匹配区间进行等级的查询。
所以第一步为获取指定供应商的分值。
可以输入vlookup函数常规公式:=VLOOKUP($E$12,$B:$C,2,0)
也就是查询该供应商在供应商列表中的位置,然后返回分值列对应的数据。
但如果将左侧数据表中的分值作为一个变量,设置为“x”,那么查询指定供应商的分值,则可以表示为“x=VLOOKUP($E$12,$B:$C,2,0)”。
这种表达在excel中非常少见,有种编程的意味,但目前Excel2021版本更新的新函数let,其写法就能表达这个等式的含义。
这里作者简述一下let函数的含义和表达式。
其含义是通过自定义变量和赋值,来返回一个计算表达式的结果。
其表达式为:=let(变量1,赋值1,变量2,赋值2……,计算表达式)
关于let函数的基础语法和用法详解,大家可以操作作者在专栏《Excel100个常见函数快速入门》中的讲解。
我们将上述的x和vlookup函数表达式套入let的表达式中,则公式为:
购买专栏解锁剩余57%