分享

regexp正则+substitutes替换+textjoin合并,提取楼宇信息的门房号

 Excel情报局 2025-05-13 发布于河北
图片


网友求助SOS求助用公式得到指定格式的房号

如下图所示
A列为一列物业公司整理出的格式固定的“楼宇信息”登记名称的部分内容,格式为:xx市xx小区x号楼x单元格x室。其中楼号与室号是阿拉伯数字,单元号是文本。

我们最终想要得到门房号显示在B列,门房号固定格式x(楼号)-x(单元楼号)-x(室号)。楼号、单元号、室号均输出为阿拉伯数字。



我们尝试使用regexp正则+substitutes批量替换+textjoin合并,三个职场高频函数快速的解决此类问题。



第一步:替换

输入公式:
=SUBSTITUTES(A2,{"一","二"},{"1","2"})

因为在中国大部分多层住宅均为一个单元或两个单元。所以我们利用SUBSTITUTES函数进行批量查找替换,将A2单元格内含有"一"或"二"的字符分别替换为阿拉伯数字"1"和"2"。

这里用到的是SUBSTITUTES函数的数组参数模式,可以通过常量数组{"一","二"}与{"1","2"}对各自数组元素进行批量查找替换。



第二步:正则提取

外嵌REGEXP正则表达式函数:
=REGEXP(SUBSTITUTES(A2,{"一","二"},{"1","2"}),"[0-9]+")

正则表达式部分[0-9]+:表示一个或多个任意连续的数字

那么利用REGEXP函数,就可以将上一步骤中SUBSTITUTES函数返回的内容中所有连续的数字提取并显示出来。

REGEXP函数省略第三参数默认为“提取”模式。



第三步:合并

外嵌TEXTJOIN合并函数:
=TEXTJOIN("-",,REGEXP(SUBSTITUTES(A2,{"一","二"},{"1","2"}),"[0-9]+"))

使用TEXTJOIN函数,设置第一参数间隔符为“-”,跳过第二参数表示忽略空白单元格后,将上一步骤中的楼号、单元号、室号的阿拉伯数字合并到一个单元格中。


学习Excel,如果你没有天赋,那就一直重复,当你快到本能反应的时候,你的重复就是别人眼中的天赋,冲破捆绑,展翅翱翔。回顾关键内容,善用图片表达,学会建立联系,拓展深度广度,浓缩关键概念,应用到行动中,善于归纳总结,尝试进行分享。



    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多