最讨厌数据不规范的了。
这么一个表格。
要变成以下的表格。
没有显著的规律,这并不容易。
使用了一个如下数组公式。
=LEFT(A2,MATCH(TRUE,ISERROR(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)*1),0)-1)*1
输入之后CTRL+SHIFT+回车。
为了让大家容易明白,新建一个表来说事情。
假设A1长度为9,我们就从1到9
使用以下公式。
如下,选择B1:B9,输入公式,=MID(A1,ROW(1:9),1),这是一个数组公式,需要CTRL+SHIFT+回车。可以看到,分解成一组内容了。
全部*1得到如下效果。
再判断是否有错误。,如果是数字,返回FALSE,否则TRUE
后面再用MATCH去查TRUE的位置,从而知道从第几位开始不是数字了。
但是取数的时候,只能从左边取,取到非数字的位置,减去一个1.
比如120支,汉字是第4位,数字就是取到第3位。
公式更改如下:
=LEFT(A2,MATCH(TRUE,ISERROR(MID(A2,ROW(1:9),1)*1),0)-1)*1
但是这样操作仅适合A2单元格长度明确是9位的。如果10位,11位,则需要用INDIRECT结合自动匹配长度。
=LEFT(A2,MATCH(TRUE,ISERROR(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)*1),0)-1)*1
外面*1是将文本转为数值。
C列的公式就好理解了。
B列公式有点长,反正国庆节有8天假。
慢慢研究去吧。
本公式需要学过涉及的各个函数。
看不懂没关系,先收藏。
总有一天,你会懂。
祝大家双节愉快!
子曰:用之则行,不用则藏。
意思是说,如果你用我的这些建议,就马上行动,知行合一,如果你不用,就赶紧收藏,以绝后患。
联系客服