在 Excel 2013 中尋找部分文本

在 Excel 2013 中尋找部分文本

在Excel 2013 中,我想在字串與A 列中的字串匹配的行中查找B 列中的值。短。例子:

Column A    Column B
ABCD-       Result1
EF          Result2
BCD         Result3

現在,應該返回的字串範例...

"Result1": "ABCD-", "ABCD-EFG", "ABCD-H"
"Result2": "EF", "EFG", "EFGHIIJKL"
"Result3": "BCD", "BCDXY"

“ABCD”不應傳回任何結果。

假設要尋找的字串位於儲存格 C1 中。

我是否必須訴諸宏或有公式嗎?

UPD:將有幾個要查找的字串實際上位於另一張紙上的列中,並且開頭不會有任何通配符。我正在查找的值可以放置在包含查找字串的列旁邊的列中。

UPD2:假設Sheet1上的A欄位和B列內容以及Sheet2上的內容如下:

SoughtString    ResultFound
ABCD-           Result1
EF              Result2
BCD             Result3
BCDXY           Result3
EFG             Result2
ABCD-EFG        Result1
EFGHIIJKL       Result2
ABCD-H          Result1
ABCD            No match

將儲存格 B2 中接受的答案中的陣列公式稍微修改一下,複製下來:

=IFERROR(INDEX(Sheet1!B$2:B$4;MATCH(1;COUNTIF(A2;Sheet1!A$2:A$4&"*")*(Sheet1!A$2:A$4<>"");0));"No match")

答案1

假設第 2 行到第 10 行有數據,您可以使用這個“數組公式”

=IFERROR(INDEX(B$2:B$10,MATCH(1,COUNTIF(C1,A$2:A$10&"*")*(A$2:A$10<>""),0)),"No match")

CTRL用+ SHIFT+確認ENTER

答案2

目前尚不清楚 C1 扮演什麼角色。如果尋找的字串已存在於某一列中,則可以將其用作 Sheet2 的 A 列中顯示的內容。如果它們在其他地方,您可以透過引用其他清單中的關聯儲存格來建立 Col A。例如,如果清單位於 Z 列中,從第 2 行開始,A2 將為=Z2,您可以將該公式複製到A 列下,以預先填入比您需要的更多儲存格(這些儲存格在需要之前將保持空白)。

如果所尋找的字串清單一次建立一個新條目,您可以將新條目放置在任一清單中的下一個位置(Col Z 或 Col A)。如果新條目必須​​進入 C1 並且每個新條目都會取代先前的條目,則您將需要一個巨集或 VBA 程式來從 C1 條目建立清單。

透過任何這些方法,從 A 列列表中查找到的字串開始,這就是 B 列中的內容。 B2 中的公式為:

    =IF(ISERROR(FIND(Sheet1!A2,A2)),"NO MATCH",IF(FIND(Sheet1!A2,A2)=1,A2,"NO MATCH"))

根據需要將公式複製到 B 列。您可以在 B 列中預先填入任意數量的項目,這些項目將保持空白,直到 A 列的關聯儲存格中出現可產生結果的值。

相關內容