字符提取,这些招数会了吗?

我们来看看这样一组数据:

怎样用公式将A列的数据分别提取成B、C列呢?

在这里告诉大家一个正确的写公式的过程:

1、碰到问题,一定要先分析问题,查找规律;

2、之后将问题拆解,使用我们平实的清晰的逻辑描述清楚;

3、使用函数将思路翻译成Excel语言;

4、调整细节,使公式具有更强的通用性和容错性。

那么我们静下心来仔细看看原始数据,进行简单的分析。

<方案一>:

通过仔细观察,我们发现,这些数据全都是中文与字母数字的区分,而字母数字的部分恰好是7位长度,于是根据文本函数,在C2单元格很容易得到:

=RIGHT(A2,7)

那么B列的产品名称呢?就是把型号删除的部分,那就把字母数字替换掉就行啦,借用C2已经得到的结果,我们在B2写下这样的公式:

=SUBSTITUTE(A2,C2,'')

<方案二>:

我们观察的更加细致一些呢,发现每一个数字都是以0开头,而中文是在数字0前面两位之前的部分,那么根据这个特色,我们就想到了使用FIND函数来查找0的位置。

=FIND(0,A2)

综合使用,在B2写公式:

=LEFT(A2,FIND(0,A2)-2)

在C2写公式:

=MID(A2,FIND(0,A2)-1,99)

这样的题目,我们使用两种方法搞定,只需要耐心一些,仔细分析数据特点就好。

如果数据中的型号,并不是固定的7位长度,也没有固定的字符,而是像下面这样的数据的话,那该怎么处理呢?

经过前面的学习,大家可能已经形成了自己的分析和思维方式,我们来看看这些数据要怎么处理。

首先补充一个基础知识:

字符与字节的区别

函数LEN始终将每个字符(不管是单字节还是双字节)按1计数,数LENB会将每个双字节字符按2计数,否则,函数LENB会将每个字符按1计数。

这个是Excel的帮助信息中所写的内容,看上去晦涩难懂,我们日常的使用就可以简单记忆:

每一个英文字母、数字、以及英文状态下的标点符号,都是1个字节宽度;

每一个中文字符、以及中文标点符号,都是2个字节宽度。

有了这样的一个基础概念,我们来看看处理方案:

<方案一>:

首先通过长度的差异来取值:

=LEN(A2)

返回的结果是9,因为A2单元格有9个字符。

=LENB(A2)

返回的结果是12,因为A2单元格的3个汉字每个占2个字节宽度,再加上6个英文、数字每个占1个字节宽度,总计12字节的宽度。

仔细观察:

LENB(A2)-LEN(A2)的这个差值,恰好等于3,就是A2单元格中汉字的个数。

LEN(A2)-(LENB(A2)-LEN(A2)),通过LEN减去汉字的长度,恰好就等于剩下的字母、数字的长度6。

做好以上铺垫,于是在B2写公式:

=LEFT(A2,LENB(A2)-LEN(A2))

在C2写公式:

=RIGHT(A2,LEN(A2)*2-LENB(A2)))

就完美的分别提取产品和型号到B、C列当中。

 <方案二>:

通过观察,我们可不可以以英文字母作为起点呢?虽然字母不一样,有A、B、T,但我们希望找到一个简单的办法,找到这些第一次出现的位置。

好的,我们来引入一种通配符的概念,那就是英文半角状态下的问号(?),在可以使用通配符的函数当中它可以指代任意的一个字符。

什么样的查找字符函数可以使用通配符呢?

SEARCH呼之欲出。

进一步,如果这里单单只用SEARCH显然是无法解决问题的,那么就得召唤他的兄弟SEARCHB出场。在文本函数中,有n多带有B的函数,他们的计算都是按照“字节”,而不是“字符”来统计的。

于是有:

=SEARCHB('?',A2)

这个结果返回数字7,通过SEARCHB查找第一个“单字节”的位置,因为每一个汉字都代表2个字节宽度,所以SEARCHB在只查找那些单身字符时,这些成双配对的字符全部都忽视不见,这样就找到了A2单元格中的字母B。前面3个汉字,总计6个字节宽度,而B恰好在第7个字节的位置,所以结果是7。

有了这个分割点,于是进一步我们就得到了B2的公式:

=LEFTB(A2,SEARCHB('?',A2)-1)

以及C2的公式:

=MIDB(A2,SEARCHB('?',A2),99)

LEFTB、MIDB都是按照字节来计算的。

思路决定了你的公式是什么样子。写公式,一定是先有思路,再“翻译”成公式。

作者:翟振福

(0)

相关推荐

  • 2021年最有钱途的函数!一个“?”就让不加班不熬夜还有时间搞副业

    ★ 编按 ★ 大家好,这里是小E.我们处理数据时总免不了要查找并且提取一些重要的数据,如何在上千甚至上万行的数据中快速准确的进行查找和提取?小可老师给我们介绍了两个利器:SEARCHB函数和Mid函数 ...

  • 文本函数len和lenb的用法

    之前说过很多文本函数,今天说说len和lenb的用法.这个函数有2种形式,一种是len,一种是lenb.len是返回字符串中字符的个数,而lenb是返回字符串中字节的个数.它们的区别就在于后缀的b,b ...

  • 巧用Excel查找功能,10秒快速求和

    Excel学员群一位伙伴的提问,需要统计D列金额,用什么公式? 不卖关子,直接给出答案,D2单元格输入公式: =LEFT(B2,LEN(B2)*2-LENB(B2))*LEFT(C2,LEN(C2)* ...

  • 瞬间搞定报销表费用汇总!这个Excel求和公式太牛了

    蓝字发送[目录] 送你200篇独家Excel精华教程 编按: 有些单位部分账目不够规范,譬如报销表,报销内容中文字和金额数据是记录在一起的,怎么求和得到报销金额呢?通常的做法是需要增加一列,把数据单独 ...

  • Excel表格上面LEN、LENB函数的使用

    3062次浏览 2019.03.29更新 我们在判断表格里面的文本长度是否符合要求时,可以使用LEN.LENB函数进行字符计算,再结合IF函数进行判断,这就不需要我们用肉眼去判断,方便快捷. 工具/材 ...

  • 用带B的函数分离汉字英文,很牛B,特装B!!

    函数公式.职场模板.财务应用.分析图表.练习题.软件工具.表格合并.Office 365.Power Query.表格美化.符号作用.条件格式.学会骗.一本不正经.避坑指南.数据整理.筛选技巧.偷懒宝 ...

  • 从混合字符提取数字,这5种方法推荐给你

    与 30万 读者一起学Excel 学员的问题,要从混合字符中提取数字. 对于这种问题,随随便便就可以想出一大堆解决方法. 1.公式3条 =-LOOKUP(1,-RIGHT(A2,ROW($1:$15) ...

  • Excel字符提取的高效方法--正则表达式

    正则表达式,相信大家都不陌生.但在我们最常用的办公软件EXCEL中,目前没有可直接使用正则表达式的函数(至少10版本的EXCEL没有),那么今天我就分享下如何在EXCEL中自定义正则函数来处理数据. ...

  • 第24期:字符提取的三大函数LEFT、RIGHT、MID函数的用法#Excel

    第24期:字符提取的三大函数LEFT、RIGHT、MID函数的用法#Excel

  • 又是文本数字混合字符提取数字,没关系,EXCEL搞得定!

    送人玫瑰,手有余香,请将文章分享给更多朋友 动手操作是熟练掌握EXCEL的最快捷途径! 我们多次强调过,在数据录入是一定要遵循规范录入的原则,否则将会给后续的统计.计算过程带来巨大的困难.这不是,今天 ...

  • 字符提取你还没有掌握?快来看看这里吧!

    送人玫瑰,手有余香,请将文章分享给更多朋友 动手操作是熟练掌握EXCEL的最快捷途径! 今天要和大家分享一个基础的字符提取技巧.请看下面的图表. 我们需要从A列的字符串中将汉字部分提取出来.请注意,汉 ...

  • 一组字符提取公式送给你

    点击上方 蓝色 文字  关注我们吧! 送人玫瑰,手有余香,请将文章分享给更多朋友 动手操作是熟练掌握EXCEL的最快捷途径! 在日常工作中经常会碰到提取字符的情况.我为小伙伴们准备了一组工作中常用的文 ...

  • 字符提取三剑客 LEFT RIGHT MID 按位置提取字符

    LEFT RIGHT MID 按位置提取字符LEFT提取左边N个字符RIGHT提取右边N个字符MID 提取指定位置后的M个字符

  • Excel函数LEFT、MID、RIGHT字符提取三兄弟

    下面用一个简单的实例来说明这三个函数的基本用法,如图5-19所示,分别从前面.中间.后面提取N个字符. 图5-19 提取字符串 前N个字符: =LEFT(A2,2) =LEFT(A2,7) 中间N个字 ...

  • Excel中如何提取特定字符?

    您好!我是EXCEL学习微课堂,头条教育视频原创作者,分享EXCEL学习的小技巧,小经验. Excel中如何提取特定字符?比如提取数字.中文.英文等,下面介绍两种简单实用的方法. 第一种方法是用快速填 ...