2011-12-12 96 views
0

我有一列包含具有我想要搜索的值的字符串。Excel:如何在excel电子表格中为另一列中的值设置搜索值的条件

实施例:

柱A(我的原始数据):SMS APP,SMS解

柱B(我的搜索规定 - ):SMS

柱C:= VLOOKUP(柱B,柱C,FALSE)

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

+2

你想要做什么?你不能在同一列数据上使用VLOOKUP(或公式)(你的例子中的列C *在你的VLOOKUP中并包含你的公式,这**不起作用** – JMax

+0

我认为你错误地输入了这一行C列:= vlookup(列B,列C,FALSE)你的意思是列C:= vlookup(列B,列A,FALSE)?实际语法应该像'= VLOOKUP(B1,A: A,1)' – Ian

+0

“结果”是什么意思?你的意思是它被发现的细胞?发现了多少次?如果它被发现? – aevanko

回答

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)) 
0

您还可以使用= SEARCH(find_text,within_text)公式来做到这一点,如果find_text在within_text中找到,则返回整数,并返回#VALUE!如果文本没有找到。因此,只需在列A中搜索列A中的值以获得列B中的值即可。如果列D是整数,则表示匹配。如果D列是#VALUE - 不匹配。

相关问题