网易首页 > 网易号 > 正文 申请入驻

精心整理Excel从文本中提取指定字符的4种案例!

0
分享至

「如何从Excel单元格中的文本值提取指定的数据出来?」

就比如做电商的同学可能经常遇到收货地址需要拆分成省市区的问题。

但是用户提交的地址信息不一定规范,就导致拆分的时候需要人工一个一个识别。

本期内容,以溪带你看看工作中常见的文本拆分与提取的案例问题。

如果有你现在正在遇到的问题,可以直接套用。

关注以溪同学,收藏加星,get更多Excel知识技能!

「案例列表」

  1. mid\left\right文本提取函数使用

  2. 地址拆分省市区

  3. 提取指定字符-分隔的指定个数字符

  4. 只提取数字或者字母

1. mid\left\right文本提取函数使用

Excel中有专门的文本提取函数,其中mid、left、right分别用于从中间、左侧、右侧提取文本中的指定长度内容。

依次举例说明:

函数参数:

MID(text,start_num,num_chars)

第一个参数是待提取的文本字符串,第二个是开始提取的字符位置数,第三个参数是从文本中提取的字符数

=MID(A2,3,2)

函数参数:

LEFT(text, [num_chars])

第一个参数是待提取的文本字符串,第二个参数不填默认为1,代表提取的字符数。

=LEFT(A2,2)

函数参数:

RIGHT(text, [num_chars])

第一个参数是待提取的文本字符串,第二个参数不填默认为1,代表提取的字符数。

=RIGHT(A2,2)

可以注意到,这三个参数,都有几个共同点。

  1. 要提供待提取的文本字符串。
  2. 要告诉函数从哪提取。
  3. 提取多少个字符。

理解了上面这个问题,那解决实际案例的所有「关键点」就在2、3两点上了。

2. 地址拆分

如果地址数据的省市区之间有分隔符的,可以直接使用「数据-分列-按指定字符分列」即可完成拆分。

如果是像下图这种没有分隔符的地址,有两种方法可以实现拆分。

通过上面的3个函数,我们知道,想要拆分提取字符,必须要知道从哪提取,提取多少。

所以,第一步,我们需要知道在地址中,省这个字符的具体位置,以及省字符前面有多少字,就能直接提取出省这个字符串了。

在这里引入两个函数,一个是find,一个是len。

find函数
函数作用就是用于查找指定字符在字符串中的字符数位置,函数最终返回值是一个数字。 FIND(find_text,within_text,start_num)
find(要找哪个字符,在哪个字符串里找,从第几个字符位置开始找)
len函数参数
len函数用于返回指定字符串一个有多少个字符数
LEN(text)
len(文本字符串)

除了查找和统计字符数,Excel也提供findb与lenb函数,函数核心功能与find和len都一样。

唯一的区别就是,带b的函数,代表查找或计数的是字节数,反之是字符数。

其中日语、中文(简体)、中文(繁体)以及朝鲜语一个字符算2个字节数。参考下图理解,find和findb用于查找同学位于以溪123同学中的位置。

回到拆分地址上,那第一个,就是查找省这个字位于地址中的位置。

=FIND("省",A2)

如此得到省的位置后,我们便可以通过left函数,直接提取出省名称。

=LEFT(A2,FIND("省",A2))

前面的是不是都很成功,但是最后一个自治区,就识别不出来了。

主要是我国的行政区划分,不是所有的省级行政区都是省结尾的,还包括有市、区。

所以这里,我们需要通过数组公式,来一次性提取出省、市、区这三个字在地址中的位置。

数组公式如下:

=FIND({"省","市","区"},A2)

「注意数组公式,需要按照数组公式输入方法使用」

数组公式使用方法
  1. 需提前选中承接数组公式结果的单元格区域
  2. 再输入数组公式
  3. 最后需要按数组确认键 CTRL+SHIFT+回车 确认公式

目前只是把地址中省市区出现的位置找到了,还需要对数字进行对比,最小的那个,代表最先出现,也就是省级行政单位的位置。

所以我们使用min函数对其嵌套,得到最小位置数,再使用left函数提取,就能正确获得一级行政区名称。

但是由于min函数不能统计包含#VALUE!的错误值数据,所以我们在find公式中的地址参数那里,手动拼接一个省市区字符串,使其不管怎么样,都不会返回错误值。确保min函数正确运行。

数组公式如下:

=LEFT(A2,MIN(FIND({"省","市","区"},A2&"省市区")))

至此第一个省级名称,提取完毕。

如果将原地址中的省级名称去除,那么剩下的地址中,就只包含地级和县级行政区地址信息。

使用substitute函数,就可以替换字符串中的指定字符为空,也就是替换为""

函数公式如下:

=SUBSTITUTE(A2,B2,"")

我们借用了刚刚提取的省级名称,生成了新的地址,基于这个地址我们采用同样的方法提取地级行政区名称。

只需要把省级行政区的公式中的地址A2全部替换成上面的subtitute函数公式,再把对应的地级行政区的后缀,市、区、州、盟,全部修改,就可以了。

最终的数组公式如下:

=LEFT(SUBSTITUTE(A2,B2,"")&"市区州盟",MIN(FIND({"市","区","州","盟"},SUBSTITUTE(A2,B2,"")&"市区州盟")))

最后一个直接使用substitute函数替换即可。

数组公式如下:

=SUBSTITUTE(A2,B2&C2,"")

如果你不想用上面这么长的公式,又或者地址信息没有这么完整,存在不清晰的问题!!

「那就使用方方格子插件来完成地址提取,速度飞快。」

操作路径:方方格子-高级文本处理更多-提取地址-选择地址范围-确定-点击结果存放单元格-确认

最终结果如下图,几秒钟就搞定了。

即使地址不是特别规范,也能大概匹配拆分出来。

当然,最终还需要仔细检查一下是否存在拆分出错的情况。

3. 提取指定字符-分隔的指定个数字符

如下图数据所示:

文本中用-分隔各个信息,其中第二个是产品名称,最后一个是核销状态。

如果是比较规范的数据,就可以先手动提取一行,如下图:

然后按快捷键CTRL+E,智能拆分提取,就能提取出对应的数据。

但是,这个案例,CTRL+E没法很好的拆分出来,比如产品名称,此时可以选择使用函数公式,将产品名称和核销状态提取出来。

提取产品名称:

=MID(A2,FIND("-",A2)+1,FIND("-",A2, FIND("-",A2)+1)-FIND("-",A2)-1 )

提取最后一个核销状态:

=TRIM(RIGHT(SUBSTITUTE(A2,"-", REPT(" ",LEN(A2)) ),LEN(A2)))

「提取产品名称公式原理解析:」
  1. 使用find函数找到第一个指定字符-的位置数,此时find函数默认从字符串第一个字开始找。
  2. 然后接着继续用find函数找指定字符-,但是此时,我们find函数的第三个参数就写第一次find函数的结果值+1,也就是从第一个指定字符-的下一个字符位置开始查找,由此找到了第二个-的位置。
  3. 至此mid函数的2、3参数已经完全找到了。
「提取最后一个核销状态公式原理解析」
  1. 使用substitute函数,将所有的指定字符-替换为长度和字符串长度一致的空格。替换后图片如下图。

  1. 使用right函数,从替换后的字符串右侧,提取长度为原本字符串长度的文本。此时的文本就是空格和最后一个核销状态数据
  2. 使用trim函数,去除文本中的空格
ps. 需要注意第一步中,我们使用rept函数,用来生成字符长度和原始字符串长度一致的空格

4. 只提取数字或者字母

如下图所示,字母和数字在文本中的不同位置,现在想要将字母和数字全部提取。

从文本中提取字母和数字的公式如下:

=SUBSTITUTE( MIDB( A2, SEARCHB("?",A2), 2*LEN(A2)-LENB(A2)), "-","")

「从字符串中提取字母数字公式原理解析:」
  1. 公式使用了字节和字符两种不同的计算方法。使用minb函数提取指定字节数的数据,lenb和len分别统计字节和字符数量。
  2. 由于字母数字和符号都是1个字节,中文是2个字符,通过searchb查找任意1个字节在字符串中的出现位置,就能定位字符串中第一个字母数字或者符号出现位置,进而通过midb函数提取。
  3. 提取位数则通过len和lenb的计数来计算出来,lenb减去len得到的就是中文字符的数量也就是2,换算就是4个字节,最后用lenb减去中文字符的字节数,就得到字母数字和符号的字节数。
  4. 最终使用substitute函数去除指定的符号,就提取完成了。

如果只想提取字母或者数字,则使用下面的公式:

只提取大小写字母的数组公式,请使用数组三键CTRL+SHIFT+回车确认公式:

=CONCAT( IF( ( (CODE(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1))>=65)*(CODE(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1))<=90) )+( (CODE(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1))>=97)*(CODE(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1))<=122)), MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1) ,"" ) )

如果只提取数字,则数组公式如下:

=CONCAT( IF( (CODE(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1))>=48)*(CODE(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1))<=57), MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1) ,"" ) )

「从字符串中单独提取字母或数字公式原理解析:」
  1. 上面的提取字母和数字,都使用了相同的原理,那就是code函数,对不同字符的对应编码,其中数字0到9,编码为48到57,大写字母A到Z,编码为65到90,小写字母a到z,编码为97到122。
  2. 公式是数组公式,使用了mid将字符串拆分成单独的字符,再通过code函数得到编码,与对应编码对比,区分字母和数字,最终通过if函数判断保留字母或数字,使用concat函数将保留的字符拼接在一起。
  3. 其中用到了sequence序列函数用法以及filter函数的多条件式判断,建议在以溪主页,查看对应文章,深入了解。

如果用数组公式觉得太麻烦,也可以使用Excel插件来提取字符,如果你会编写正则表达式,那无论是多奇怪的字符,都可以通过插件运行正则表达式提取指定的字符出来。

插件提取方法路径如下:

方方格子-高级文本处理-更多

同时在提取更多里面,还支持提取链接以及之前说的拆分地址。

在高级提取功能里,支持额外4种提取需求,如图所示。

以上,就是以溪总结的文本字符串提取的相关案例,如果你有实际需求没有在以上案例,可以留言讨论。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
博士扩招240%!

博士扩招240%!

山东教育
2026-02-06 09:18:56
40小时左右骤降21.7℃,北京“断崖式降温”,明晨更冷

40小时左右骤降21.7℃,北京“断崖式降温”,明晨更冷

新京报
2026-02-06 11:59:03
西贝的贾总刚被解除禁言,又给自己补上一刀,网友评论炸了

西贝的贾总刚被解除禁言,又给自己补上一刀,网友评论炸了

魔都姐姐杂谈
2026-02-05 14:07:32
郑钦文将出战WTA印第安维尔斯站

郑钦文将出战WTA印第安维尔斯站

体坛周报
2026-02-06 13:10:25
苏州一公司办演唱会当作年会,撒贝宁主持,李克勤张信哲毛不易等献唱;年终奖给每名员工发黄金,10人获奖南极游

苏州一公司办演唱会当作年会,撒贝宁主持,李克勤张信哲毛不易等献唱;年终奖给每名员工发黄金,10人获奖南极游

极目新闻
2026-02-04 17:27:18
就在今天!2月6日上午,男篮传来广东男篮、萨林杰和萨姆纳消息

就在今天!2月6日上午,男篮传来广东男篮、萨林杰和萨姆纳消息

林子说事
2026-02-06 12:37:59
天空:沙特负责足球事务的官员对C罗失去耐心,认为其反复试探底线

天空:沙特负责足球事务的官员对C罗失去耐心,认为其反复试探底线

懂球帝
2026-02-06 17:06:10
“三通一达”被实锤?企业要求入职提供体验报告,9个女留子跑了

“三通一达”被实锤?企业要求入职提供体验报告,9个女留子跑了

没有偏旁的常庆
2026-02-02 07:20:03
反转!王石夫妇再传新料!

反转!王石夫妇再传新料!

财经要参
2026-02-05 05:57:23
胡歌抱着杨紫失声痛哭,这段戏不获奖,内娱就没救了

胡歌抱着杨紫失声痛哭,这段戏不获奖,内娱就没救了

娱乐故事
2026-02-05 15:36:53
阿里纳斯:哈登怎么去骑士呢?没人愿意主动去克利夫兰!

阿里纳斯:哈登怎么去骑士呢?没人愿意主动去克利夫兰!

氧气是个地铁
2026-02-06 14:34:18
王红卫当选江苏省高级人民法院院长

王红卫当选江苏省高级人民法院院长

扬子晚报
2026-02-06 16:04:55
广西壮族自治区党委副书记王维平、党委常委农生文,当选新职

广西壮族自治区党委副书记王维平、党委常委农生文,当选新职

极目新闻
2026-02-06 12:30:02
六台:恩德里克带了一个7人团队到里昂,包括在皇马的理疗师

六台:恩德里克带了一个7人团队到里昂,包括在皇马的理疗师

懂球帝
2026-02-06 16:45:06
晚饭七分饱被推翻了?医生调查:过了56岁,吃饭尽量要做到这5点

晚饭七分饱被推翻了?医生调查:过了56岁,吃饭尽量要做到这5点

蜉蝣说
2026-02-03 15:00:19
马未都:我身价至少100亿,但这点钱,跟我母亲比,我就是个贫农

马未都:我身价至少100亿,但这点钱,跟我母亲比,我就是个贫农

忠于法纪
2026-01-15 22:08:28
大陆再为郑丽文送上惊喜!金门有望成为回归试点城市 绿营坐不住了

大陆再为郑丽文送上惊喜!金门有望成为回归试点城市 绿营坐不住了

起喜电影
2026-02-06 16:22:15
世纪逼宫终成空城计,字母哥闹剧落幕,雄鹿用沉默戏耍全联盟

世纪逼宫终成空城计,字母哥闹剧落幕,雄鹿用沉默戏耍全联盟

扣篮达人
2026-02-06 04:35:19
王晶曝李兆基离婚内幕,信息量大,句句不提李连杰,却字字提醒他

王晶曝李兆基离婚内幕,信息量大,句句不提李连杰,却字字提醒他

社会日日鲜
2026-02-06 06:15:13
斯诺克赛程:决出4强,中国或提前夺冠,2场德比,赵心童复仇战!

斯诺克赛程:决出4强,中国或提前夺冠,2场德比,赵心童复仇战!

刘姚尧的文字城堡
2026-02-06 07:39:35
2026-02-06 18:00:49
以溪同学
以溪同学
学Excel关注我!
13文章数 93关注度
往期回顾 全部

科技要闻

独角兽版图巨变:SpaceX奔万亿 中美差在哪

头条要闻

美国财长自曝了:看到伊朗啥样了吧 我们干的

头条要闻

美国财长自曝了:看到伊朗啥样了吧 我们干的

体育要闻

西甲射手榜第2,身价不到姆巴佩1/40

娱乐要闻

微博之夜红毯好精彩,堪比婚礼现场

财经要闻

深夜惊现情色直播 快手被罚1.191亿元

汽车要闻

3L级油耗+1730km续航 吉利银河M7在米兰首秀

态度原创

时尚
旅游
房产
本地
艺术

开运首饰|| 300多到手天然珍珠、水晶,好意头还显贵气

旅游要闻

河南鲁山:“冷资源”激活冬季文旅“热效应”

房产要闻

新春三亚置业,看过这个热盘再说!

本地新闻

围观了北京第一届黑色羽绒服大赛,我笑疯了

艺术要闻

Kristin Vestgard:挪威当代画家

无障碍浏览 进入关怀版