Vlookup函数的坑

编程入门 行业动态 更新时间:2024-10-11 11:23:58

Vlookup<a href=https://www.elefans.com/category/jswz/34/1771370.html style=函数的坑"/>

Vlookup函数的坑

Vlookup函数究竟啥意思

Vlookup(lookup_value, table_array, col_index_num,TRUE/FALSE)

lookup_value=查找目标值
table_array=搜索范围
col_index_num=搜索范围的列数,若匹配则返回相应的值
TRUE/FALSE=精准/模糊匹配

反正单看文字是看不懂的,案例说话。

案例

下面为实际使用中的案例。本例中,问卷为成绩互评系统,预期结果为去掉填写人自己的分数,第一步要做的是将填写人和名单匹配上,顺便去除瞎写的数据。

1、lookup_value(查找目标值)

此值为我们想要查找的目标,比如,我发现龙傲天(D3)填写了调查问卷,想知道花名册上是否存在此号人物,则应该将lookup_value设置为D3。

=VLOOKUP(D3, table_array, col_index_num,TRUE/FALSE)

这样就完成了本步。

2、table_array(搜索范围)以及col_index_num(不知道咋写,反正是个列数)

显然A列为花名册,也就是我们希望搜索的范围。但是如果将table_array只设为A列,那么后续填写col_index_num时就会很尴尬,实际上我们将此值设为了A、B两列。为什么呢?那col_index_num究竟是啥呢?

将col_index_num设为2之后,整个命令变为

=VLOOKUP(D3, $A$2:$B$7, 2, TRUE/FALSE)

由最后的结果可以看到,col_index_num设为2,E3单元格返回的是龙傲天(D3)在花名册(范围为A、B两列)对应的名单编号。
由此可以看到,整个匹配逻辑为:

  1. 输入:D3单元格=龙傲天=问卷人姓名=查找目标值
  2. 精准匹配:D3单元格=龙傲天=》精确匹配(FALSE)=》龙傲天=A2
  3. 输出:E3单元格=1=B2单元格=匹配到的值(A2)所在行的table_array(查找范围)的col_index_num(要求列)

3、(大坑1)精准匹配和模糊匹配

上面顺风顺水就匹配到了龙傲天,这也是我看百度经验的时候觉得我也会这么顺。实际操作的时候就遭到了社会的毒打,也是为啥要写这篇博文的原因(并不是闲的蛋疼,也不是为了逃避画图)。。。
To be brief, 千万不要用模糊匹配,匹配的东西乱七八糟,而且匹配的毫无逻辑(只要是个汉字都可以匹配到“蔡英文”,我也是吐了)。请看图:

如果真想模糊匹配,请用正则表达式:

=VLOOKUP("*"&D12&"*",$A$2:$B$7,2,FALSE)

*是正则表达式的任意字符。

(大坑2)明明看着一样的,为什么匹配不到!!!


这种感觉和王者荣耀的匹配总是匹配到坑的心情是差不多的。。。
机智的我第一时间就猜测是不是单元格格式有问题,第二时间猜测前后是不是有空格,like这样:

结果都没有。。。折腾一圈后,多亏了神仙网友(),才解决了这个坑爹的问题。
问题出在了:看不见也无法编辑的非打印字符

郁闷吧!!!解决方法是

=trim(clean(目标单元格))

小结

1.table_array要包括需要返回的值所在的列,col_index_num为需要返回的值所在的列(比如名册编号)。
2.能不用文字匹配就别用,中英文都一样坑。数字不会骗人,不过要设置单元格格式。
3.千万别用模糊匹配(TRUE的取法就是我说的是真理,真的别用),用精确匹配(FALSE)。
4.非得用文字匹配的话,记得先做数据清洗。

更多推荐

Vlookup函数的坑

本文发布于:2024-03-06 17:48:37,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1715975.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:函数   Vlookup

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!