Excel:如何从字符串中提取数字
您可以使用以下公式从 Excel 中的字符串中提取数字:
=TEXTJOIN("",TRUE,IFERROR((MID( A2 ,ROW(INDIRECT("1:"&LEN( A2 ))),1)*1),""))
此特定公式将从单元格A2中的字符串中提取所有数字。
例如,如果单元格A2包含表达式“25 辆自行车”,则此公式将仅返回 25。
下面的例子展示了如何在实践中使用这个公式。
示例:从 Excel 中的字符串中提取数字
假设我们在 Excel 中有以下字符串列表:
假设我们只想从每个字符串中提取数字。
为此,我们可以在单元格B2中键入以下公式:
=TEXTJOIN("",TRUE,IFERROR((MID( A2 ,ROW(INDIRECT("1:"&LEN( A2 ))),1)*1),""))
然后我们可以单击公式并将其拖动到 B 列中的每个剩余单元格:
B 列现在仅包含 A 列中每个匹配字符串的数字。
这个公式是如何运作的?
记住我们用来从字符串中提取数字的公式:
=TEXTJOIN("",TRUE,IFERROR((MID( A2 ,ROW(INDIRECT("1:"&LEN( A2 ))),1)*1),""))
这个公式的工作原理如下:
首先, ROW(INDIRECT(“1:”&LEN( A2 )))返回从 1 到字符串长度的一系列数字。
然后, (MID( A2 ,ROW(INDIRECT(“1:”&LEN( A2 ))),1)*1)将文本中的所有字符转换为#VALUE!错误。
然后IFERROR((MID( A2 ,ROW(INDIRECT(“1:”&LEN( A2 ))),1)*1),””)删除所有 $VALUE!错误。
最后,TEXTJOIN(“”,TRUE,IFERROR((MID( A2 ,ROW(INDIRECT(“1:”&LEN( A2 ))),1)*1),””)) 收集所有剩余的数字并忽略空白。
最终结果是我们只能从每个字符串中提取数字。
其他资源
以下教程说明如何在 Excel 中执行其他常见任务: