我需要从包含文本和数字的多个单元格中提取一个特定的数字。我需要扫描的文本或多或少看起来像这样:
“ 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函数来实现?
答案 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
这就是我得到的:
希望您可以使其适应您的需求。