Excel 有没有办法提取所有包含特定单词的句子?
我想提取所有包含“苹果”一词的句子,包括小写和大写。结果可以一起显示在单元格B1中,也可以分离到其他单元格中 单元格A1中的示例文本: 一天一苹果,医生远离我。但我觉得它们不好吃。我从来都不喜欢他们。苹果不是我最喜欢的,梨是Excel 有没有办法提取所有包含特定单词的句子?,excel,Excel,我想提取所有包含“苹果”一词的句子,包括小写和大写。结果可以一起显示在单元格B1中,也可以分离到其他单元格中 单元格A1中的示例文本: 一天一苹果,医生远离我。但我觉得它们不好吃。我从来都不喜欢他们。苹果不是我最喜欢的,梨是 有Excel公式吗?谢谢。这在Open Office、Google Docs、Excel等应用程序中有效: =IF(ISNUMBER(SEARCH("apple",A22)),A22,"") 它给出以下输出: 句子串搜索 你可能会用一个很长的公式来表达几句话,但我不认为它
有Excel公式吗?谢谢。这在Open Office、Google Docs、Excel等应用程序中有效:
=IF(ISNUMBER(SEARCH("apple",A22)),A22,"")
它给出以下输出:
句子串搜索
你可能会用一个很长的公式来表达几句话,但我不认为它能解决你的任务。所以我开发了一个用户定义的函数UDF。将代码复制到标准模块中
Function SSS(ByVal SearchString As String, ByVal SearchText As String, _
Optional ByVal SplitString As String = ".", _
Optional ByVal JoinString As String = " ") As String
Dim vnt As Variant ' String Array
Dim i As Long ' String Array Element Counter
Dim strB As String ' String Builder
vnt = Split(SearchText, SplitString)
' Loop through elements of String Array.
For i = 0 To UBound(vnt) - 1 ' "-1" ie. Ignore text after last Split String.
' Check value of current element of String Array against SearchString.
' "vbTextCompare" determines case-INsensitivity (AA = aa = Aa = aA).
If InStr(1, vnt(i), SearchString, vbTextCompare) Then
' Build the String
If strB <> "" Then ' For all but the first found SearchString.
strB = strB & JoinString & Trim(vnt(i)) & SplitString
Else ' Only for the first found SearchString.
strB = Trim(vnt(i)) & SplitString
End If
End If
Next
SSS = strB
End Function
要获得以下结果:
An apple a day keeps the doctor away. Apples aren’t my favourite, pears are.
评论
在您的情况下,可以忽略第3个和第4个参数的参数:
第三个参数是SplitString,默认情况下是一个点。
第四个参数是JoinString,默认情况下是一个空格。
尝试使用find函数或substitute将每个句子放在自己的单元格中,或者单个单元格中有多个句子??如果不使用find,最好使用搜索,搜索不区分大小写。那么你可能会失去更低的。谢谢,那更干净。我按照您的建议将答案更改为使用搜索。
An apple a day keeps the doctor away. Apples aren’t my favourite, pears are.