2016-07-27 56 views
1

我需要一個函數,它將搜索許多關鍵字文本字符串(型號)的單元格並返回它找到的每個型號。在我所有的研究中,我只找到提供一個匹配關鍵字的解決方案,但我想全部匹配關鍵字Excel:搜索單元格中的許多文本字符串,並返回所有肯定的結果

一個解決方案的例子僅找到一個關鍵字:我想什麼Excel: Search for a list of strings within a particular string using array formulas?

實施例:

細胞來搜索(A1)中包含:

A-007858 CustomerCompanyName D1001 ,S1135,BE60和R235新6和8包

搜索關鍵字(在單獨的工作表A1-A70):

A32:D1001

A43:S1135

A6:BE60

A64:R235

所需的輸出: 每個型號實測值(D1001,S1135,BE60,R235 )顯示在搜索單元旁邊的單元格B1,C1,D1和E1中(A1)。型號的順序並不重要。我更喜歡Excel函數解決方案而不是VBA。

+0

有多少個單元格包含要搜索的文本?只有A1或A1:A? –

+0

幾千個單元格包含要搜索的文本 – KDickson

+0

然後,您可能會需要VBa。數組公式會與許多公式混爲一談。 –

回答

1

將這個公式中的B1和複製過來:

=IFERROR(INDEX(Sheet2!$A$1:$A$70,AGGREGATE(15,6,ROW(Sheet2!$A$1:$A$70)/(ISNUMBER(SEARCH(Sheet2!$A$1:$A$70,$A1))),COLUMN(A:A))),"") 

更換Sheet2與在其列表所在的工作表的名稱。

它將按照另一張表上的順序排列。

enter image description here

+0

謝謝Scott!我本人不會想到這一點,但現在我明白了你的公式背後的邏輯。 – KDickson

+0

此外,該公式似乎不會減慢我的機器太多。我正在運行相當多的內存。但是,如果你想提供一個VBA解決方案,我不會不高興:) – KDickson

+0

我認爲,如果一個公式的工作原理和可接受的開銷,爲什麼重新發明輪子。如果你想嘗試一下,感覺自由。我會將這兩個列表加載到數組中,並輸出第三個數組。然後循環首先查看句子列表,然後通過使用instr進行測試的查找列表。然後加載與匹配的二維數組。 –

0

如果你沒有太多的關鍵字,你可以做到這一點相當簡單:

B1 = IF(ISERROR(SEARCH("D1001",A1)),"","D1001") 

在那裏你可以與其他片上對單元格引用替換「D1001」。 C1:E1會是類似的。

如果你有很多,那麼你需要更多的參與像@ScottCraner建議。

+0

謝謝亞歷克西斯!是的,我已經考慮過這個解決方案,但是我正在尋找70多個關鍵詞,所以它會變得非常麻煩。儘管感謝您的輸入 – KDickson

相關問題