gpt4 book ai didi

excel - 在值列表中搜索所有值并将所有找到的值返回到相邻单元格中

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

我希望在 sheet2 上 C 列的每个单元格中的 Sheet1 列表中搜索值,以逗号分隔。

Sheet1 有一个名称列表:
enter image description here

Sheet 2 在 C 列中有一组句子。 D 列中的输出应该是 Sheet1 中的名称。
enter image description here

我已经搜索但没有找到解决方案。

我没有任何代码可以证明在这方面是有效的,但我确实遇到了一个看起来很有希望的函数,但是,因为我不知道每个单元格的名称周围会出现什么,所以这不是我所需要的。

Function RegexExtract(ByVal text As String, _
ByVal extract_what As String, _
Optional separator As String = ", ") As String

Dim allMatches As Object
Dim RE As Object
Set RE = CreateObject("vbscript.regexp")
Dim i As Long, j As Long
Dim result As String

RE.Pattern = extract_what
RE.Global = True
Set allMatches = RE.Execute(text)

For i = 0 To allMatches.Count - 1
For j = 0 To allMatches.Item(i).submatches.Count - 1
result = result & (separator & allMatches.Item(i).submatches.Item(j))
Next
Next

If Len(result) <> 0 Then
result = Right$(result, Len(result) - Len(separator))
End If

RegexExtract = result

End Function

最佳答案

使用正则表达式 Test :

Function CheckList(ByVal text As String, list As Range) As String

Static RE As Object
Dim arr, sep, r As Long, result As String, v

If RE Is Nothing Then Set RE = CreateObject("vbscript.regexp")

If Len(text) > 0 Then
arr = list.Value
'check each name
For r = 1 To UBound(arr, 1)
v = arr(r, 1)
If Len(v) > 0 Then
RE.Pattern = "\b" & v & "\b" '<< whole word only
If RE.test(text) Then
result = result & sep & v
sep = ", " 'populate the separator
End If
End If
Next r
End If
CheckList = result
End Function

关于excel - 在值列表中搜索所有值并将所有找到的值返回到相邻单元格中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59570234/

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