昨天看到一个同学发问:把括号()内含有*号的执行索求出来欧洲杯体育。
详情有不少东谈主说:这还扼制易,用Ctrl E就不错了。那兰色就帮你试一试,效果是错的。
喂!你跑题了吧,今天的标题主角是Vlookup,这个问题和Vlookup有什么相干?难谈要用它?这不太可能吧,Vlookup什么时刻不错索求字符了?
没错, 试了好多体式,而用Vlookup函数写的公式最浅易。
那公式怎么写,快告诉我。
【例】如下图所示在右表中栽植Vlookup公式,笔据E列的执行从左表中查找,明明看上去一样公式也没失实,效果却查找不到。
=VLOOKUP(E2,$B$2:$C$6,2,0)
究其原因,正本是B列的执行后含有换行符。
换行符好多同学不知谈怎么给删撤退(不错用分列),那只可在公式中处理。看了有不少同学用clean或trim,但未必刻你的表中可能有这两个函数删除不掉的弗主张字符。这时刻,本文另一个主角要出场了,它即是标题中我们说的玄机字符 * (星号)
*是暗意任性多个字符的通配符,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
你作念的甘特图太low了欧洲杯体育,这才是最齐全的施工经由图!