• 职业买手爆料
  • 中立态度甄选
  • 品质消费推荐
提取数字前面的字母你会几种方法?
发表于 7年前 (2017-09-10)
电脑diy

大家好,今天和大家分享“提取数字前面的字母你会几种方法?”,首先大家不要看我的解法,自己想想看,你可以用几种解法解出这个题,要求如下图,字母连续且在左边,数字在右边。我用6种解法分享给大家,记得全是数组公式。

提取数字前面的字母你会几种方法?

一、解法1:Find找第一个数字出现的位置

1、公式截图

提取数字前面的字母你会几种方法?

2、公式

=LEFT(A2,MIN(FIND(ROW($1:$10)-1,A2&5/19))-1)

3、公式解释

  • 用find函数找到第1个数字出现的位置,然后减掉1,得到字母的个数,再从左边提取字母

  • 为什么A2后面要连接一个5/19,目的是防止找不到报错

  • ROW($1:$10)-1指10个阿拉伯数字

  • min提取的第一个数字出现的位置

二、解法2:Count统计字母的个数

1、公式截图

提取数字前面的字母你会几种方法?

2、公式

=LEFT(A2,COUNT(0/(MID(A2,ROW($1:$19),1)>='A')))

3、公式解释

  • MID(A2,ROW($1:$19),1)>='A' 用mid函数分隔每个字符,然后判断是否大于等于A,注意不区分大小写的,得到一个维数组,由True,False构建的

  • 0/true返回0,0/False返回报错

  • 用Count统计0的个数,就是得到字母的个数,最后用Left函数提取字母出来

三、解法3:Match找第一个数字出现的位置

1、公式截图

提取数字前面的字母你会几种方法?

2、公式

=LEFT(A2,MATCH(,MID(A2,ROW($1:$19),1)*0,)-1)

3、公式解释

  • 用函数mid把每一个字母分隔,然后乘0,也就是所有的分隔出来的数全变成了0

  • MATCH(,MID(A2,ROW($1:$19),1)*0,)-1用Match函数找到第1个0出现的位置,也就是第一个数字出现的位置,所以也要减掉1

  • 然后用Left函数从左边提取

四、解法4:Match找最后一个字母出现的位置

1、公式截图

提取数字前面的字母你会几种方法?

2、公式

=LEFT(A2,MATCH(1,0/(MID(A2,ROW($1:$19),1)>'9')))

3、公式解释

  • 0/(MID(A2,ROW($1:$19),1)>'9')用Mid分隔每个字符,然后判断是否大于9,记得9要加双引号,所以的字母都大于“9”,也就是说所有字母在的位置都返回true,我们找最后一个true的位置,其实就是最后一个字母的位置,用0除,目的让所有的True返回0,所有的False报错

  • MATCH(1,0/(MID(A2,ROW($1:$19),1)>'9'))用match找最后一个0的位置

  • 最后用lfeft从左边提取

五、解法5:字母的个数=总字符数-数字的个数

1、公式截图

提取数字前面的字母你会几种方法?

2、公式

=LEFT(A2,LEN(A2)-COUNT(--RIGHT(A2,ROW($1:$19))))

3、公式解释

  • COUNT(--RIGHT(A2,ROW($1:$19)))统计数字的个数

  • LEN(A2)-COUNT(--RIGHT(A2,ROW($1:$19)))总的字符数减掉数字的个数,得到字母的个数

六、解法6:巧用Match第2参数

1、公式截图

提取数字前面的字母你会几种方法?

2、公式

=LEFT(A2,COUNT(MATCH(MID(A2,ROW($1:$19),1),CHAR(ROW($65:$90)),)))

3、公式解释

  • 用mid把每个字符都分隔出来作match函数第1参数,这里很巧妙用26个字母作match函数的第2参数,也就是说单元格里每一个字符都会返回一个数字位置,这些数字的个数就是字母的总个数,然后用Count函数去统计

  • CHAR(ROW($65:$90))返回26个大写字母

  • 另注意,Match函数查找字母时,不区分大小写字母

评论(0)
Hi,您需要填写昵称和邮箱!
姓名 (必填)
邮箱 (必填)
网站

发表优秀评论还可获得奖励哦~~
相关爆料
    没有相关文章!
免费推荐配置
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册

回到顶部