Excel:如何在Excel电子表格中设置在另一列中搜索值的条件

时间:2011-12-12 07:27:19

标签: excel vba

我有一个包含我想要搜索的值的字符串的列。

示例:

A栏(我的原始数据):SMS APP,SMS Solutions

B栏(我的搜索标准):短信

C列:= vlookup(B栏,C栏,FALSE)

如上所示,我想确保C列将显示我对原始数据的搜索结果。是否有vlookup方法可以做到这一点?它必须匹配B列中显示的字符串。谢谢!

2 个答案:

答案 0 :(得分:0)

如果你想要一个完整的UDF,它会返回一个包含B中单词的所有单元格的列表(注意这也适用于多列范围):

=ListAll(B1, A1:A100)

(代码)

Function ListAll(ByVal text As String, _
                 ByVal cell_range As Range, _
                 Optional seperator As String = ", ") As String

Dim result As String
Dim i As Long, j as Long
Dim rawData As Variant
rawData = cell_range.Value

For i = 1 To UBound(rawData, 1)
    For j = 1 To UBound(rawData, 2)
        If InStr(1, rawData(i, j), text) <> 0 Then
            result = result & (rawData(i, j) & seperator)
        End If
    Next
Next

If Len(result) <> 0 Then
    result = Left$(result, Len(result) - Len(seperator))
End If

ListAll = result

End Function

注意我设置它以便找到的每个值都用逗号分隔,但你可以做其他的事情,比如换行符:

=ListAll(B1, A1:A100, CHAR(10))

答案 1 :(得分:0)

您也可以使用= SEARCH(find_text,within_text)公式执行此操作,如果在within_text中找到find_text,则返回一个整数,并返回#VALUE!如果找不到文本。因此,只需使列D在列A中的值中搜索列B中的值。如果列D是整数,则表示匹配。如果列D是#VALUE - 不匹配。