2011-12-12 55 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 - 不匹配。

相關問題