跳到主要内容

在特定字符的最后一个实例之后提取文本

作者:晓阳 最后修改时间:2020-02-24

如果您有包含多个定界符的复杂文本字符串列表(以下面的屏幕快照为例,其中包含连字符,逗号,单元格数据中的空格),现在,您要查找最后一个连字符的位置,然后提取其后的子字符串。 本文中,我将介绍一些用于处理此任务的公式。


公式1:在特定定界符的最后一个实例之后提取子字符串

在Excel中,结合了LEN,SEARCH,SUBSTITUTE函数的RIGHT函数可以帮助您创建解决该问题的公式。

1。 要在最后一次出现连字符后提取子字符串,请输入以下公式或将其复制到空白单元格中:

=RIGHT(A2,LEN(A2)-SEARCH("#",SUBSTITUTE(A2,"-","#",LEN(A2)-LEN(SUBSTITUTE(A2,"-","")))))

2。 然后,将填充手柄向下拖动到要应用此公式的单元格上,您将获得结果,如下图所示:


公式说明:

1. LEN(A2)-LEN(SUBSTITUTE(A2,“-”,“”)):此部分用于获取单元格A2中的连字符数。

  • LEN(A2):此LEN函数返回单元格A2中的字符总数。 它将返回:44。
  • SUBSTITUTE(A2,“-”,“”):此SUBSTITUTE函数用于替换所有连字符。 您将得到如下结果:InsertDeleterows,工作表,图像,公式“。
  • LEN(SUBSTITUTE(A2,“-”,“”):获取单元格A2中不含连字符的文本字符串的总长度。
  • LEN(A2)-LEN(SUBSTITUTE(A2,“-”,“”)):从总字符串长度中减去不带连字符的文本字符串的长度,得到连字符的数目,这将得到2。

2. SUBSTITUTE(A2,“-”,“#”,LEN(A2)-LEN(SUBSTITUTE(A2,“-”,“”))):此SUBSTITUTE函数用于将第一个部分公式返回的连字符的最后一次出现替换为#字符。 您将得到以下结果:插入-删除#行,图纸,图像,公式“。

3. SEARCH(“#”,SUBSTITUTE(A2,“-”,“#”,LEN(A2)-LEN(SUBSTITUTE(A2,“-”,“”)))))= SEARCH(“#”,“ Insert-Delete#行,工作表,图像,公式”):此SEARCH函数将返回SUBSTUTTE函数返回的文本字符串中#字符的位置。 它将得到数字14。

4. LEN(A2)-SEARCH("#",SUBSTITUTE(A2,"-","#",LEN(A2)-LEN(SUBSTITUTE(A2,"-","")))):公式的此部分将获取最后一个连字符后有多少个字符。 这将得到数字30。

5. RIGHT(A2,LEN(A2)-SEARCH("#",SUBSTITUTE(A2,"-","#",LEN(A2)-LEN(SUBSTITUTE(A2,"-","")))))= 右(A2,30):最后,使用RIGHT函数从单元格A30中文本字符串的右侧提取4个字符,这些字符由步骤2中的公式返回。


笔记:

1.如果您需要在最后一次出现其他定界符之后提取文本,则只需要根据需要使用另一个定界符来更改连字符。

2.如果文本字符串中没有特定的定界符,则上面的公式将获得错误值,请参见屏幕截图:

要解决此错误,您可以将上面的公式包含在IFERROR函数中,请应用以下公式:

=IFERROR(RIGHT(A2,LEN(A2)-SEARCH("#",SUBSTITUTE(A2,"-","#",LEN(A2)-LEN(SUBSTITUTE(A2,"-",""))))), A2)


公式2:在特定定界符的最后一个实例之后提取子字符串

这是由TRIM,RIGHT,SUBSTITUTE,REPT和LEN函数创建的另一个简单公式,也可以帮助您在Excel中解决此任务。

1。 请将以下公式复制或输入到要获取结果的空白单元格中:

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

2。 然后,将填充手柄向下拖动到要应用此公式的单元格上,并提取了最后一个连字符之后的所有子字符串,如下图所示:


公式说明:

1. LEN(A2):此LEN函数返回单元格A2中的字符总数。 这将在RIGHT函数中识别为num_chars参数。 它将返回:44。

2. SUBSTITUTE(A2,“-”,REPT(“”,LEN(A2))):

  • REPT(“”,LEN(A2):此REPT函数用于根据单元格A2的长度获取多个空格字符串。
  • SUBSTITUTE(A2,“-”,REPT(“”,LEN(A2))):此SUBSTITUTE函数将用REPT函数返回的空格字符串替换单元格A2中的连字符。

该部分公式将被识别为RIGHT函数中的text参数。

3. RIGHT(SUBSTITUTE(A2,“-”,REPT(“”,LEN(A2))),LEN(A2)):此RIGHT函数将从SUBSTITUTE函数返回的文本字符串的右侧获取文本。

4. TRIM():此TRIM函数用于删除所有多余的空格,并且在单词之间仅保留一个空格。


使用的相对功能:

  • RIGHT:
  • RIGHT函数从文本字符串的右侧提取特定数量的字符。
  • SEARCH:
  • SEARCH函数可以帮助您从给定的文本中查找特定字符或子字符串的位置。
  • LEN:
  • LEN函数返回文本字符串中的字符数。
  • SUBSTITUTE:
  • Microsoft Excel SUBSTITUTE函数用另一个文本或字符替换文本字符串中的文本或字符。
  • TRIM:
  • TRIM函数从文本字符串中删除所有多余的空格,并且仅在单词之间保留单个空格。
  • REPT:
  • REPT功能用于将字符重复指定的次数。

更多文章:

  • 从一个单元格中提取多行
  • 现在,如果您有由换行符分隔的文本字符串列表(在输入文本时按Alt + Enter键会发生这种情况),现在,您要将这些文本行提取到多个单元格中,如下面的屏幕截图所示。 您如何用Excel中的公式解决它?
  • 从文本字符串中提取括号之间的文本
  • 现在,如果文本字符串中有一部分用括号括起来,则需要提取括号之间的所有文本字符串,如下面的屏幕截图所示。 您如何在Excel中快速轻松地解决此任务?
  • 在Excel中从文本字符串提取子字符串
  • 您可能需要从文本字符串中提取子字符串,这对您来说是一项常见的任务,在Excel中,没有直接执行此操作的功能,但是借助LEFT,RIGHT,MID和SEARCH函数,您可以提取您需要的各种子字符串。

最佳办公效率工具

Kutools for Excel-帮助您从人群中脱颖而出

🤖 Kutools 人工智能助手:基于以下内容彻底改变数据分析: 智能执行   |  生成代码  |  创建自定义公式  |  分析数据并生成图表  |  调用 Kutools 函数...
热门特色: 查找、突出显示或识别重复项  |  删除空白行  |  合并列或单元格而不丢失数据  |  不使用公式进行四舍五入 ...
超级VLookup: 多重标准  |  多重价值  |  跨多页  |  模糊查询...
副词。 下拉列表: 简易下拉列表  |  依赖下拉列表  |  多选下拉列表...
列管理器: 添加特定数量的列  |  移动列  |  切换隐藏列的可见性状态  将列与 选择相同和不同的单元格 ...
特色功能: 网格焦点  |  设计图  |  大方程式酒吧  |  工作簿和工作表管理器 | 资源库 (自动文本)  |  日期选择器  |  合并工作表  |  加密/解密单元格  |  按列表发送电子邮件  |  超级筛选  |  特殊过滤器 (过滤粗体/斜体/删除线...)...
前 15 个工具集12 文本 工具 (添加文本, 删除字符 ...)  |  50+ 图表 类型 (甘特图 ...)  |  40+ 实用 公式 (根据生日计算年龄 ...)  |  19 插入 工具 (插入二维码, 从路径插入图片 ...)  |  12 转化 工具 (小写金额转大写, 货币兑换 ...)  |  7 合并与拆分 工具 (高级组合行, 拆分 Excel 单元格 ...)  |  ... 和更多

Kutools for Excel 拥有超过 300 个功能, 确保只需点击一下即可获得您所需要的...

课程描述


Office 选项卡 - 在 Microsoft Office(包括 Excel)中启用选项卡式阅读和编辑

  • 一秒钟即可在数十个打开的文档之间切换!
  • 每天为您减少数百次鼠标单击,告别鼠标手。
  • 查看和编辑多个文档时,可将您的工作效率提高50%。
  • 为 Office(包括 Excel)带来高效的选项卡,就像 Chrome、Edge 和 Firefox 一样。
Comments (3)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
how do you get everything after the last Nth character when there is more 'N' character that you want. Example.

1-2-3-4.ip.linodeusercontent.com.
1.2.3.4.ipv4.supernova.orange.pl.

i want to get the last bit after the IP addresses. So it ends up like this
ip.linodeusercontent.com.
pv4.supernova.orange.pl.
This comment was minimized by the moderator on the site
where "." is my Nth character
This comment was minimized by the moderator on the site
i really what to count the Nth character from the right 2 or 3 times and get everything after that, not counting the Nth character from the left because that varies. such a pain with no skills...lol
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations