如何在 Excel 单元格中提取句子中某个字符串后的数值?

如何在 Excel 单元格中提取句子中某个字符串后的数值?

我想提取紧跟字符串“ABS”后面的数值(区分大小写)在 Excel 表格的单元格中的大量文本中。

并非所有单元格都包含我要查找的字符串,因此需要过滤器。

单元格的内容如下所示:

Lorem ipsum dolor sit amet,consectetur adipiscing elit。我躺在我前面,老人们都悲伤不已,而我们却都死去了。 Vestibulum ullamcorp 位于 nibh auctor laoreet ornare nisi posuere。 Aliquam convallis nisl auctor mauris pharetra faucibus。 Nullam nulla dolor,varius viverra facilisis nec,viverra in tortor。整体关怀,在时间间隙中精简,公正聪明公正聪明,id varius nisi mauris at ipsum。生命不息,无暇顾及猫咪的时光。

ABS:1.5,ADS:2.5,SR:11

佩伦特斯克居民在悲伤中度过余生,并遭受欺骗和诽谤。整数前庭猫和 lorem pretium molestie。无饮食,大可不必,只要记住装饰,只要装饰正确,生命就会长于一切。无生命之直径和无舌之美。你们中的一些人也都成功了。

问题是由于内容是手动输入的,因此它们的结构可能会有所不同,略有不同,例如:

ABS :1.5(ABS 后的空间)

或者

ABS 为 1.5(“是”而不是冒号)

或者

ABS = 1.5('=' 而不是冒号)

或者

ABS 1.5(文本后紧接着的数值,无冒号)

....ETC

数值在0-8.5之间,增量为0.5,(即0、0.5、1.0、……7.5、8.0、8.5)。

我尝试过使用 left() 和 find() 函数的组合,但不知道如何在找到字符串“ABS”后提取数字。如果有人能帮助我或为我指明方向,我将不胜感激。谢谢!

答案1

此公式查找ABS....然后找到之后的第一个数值,然后取从那里开始的数字(最多 5 个字符)

=LOOKUP(10^10,MID(A1,MIN(FIND({1,2,3,4,5,6,7,8,9,0},A1&1234567890,FIND("ABS",A1))),{1,2,3,4,5})+0)

假设 A1 中的数据

如果数字可能超过 5 个字符,则扩展该{1,2,3,4,5}部分

如果要避免在未找到 ABS 时出现错误,请尝试使用 IFERROR 函数

=IFERROR(LOOKUP(10^10,MID(A1,MIN(FIND({1,2,3,4,5,6,7,8,9,0},A1&1234567890,FIND("ABS",A1))),{1,2,3,4,5})+0),"")

相关内容