-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,「」)''。很多名字都很笨拙。 –