当前位置: 欣欣网 > 办公

哪位高人发现Vlookup函数这个用法,太变态了....

2024-04-01办公

前言: Vlookup函数公式也许你见过很多,但本文涉及的用法兰色是第一次见,耐心看完,你肯定会有收获的。

昨天兰色打开一位网友的Excel表格,顿时被他写的Vlookup长公式惊呆了:

=IF(E2>=VLOOKUP(A2,数据!$A$2:$O$4,2,0),VLOOKUP(A2,数据!$A$2:$O$4,3,0),IF(E2>=VLOOKUP(A2,数据!$A$2:$O$4,4,0),VLOOKUP(A2,数据!$A$2:$O$4,5,0),IF(E2>=VLOOKUP(A2,数据!$A$2:$O$4,6,0),VLOOKUP(A2,数据!$A$2:$O$4,7,0),IF(E2>=VLOOKUP(A2,数据!$A$2:$O$4,8,0),VLOOKUP(A2,数据!$A$2:$O$4,9,0),IF(E2>=VLOOKUP(A2,数据!$A$2:$O$4,10,0),VLOOKUP(A2,数据!$A$2:$O$4,11,0),IF(E2>=VLOOKUP(A2,数据!$A$2:$O$4,12,0),VLOOKUP(A2,数据!$A$2:$O$4,13,0),IF(E2>=VLOOKUP(A2,数据!$A$2:$O$4,14,0),VLOOKUP(A2,数据!$A$2:$O$4,15,0),1%)))))))

上面公式的作用,是根据上图中 E 列的单价从另一个表中查找对应的个人提成比例。查找要分两步:

1、根据A列的产品产代码从【数据】表找到对应行数, 如下图所示第4行。

2、然后根据单价查找所在的区间 如下图所示H4单元格 209 216小 而且最接近) ,然后再找到对应的提成比例 2.50%

(提示:点击下图可以放大图片)

看上去好象没什么好办法,7种价格和对应提成,需要分别用Vlookup查找并逐一对比,然后找到最接近的价格并获取提成比率。于是就有了开头那位同学的长长的Vlookup函数公式。

有没有什么简单公式? 有:

=LOOKUP(E2, VLOOKUP(A2,数据!A:O,(8-ROW($1:$7))*2+{0,1},0) )

公式很短,但估计很多人看到这个公式很懵,因为这里要用到Vlookup函数鲜为人知的重组数据技巧。下面兰色就拆分开,一步步分析这个公式的原理:

兰色以前介绍过利用VLOOKUP函数隔列求和的技巧,本例就可以用这个思路把所有7个价格全提取出来。

=VLOOKUP(A7,A:O, ROW(1:7)*2 ,0)

注: ROW(1:7)*2 结果是一组数字,所以它作为Vlookup函数第3个参数后,结果也会返回同样数量的值,即所有的价格。如下图B7单元格公式结果所示

本例中需要区间查找对应的最接近价格,所以要用到lookup函数,只是lookup的第二个参数需要按 序列,而上面图中结果是 序,所以Vlookup公式还需要改一下。

=VLOOKUP(A7,A:O, (8-ROW(1:7)) *2,0)

注:原来是1234567,用8减后就变成了7654321了。隔取数后也升序排列了。

因为本例最终要返回单价对应的提成比例,所以还需要把提成比例也提取出来。

=VLOOKUP(A7,A:O,(8-ROW(1:7))*2+ {0,1}, 0)

注: {0,1} 中的 0 是指提取价格时列数 +0 1 是提取提成率时列数 +1 ,而最终要得到两列的一组数,所以这里用了数组形式。上面公式最结结果如下图B7:C13区域所示。

用Vlookup函数把价格、提成率组成成了按升序排列的两列数组,余下的就是lookup的基本用法了: 从后向前查找比单价小且最接近的值 。即本文开头公式:

= LOOKUP(E2, VLOOKUP(A2,数据!A:O,(8-ROW($1:$7))*2+{0,1},0) )

兰色说 :今天发现的这个用法,刷新了兰色对 Vlookup 的认知,也是它最牛用法之一。Vlookup函数应用大全的教程看来也要重写一次了 另:原创不易,觉得本文有用的同学记得点右下角大拇指和在看支持一下兰色。

兰色根据多年经验,录制了一全套适合新手和初中级阶段用户学习的Excel教程。包括 Excel表格88个函数用法( 即将更新几十个新函数 )、119个使用技巧、透视表从入门到精通50集、图表从入门到精通186集 。( 绿卡会员 有效期内 免费 )详情点击下方链接