在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 列的關聯儲存格中出現可產生結果的值。