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


0

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

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

单元格的内容如下所示:

Lorem ipsum dolor坐下来,精致的adipistur elit。Morbi ante mi,laoreet nec tristique et,sodales at dui。Vestibulum ullamcorper在nibh auctor laoreet ornare nisi posuere中增加。Aliquam convallis nisl auctor mauris pharetra faucibus。Nullam nulla dolor,varius viverra facilisis nec,viverra in tortor。Inteps sollicitudin,elit in tempor interdum,sapien justo luctus justo,id varius nisi mauris at ipsum。Vivamus tincidunt neque sed felis accumsan tempus。

ABS:1.5,ADS:2.5,SR:11

Pellentesque居民morbi tristique senectus et netus et malesuada fames ac turpis egestas。整数前庭felis et lorem pretium molestie。Nulla imperdiet,magna vel accumsan ornare,augue quam ornare justo,vitae volutpat turpis orci quis nibh。Nullam vitae diam et ligula commodo pretium。Etiam et luctus dui。

麻烦是因为内容是手动输入的,它们的结构可能会有所不同,略有不同,例如:

ABS:1.5(ABS后的空间)

要么

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

要么

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

要么

ABS 1.5(没有冒号的文字后立即数值)

....等等

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

我尝试了left()和find()函数的组合,但不知道如何在找到字符串“ABS”后提取数字。如果有人可以帮助或指出我的方向,我将非常感激。谢谢!


您在单元格中的文本字符串中遇到的最大数量是多少(如果有的话)?
chuff 2013年

0-8.5,增量为0.5,(

Answers:


2

这个公式找到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),"")


非常感谢!它工作得很好,但有没有一种方法,当找不到ABS时,函数只显示null(空白)?

如果你有Excel 2007或更高版本,你可以包围一个IFERROR函数 - 我编辑了我的回复
barry houdini 2013年

一个非常有用的答案。我修改它以使用SEARCH而不是FIND(区分大小写),因为正在查找的文本具有全部小写,初始上限然后更低或全部大写的变化。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.