gpt4 book ai didi

excel - 如何使用 Excel 公式或 VBA 获取字符串中的十进制(实数)数字?

转载 作者:行者123 更新时间:2023-12-03 03:23:20 27 4
gpt4 key购买 nike

需要帮助:如何使用 Excel 公式或 VBA 获取字符串中的十进制(实数)数字?我在“A 列”中有一个字符串,上面只有一个十进制数。我只想提取十进制(实数)数字,但它正在提取字符串上的第一个数字。详情请参阅下文...

目前情况:

我在 B 列上使用公式:

=LOOKUP(9.9E+307,--LEFT(MID(A1,MIN(FIND({1,2,3,4,5,6,7,8,9,0}, $A1&"1023456789")),999),ROW(INDIRECT("1:999"))))

Column A | Column B
"Some text"... The Value of Project 456 is 12.56 ... more text. | 456
Some Text"... Project 459 value is 13.5 ... "more text" | 459

期望的情况:

我只想从字符串中获取小数(实数),并忽略 A 列中不包含小数的数字。示例:

Column A                                                        |  Column B
"Some text"... The Value of Project 456 is 12.56 ... more text. | 12.56
Some Text"... Project 459 value is 13.5 ... "more text" | 13.5

感谢您提供任何所需的帮助,可以是 Excel 公式或 VBA 解决方案。

谢谢!

最佳答案

尝试将此 UDF 粘贴到标准公共(public)模块代码表中。

Function realNum(str As String, _
Optional ndx As Integer = 1)
Dim tmp As String
Static rgx As Object

'with rgx as static, it only has to be created once; beneficial when filling a long column with this UDF
If rgx Is Nothing Then
Set rgx = CreateObject("VBScript.RegExp")
End If
realNum = 0

With rgx
.Global = True
.IgnoreCase = True
.MultiLine = True
.Pattern = "[0-9]{1,9}\.[0-9]{1,9}"
If .Test(str) Then
realNum = CDbl(.Execute(str)(ndx - 1))
End If
End With
End Function

请注意,虽然它默认为第一次出现(例如 B2),但您可以应用可选参数来获取第二次、第三次等(例如 B3)。

enter image description here

关于excel - 如何使用 Excel 公式或 VBA 获取字符串中的十进制(实数)数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48995846/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com