如何在 Excel 中从字符串末尾提取/解析变量信息?

如何在 Excel 中从字符串末尾提取/解析变量信息?

例1:

01/28/14 利息收入0.10

例2:

2013 年 12 月 27 日 CHECKCARD 1226 LIONHEART 书店 西雅图华盛顿州-25.13

在提供的两个示例中,我的目标是分离出字符串中最后一个空格后的信息。换句话说,我试图解析从右侧到空格的数据。

答案1

好问题,而且很有用。不久前我发现了这个解决方案。假设您的字符串在单元格 A1 中,您可以使用以下公式:

=TRIM(RIGHT(SUBSTITUTE(A1," ",REPT(" ",LEN(A1))),LEN(A1)))

有关详细信息,请查看此 SO 线程:https://stackoverflow.com/questions/18617349/excel-last-character-string-match-in-a-string

我刚刚用你的测试数据尝试了这个,并且它有效。

全面披露:我完全不明白这个公式为什么有效,但它确实有效。

答案2

您可以使用 Power Query 来执行此操作。Power Query 是 Microsoft 为 Excel 2010 和 Excel 2013 提供的免费插件,它内置于 Excel 2016 的数据功能区中,名为“获取和转换”。

Power Query 有一个按分隔符拆分文本的命令和一个使用最右边分隔符的设置。

或者,如果您想要一个公式解决方案:计算单元格的长度,减去所有空格都已删除的单元格的长度,将该数字输入 Right() 函数以返回最右边的 x 个字符。通过添加零将其转换为数字,如果可能的话,这会将字符串强制转换为数字。

=RIGHT(A1,LEN(A1)-LEN(SUBSTITUTE(A1," ","")))+0

编辑:ThunderFrame 在评论中提出了很好的建议:源中可能存在前导/尾随空格,可以像这样处理:

=RIGHT(TRIM(A1),LEN(TRIM(A1))-LEN(SUBSTITUTE(TRIM(A1)," ","")))+0

相关内容