手机版

如何在Excel中过滤掉不规则数据?

时间:2021-09-20 来源:互联网 编辑:宝哥软件园 浏览:

问:如图1所示,B列有上千行这样不规则的数据,现在我们只想过滤掉左边有数字右边有字母的数据,比如558fjk和07ad。如何才能做到这一点?

图1

答:下面介绍如何使用数组公式来达到目的。为了便于理解,我们先用一些中间结果,然后组合成最终的数组公式。

我们的思路是先把数据分解成单个字符,然后找出字符在数据中最先出现的位置,再把字符最先出现的部分取到数据的末尾,看看会不会有数字。如果数字再次出现,说明数据不符合要求;否则,获取原始数据,即原始数据符合要求。

以细胞B2中的数据“558fjk”为例。

单元格C2中的数组公式:

=MID(B2,ROW(间接)(“1:”LEN(B2)),1)

获取数组{“5”、“5”、“8”、“f”、“j”、“k”}

在“D2”单元格中,使用1乘以由“C3”单元格中的公式获得的数组:

=1*MID(B2,世界其他地区(间接)(“1:”LEN(B2)),1)

获取数组{5,5,8,#VALUE!#VALUE!#VALUE}

在单元格E2中,将数组传递给ISERROR函数:

=ISERROR(1*MID(B2,世界其他地区(间接)(“1:”LEN(B2)),1))

获取数组{false,false,false,true,true,true}。

在单元格F2中,使用数组公式:

=MATCH(TRUE,ISERROR(1*MID(B2,ROW(间接)(“1:”LEN(B2)),1)),0)

获取数据中第一个非数字字符的位置,在本例中为4。

在单元格G2中,数组公式:

=MID(B2,MATCH(真,ISERROR(1*MID(B2,ROW(间接)(“1:”LEN(B2)),1)),0),LEN(B2))

获取从第一个非数字字符到数据末尾的部分,在本例中是fjk。

在单元格H2中,使用数组公式:

=MATCH(FALSE,ISERROR(1*MID(G2,ROW(间接(“1:”LEN(B2)),1)),0)

确定单元格G2中的数据是否有数字。如果有用于返回数字的位置值,则返回#不适用错误值。

在单元格I2中,公式为:

=IF(ISNA(H2),B2,"")

判断H2单元格中的值是否为#N/A,如果是,则表示B2单元格中的数据符合条件,返回B2单元格中的数据;否则,如果不满足条件,则返回null。这样,我们就得到最终的结果。

将上述步骤中使用的公式组合起来,得到一个数组公式,用于一次性获取满足条件的数据:

=IF(ISNA(MATCH(FALSE,ISERROR)(1 * MID(B2,MATCH(TRUE,ISERROR)(1 * MID(B2,ROW(INDIRECT)(“1:”LEN(B2))))、1))、0)、LEN(B2))、ROW(INDIRECT(“1:”LEN(B2)))、1))、0))、B2,“”)

下拉公式得到符合条件的对应数据,如上图1所示。

版权声明:如何在Excel中过滤掉不规则数据?是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。