分享

数据不规范,还好有办法

 ForSheet 2020-09-30

最讨厌数据不规范的了。

这么一个表格。

要变成以下的表格。

没有显著的规律,这并不容易。

使用了一个如下数组公式。

=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天假。

慢慢研究去吧。

本公式需要学过涉及的各个函数。

看不懂没关系,先收藏。

总有一天,你会懂。


祝大家双节愉快!

子曰:用之则行,不用则藏。

意思是说,如果你用我的这些建议,就马上行动,知行合一,如果你不用,就赶紧收藏,以绝后患。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多