vlookup语法

ads

昨天兰色看到一个同学提问:把括号()内含有*号的内容提取出来。

肯定有不少人说:这还不容易,用Ctrl E就可以了。那兰色就帮你试一试,结果是错的。

喂!兰色,你跑题了吧,今天的标题主角是Vlookup,这个问题和Vlookup有什么关系?难道要用它?这不太可能吧,Vlookup什么时候可以提取字符了?

没错, 兰色试了很多方法,而用Vlookup函数写的公式最简单。

那公式怎么写,兰色快告诉我。先别急,这个需要从最近兰色遇到的另外一个简单例子说起。

【例】如下图所示在右表中设置Vlookup公式,根据E列的内容从左表中查找,明明看上去一样公式也没错误,结果却查找不到。

=VLOOKUP(E2,$B$2:$C$6,2,0)

究其原因,原来是B列的内容后含有换行符。

换行符很多同学不知道怎么给删除掉(可以用分列),那只能在公式中处理。兰色看了有不少同学用cleantrim,但有时候你的表中可能有这两个函数删除不掉的不可见字符。这时候,本文另一个主角要出场了,它就是标题中我们说的神秘字符 * 星号)

*是表示任意多个字符的通配符,Vlookup的第一个参数又支持用通配符查找,所以二者合作,正好可以解决这个问题。

=VLOOKUP(E2&"*",$B$2:$C$6,2,0)

咱们理解了Vlookup+*的模糊查找用法后,就可以解决今天遇到的超复杂字符提取问题了。

分析:

1、因为字符串中有多组括号,所以第一步我们需要找到*后的括号位置

=FIND(")",A2,FIND("*",A2))

公式说明:先查找*号的位置(因find不支持通配符,所以这里只是一个普通符号,并不是通配符),然后再用find函数查找*后 ")" 的位置。FIND函数第3个参数为查找开始位置。

2、用left函数把字符截取出来,括号后面多余的部分删除掉。

=LEFT(A2,FIND(")",A2,FIND("*",A2)))

3、从字符串后用right函数分别截取1,2,3,4......15次(提取次数要大于括号内的字符长度),你会发现终有一个是我们要想的结果。

4、问题是怎么把两边有括号的行提取出来?嘿嘿,这时候该Vlookup闪亮登场了,配合*号完美的实现了提取。

=VLOOKUP("(*)",RIGHT(LEFT(A2,FIND(")",A2,FIND("*",A2))),ROW(1:15)),1,0)

注:(*)表示模糊查找两边有括号的。

最终的公式为:

=VLOOKUP("(*)",RIGHT(LEFT(A2,FIND(")",A2,FIND("*",A2))),ROW($1:15)),1,0)

如果以为这只是vlookup*偶尔应用,不足以支持“逆天”称号,你可曾记得兰色前段时间分享的另一个示例,也是用了同样的思路,解决了一个超难的字符串提取难题。

兰色说:通过今天的示例,是不是又刷新了对Vlookup认知。这个你认为已完全掌握的函数,竟然还可以这么用

兰色根据多年经验,录制了一全套适合新手和初中级阶段用户学习的Excel教程。包括Excel表格88个函数用法、119个使用技巧、透视表从入门到精通50集、图表从入门到精通169集,。详情点击下方链接:

最后编辑于:2024/1/7 拔丝英语网

admin-avatar

英语作文代写、国外视频下载

高质量学习资料分享

admin@buzzrecipe.com