Excel:从文本中提取具有特定格式的数字

时间:2019-01-23 18:50:41

标签: excel excel-formula

我需要从包含文本和数字的多个单元格中提取一个特定的数字。我需要扫描的文本或多或少看起来像这样:

“ Lorem ipsum dolor坐在5号位,私立精英学校,sed do eiusmod tempor incididunt ut Labore et dolore magnaaliqua。Utenim ad minim veniam 10%,quis nostrud exercitation ullamco labis nisi ut aliat quiquip Duis aute irure 20%dolor in reprehenderit in voltate velit esse cillum dolore eu fugiat nulla pariatur。ceptcept sint occaecat cupidatat non proident 10.54%,sunt in culpa quififier deserunt mollit anim idestest em>

我需要提取以粗体显示的值,该值会因文本而异,但始终是一个百分比,小数点后两位。文本中还有其他数字和百分比。具体来说:我需要一种方法,仅提取文本中小数点后两位的值。有什么办法可以通过excel函数来实现?

1 个答案:

答案 0 :(得分:0)

使用普通Excel,我不知道。使用VBA,您可以使用UDF进行此操作。

此代码将始终是文本中的最后%。它将获得所有数字。它将返回%值作为字符串。如果需要将其用作编号,则需要修改UDF。

Public Function EXTRACT_LAST_PERCENT(ByVal vThisCell As Range) As String

If vThisCell.Count <> 1 Then
    EXTRACT_LAST_PERCENT = "This UDF only works with 1 cell"
    Exit Function
End If


Dim STR As String

STR = vThisCell.Value

Dim MyValues As Variant

MyValues = Split(STR, "%")

Dim i As Byte

'% target will be always the last, according to OP
'so it will be in Ubound-1 always
'we split again using blanks as delimiter

STR = MyValues(UBound(MyValues) - 1)

Erase MyValues

MyValues = Split(STR, " ")

'now % target is in Ubound


EXTRACT_LAST_PERCENT = MyValues(UBound(MyValues))

Erase MyValues

End Function

这就是我得到的:

enter image description here

希望您可以使其适应您的需求。