-1
希望得到以下问题的帮助。我需要根据特定的词汇表清理文本。找不到特定的公式(不是VBA)在Excel中执行此操作(在其他线程中搜索未成功)。谢谢 Excel公式清理停用词语
希望得到以下问题的帮助。我需要根据特定的词汇表清理文本。找不到特定的公式(不是VBA)在Excel中执行此操作(在其他线程中搜索未成功)。谢谢 Excel公式清理停用词语
这里是一个VBA UDF使用正则表达式来替换文本中的所有StopWords,没有任何东西。它通过使用单词边界标记来处理部分单词匹配的问题。例如,如果you
是一个停用词,它将不会替代you
,但将忽略your
。它也将替换停用词后面的任何空格。
Option Explicit
Function CleanStopWords(S As String, StopWords As Range)
Dim RE As Object
Dim SW() As String
Dim C As Range
Dim I As Long
ReDim SW(1 To StopWords.Count)
For I = 1 To StopWords.Count
SW(I) = StopWords(I)
Next I
Set RE = CreateObject("vbscript.regexp")
With RE
.Global = True
.ignorecase = True
'create pattern using the StopWords
.Pattern = "\b(?:" & Join(SW, "|") & ")\b\s*"
CleanStopWords = .Replace(S, "")
End With
End Function
既然你不能使用VBA,你将需要使用嵌套的'SUBSTITUTE'的。 –
谢谢大家的指导,我可以理解替代函数的逻辑,但是= SUBSTITUTE(A3,C2:C4,“”)只会用“无”代替“are”。嵌套替代品在这里扮演什么角色? –
你有巢的替代品。替代者不会接受数组。所以它会像'= substitute(替代(替代(a3,c2,“”),c3,“”),c4,“”)''。很多名字都很笨拙。 –