Vlookup函数的教程到处都是,做梦都想不到的用法是不是太夸张了?嘿嘿,是不是夸张,看完下面这个问题你再判断。
【问题】如下图所示,要求把B列每个单元格中的电缆规格(红色字体部分),用公式提取到C列中。
这是一个Excel高手看到都会头痛的难题。首先提取的内容在换行后的单元格中,其次它在单元格的行次不定。
对于这样的问题,我们可能会想到的函数有FIND、MID等字符串处理函数,好像和本文主角Vlookup函数八杆子也够不着。耐心看完兰色的思路解析,你就知道Vlookup函数在这里的用法有多妙。
思路解析:
首先,用FIND查找到“规格”在字符串的位置,再+3(“规格: ”占3个字符)正好是要截取的开始位置。
=FIND("规格",B2)+3
虽然截取的开始位置计算出来了,但每个规格的长度不定。该截多少合适呢?
在大致判断规格最大长度不大于100的前提下,用MID函数截取99次,截取的个数分别是1,2,3,4,5....99
=MID(B2,FIND("规格",B2)+3,ROW(1:99))
注:row(1:99)可以生成1~99的99个数字
截取的结果是99行字符。(当字符
W
WD
WDZ
WDZA
WDZA-
WDZA-YJY23-1.8/3kv
WDZA-YJY23-1.8/3kv 3
WDZA-YJY23-1.8/3kv 3*
WDZA-YJY23-1.8/3kv 3*7
WDZA-YJY23-1.8/3kv 3*70+1*35
WDZA-YJY23-1.8/3kv 3*70+1*35
WDZA-YJY23-1.8/3kv 3*70+1*354
WDZA-YJY23-1.8/3kv 3*70+1*354.
WDZA-YJY23-1.8/3kv 3*70+1*354.材
WDZA-YJY23-1.8/3kv 3*70+1*354.材料
上面这么多行中,有2行看上去是我们想要的(蓝色和红色行),可能有同学不太明白,明明截取的个数不同,为什么会有两个看似相同的结果。答案是因为红色行有强制换行符的存在,虽然它不可见,但它也占一个位置。
而正是有这个换行符,我们就可以用Vlookup的模糊查找把它给挑选出来。
=VLOOKUP("*"&CHAR(10),MID(B2,FIND("规格",B2)+3,ROW(1:99)),1,0)
注:在Vlookup函数可以借用*实现模糊查找,而char(10)表示换行符。"*"&CHAR(10)表示查找以换行符结尾的字符。
因为公式需要向下复制,ROW(1:99)还需要锁定行数ROW($1:99),最终的公式为:
=VLOOKUP("*"&CHAR(10),MID(B2,FIND("规格",B2)+3,ROW($1:$90)),1,0)
注:因为这个一个数组公式,非office365版本还需要在公式最后按ctrl+shift+enter以数组形式输入。
兰色说:看完本文,是不是被VLOOKUP的巧妙用法给震撼到了。在Excel中千万不要认为你已精通了某个函数,因为只学习的只有它的最最最基本用法,而应用扩展是千变万化的。
另外,2月11日还有一个大型函数实例讲解直播,同学们也可以提前预约。
领取专属 10元无门槛券
私享最新 技术干货