gpt4 book ai didi

excel - 如何找到一个包含数字括号的单元格 - 例如(1)

转载 作者:行者123 更新时间:2023-12-04 21:30:24 24 4
gpt4 key购买 nike

我使用的公式是:

=IF(SUM(COUNTIF(K6,"*"&{"current","(1)"}&"*")),"within 5 minutes",
IF(SUM(COUNTIF(K6,"*"&{"current","(2)"}&"*")),"within 10 minutes",
IF(SUM(COUNTIF(K6,"*"&{"current","(3)"}&"*")),"within 15 minutes",
IF(SUM(COUNTIF(K6,"*"&{"current","(4)"}&"*")),"within 20 minutes",
IF(SUM(COUNTIF(K6,"*"&{"current","(5)"}&"*")),"within 25 minutes",
IF(SUM(COUNTIF(K6,"*"&{"current","(6)"}&"*")),"within 30 minutes"))))))

输出拉动任何包含 current 的单元格和 1/ 2/ 3等等

我需要它来只提取包含 current 的单元格和 (1)/ (2)/ (3)等等

希望有一种简单的方法来确保公式包含括号!

这是预期结果的示例屏幕截图:
enter image description here

最佳答案

如果 VBA 和 UDF 没问题,那么我建议您使用正则表达式。

打开 VBA 编辑器 (ALT +F11) 并添加一个模块。

粘贴以下代码并将 Excel 工作簿另存为宏激活工作簿 (xlsm)。

Function Regex(Cell)
Dim RE As Object

Set RE = CreateObject("vbscript.regexp")

RE.Pattern = ".*(current and \(\d+\))"
' or if you want to match optional ()
'RE.Pattern = ".*(current and \(?\d+\)?)"
RE.Global = True
RE.IgnoreCase = True
Set Matches = RE.Execute(Cell)

If Matches.Count <> 0 Then
Regex = Matches.Item(0).submatches.Item(0)
End If

End Function

将其用作如下公式:
=Regex(A1)

它将返回它正在寻找的部分 current and [number]
代码的返回当然可以是你想要的任何东西。
但我不明白你问题中的逻辑,这就是为什么我返回它正在寻找的东西

我现在看到了逻辑。

这将返回您期望的输出。
Function Regex(Cell)
Dim RE As Object

Set RE = CreateObject("vbscript.regexp")

RE.Pattern = ".*current and \((\d+)\)"
' or if you want to match optional ()
'RE.Pattern = ".*current and \(?(\d+)\)?"
RE.Global = True
RE.IgnoreCase = True
Set Matches = RE.Execute(Cell)

If Matches.Count <> 0 Then
Regex = "within " & Matches.Item(0).submatches.Item(0)*5 & " minutes"
Else
Regex = "False"
End If

End Function

它将捕获的数字乘以 5 以获得分钟数。
如果没有找到,则返回 False .

VBA 和正则表达式通常意味着工作表中的代码更易于维护和调试。

为了使它对 current 的字符串使用react和 (number)然后使用此代码:
Function Regex(Cell)
Dim RE As Object

Set RE = CreateObject("vbscript.regexp")

RE.Pattern = ".*current.*?\((\d+)\)"
RE.Global = True
RE.IgnoreCase = True
Set Matches = RE.Execute(Cell)

If Matches.Count <> 0 Then
Regex = "within " & Matches.Item(0).submatches.Item(0)*5 & " minutes"
Else
Regex = "False"
End If

End Function

此代码将查找 [anything] current [anything] ([number])

关于excel - 如何找到一个包含数字括号的单元格 - 例如(1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54012891/

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