excel函数里如何提取2个符号中间的值
2016-06-17 · 知道合伙人软件行家
excel函数里提取2个符号中间的值如下所示:
工具:office excel
步骤:
1、打开office excel,选中需要提取中间值的数据内容,从最左边起取字符。
=left(源数据格,提取的字符数)
=left(E2,2)
如图所示即完成从单元格A3的最左边起,提取2个字符。
2、从最右边起取字符
=right(源数据格,提取的字符数)
=right(E2,2)
如图所示即完成从E2单元格最右边起,提取2个字符。
3、从中间提取几个字符
=mid(E2,1,9)
如图所示即完成提取单元格E2中第一位起后面9位。
=mid(sheet1! E2,1,9)
如图所示即完成提取sheet1表的单元格E2中第一位起后面9位。
公式:2个符号中间的数值里又没有其他符号的时候,假定是A1中的数据,符号第一个是@,第二个!,直白点的公式:
=MID(A1,FIND("@",A1,1)+1,FIND("!",A1,FIND("@",A1,1)+1)-FIND("@
",A1,1)-1)通用化得话给你代入的话,就是
=MID(A1,FIND("第一个符号",A1,1)+1,FIND("第二个符号",A1,FIND("第一个符号",A1,1)+1)-FIND("第一个符号",A1,1)-1)
注意公式里符号的中英文格式
更推荐这个替换:你把这一列复制到新的一列,选中新的列,ctrl+F,替换,查找栏里填@,替换栏空白,点全部替换,符号就没了,后面的符号同理。
如果123@4567!89,这样的数据,结果只要中间的4567的话(方法1公式的结果就是这样),查找填*@,替换栏空白就@和它前面全去掉了,这个星号*是指代替任意数量的任意字符。所以@前的都会被去除掉。然后第二步,!后面同理,查找!*,替换空白。
看你题目的话,应该这2种就够用了..简单粗暴。推荐第二种。
友情提醒一下,如果提取完是15位数字以上的,先转化为文本格式在处理哈。超过15位的那些就不可逆的转化成0啦。
最后,处理数据,记得先备份一份哟。
修改:如果是为了计算某单元格里的运算式,只要结果的话,不用那么麻烦。
金山WPS的电子表格里有calculate函数,A2里呈现A1运算结果,A2=calculate(A1)。
excel没有这个函数,但是可以vba实现,模块代码百度很多搜一下就行。
如果还是要提取的,依次套用上面的公式,或者按照其他回答的公式套用一样的。
定位第二个“;”用 FIND(";",A1,X1+1)=X2
定位第三个“;”用 FIND(";",A1,X2+1)=X3
以此类推
定位指该字符在A1中是第几个字符
即:
取第一个“;”前的内容: MID(A1,1,X1-1)
取第一个“;”到第二个“;”的内容:MID(A1,X1+1,X2-X1-1)
取第三个“;”到第四个“;”的内容:MID(A1,X2+1,X3-X2-1)
以此类推
取最后一个“;”后的内容:right(A1,LEN(A1)-Xlast)
当然excel不会认X1,X2什么的,我为了写得方便而已,你自己套原公式进去。