今天来分享一个学员的问题,如何Excel函数嵌套提取括号里面的值,这是一种常见的数据处理技巧。
是这样的:
B列是我们要的结果,A列是源数据,很多人提问的时候,常犯错误,别人不知道你要什么,因为你的提问无图无真相,让别人去猜。哪有这功夫。
具体怎么实现呢?
我们观察发现其实也就是要提取括号里面的值,那么也就是我们知道括号的位置,之间的差异也就是括号里面的值。
因此,我们首先去计算左括号的位置,用FIND("(",A2),关键是这个括号不是你自己输入的,因为自己输入可能有全角和半角,中文和英文的区别,因此我们这个括号是复制A列的数据中的括号,同理还有一个右括号也是这样操作。
拼接上Mid函数,简单说下Mid函数的语法,就是单元值,第几位开始,要截取几位。
这里我们要的就是A列的A2值,从左括号+1 开始,截取的就是左右括号的差-1,为什么-1,因为我要返回是括号内的值,不需要到右括号。
实在逻辑不清楚的童鞋,可以不加,加1,减1,一个个尝试过去,也就3次而已
所以我们得到公式:
=MID(A2,FIND("(",A2)+1,FIND(")",A2)-FIND("(",A2)-1)
我们发现我们输入这样的公式还是会得到Value错误,因为我们发现有些是没有括号的,也就是没有类型的,我们再加上一个防错判断的函数即可。
最终我们的公式为
=IFERROR(MID(A2,FIND("(",A2)+1,FIND(")",A2)-FIND("(",A2)-1),"")
这些都做完之后,你可能发现你得到的结果还是会错误,怎么办呢?
重点来了,前面说过括号有全角,半角,中英文区别。所以你仔细看下数据发现,你的A列可能有多种括号,这时我建议是先查找替换括号为一种,然后来写函数。
当然有些人很厉害,可以更复杂的嵌套来判断,但我觉得没有必要。
查询,替换一次,又不会怎么样。职场关键是解决问题,不是装B,说自己技术牛X。
如果你实在看不懂我写的,你可以这样套用公式:
我的数据是在A2,所以我的公式里面可变的就是A2,我的符号是括号,如果你是其他符号就改为其他符号,你的单元格是什么,就把A2替换为对应单元格。
— THE END —
本文原创,未经作者允许不可转载!
更多内容,欢迎关注作者微信公众号:Office成长课堂!