多区域多区间查找等级,还得是LOOKUP!

如下图所示,要根据右表不同地区等级的业绩区间查找相应的业绩等级,结果放在C列。业绩区间是左开右闭的,如(0,2000],也就是大于0且小于等于2000。
例如第5行的记录:地区等级是“A级”,业绩是2000,那么对应的业绩等级是“1级”。

可以看到有多个地区等级,每个地区等级又有不同的业绩区间,而且地区等级还包含合并单元格,所以这个问题还是比较复杂的。

在C3单元格输入下面的公式,向下填充,完成。

=LOOKUP(B3-1,IMREAL(SUBSTITUTE(G$3:G$14,"以上","-")&"j")/(LOOKUP(ROW($3:$14),ROW($3:$14)/(F$3:F$14>0),F$3:F$14)=A3),H$3:H$14)

下面来简单拆解下这个公式,可以分为几部分。

IMREAL(SUBSTITUTE(G$3:G$14,"以上","-")&"j")这部分将业绩区间左边的数字提取出来,如D列所示。先用substitute将G3:G14中的“以上”替换为“-”,然后连接上“j”将其变为复数,形如"0-2000j"。最后用imreal提取出实数,也是业绩区间左边的数字。
LOOKUP(ROW($3:$14),ROW($3:$14)/(F$3:F$14>0),F$3:F$14)这部分将地区等级的合并单元格以数组的形式补全,如E列所示。这部分公式的原理可以参考之前的文章《用lookup填充满合并单元格》。

IMREAL(SUBSTITUTE(G$3:G$14,"以上","-")&"j")/(LOOKUP(ROW($3:$14),ROW($3:$14)/(F$3:F$14>0),F$3:F$14)=A3)这部分返回A3单元格的地区等级对应的业绩区间,如D列所示。

先用lookup补全的地区等级和A3比较是否相等,相等的返回true,不相等的返回false。然后用imreal提取出来的业绩除以逻辑值,就得到D列的结果。

上一步的结果作为lookup查找的区域,也就是第2参数。由于业绩区间是左开右闭的,所以查找的值B3要减1,最后返回H3:H14相应的业绩等级。也就是最开始的那个公式。

除了用lookup来查找,也可以用vlookup+choose来查找。首先用choose根据不同的地区等级返回对应的业绩区间和业绩等级数组(当然要用到常量数组),然后再用vlookup模糊查找的方式进行查找。

下图是针对此题写的一个投机的公式,里面的思路可以参考下。

=VLOOKUP((B3-1)/1000,CHOOSE(CODE(LEFT(A3))-64,{0,1;2,2;5,3;8,4;10,5},{0,1;2,2;5,3;8,4},{0,1;2,2;5,3}),2)&"级"

(0)

相关推荐