2015-11-10 29 views
1

目前我有一組單元格,每個單元格在無用信息中都有一個唯一標識符。我也有這些唯一標識符的列表,以及每個標識符對應的值。如果字符串包含來自列表的單詞,則返回值與列表值相鄰

我想要做的就是找到它,如果有的話,識別單元格中包含,然後輸出相應的值,下面是一個例子:

http://i.stack.imgur.com/97aKI.png

那麼,單元格中包含「ADC 「,我希望excel可以找到ADC在參考數組中出現的位置,然後返回相應的值。

如果這可以用公式或宏來完成,那麼要麼是很好。我嘗試了各種組合的索引,匹配和搜索,但似乎沒有任何工作。我發現創建一個巨大的if語句是不切實際的,因爲有大約70個獨特的值要搜索。

歡迎任何建議!

編輯:我被推薦使用vlookup,但我不是在尋找一個完全相同的匹配,而是針對字符串中包含的特定值。如果vlookup確實有這個功能,那麼有人可以告訴我如何用我的具體例子來實踐這個功能嗎?

+1

請參閱[VLOOKUP功能](https://support.office.com/zh-cn/article/vlookup-function-adceda66-30de-4f26-923b-7257939faa65)。也可在[我們的10個最常用功能](https://support.office.com/en-ca/article/Excel-functions-by-category-5f91f4e9-7b42-46d2-9bd1-63f26a86c0eb)中找到。 – Jeeped

+0

由於jeeped提到:vlookup會做......關於這個問題嘗試'「* ADC *」'作爲搜索字符串 –

回答

2

可以使用較新的AGGREGATE¹ function來實現「反向通配符」查找的一種方法。此功能可以產生循環計算,並有一個選項(例如)來丟棄錯誤。用這個在交叉參考表的匹配上產生一個行號,INDEX function返回實際值。

Reverse VLOOKUP

在B3的公式,

=INDEX(F$3:F$5, AGGREGATE(15, 6, ROW($1:$3)*SIGN(MATCH("*"&E$3:E$5&"*", A3, 0)), 1)) 

注意ROW(1:3)是 F3內位置:F5,而不是在工作表上的實際行數。我也炒了查找在原始交叉引用表中插入值以避免對關聯查找匹配的感知。


¹AGGREGATE function用Excel 2010中引入的。它是不是在早期版本。

+0

嗨@Jeeped感謝您對此的回答。這真的很有幫助。出於興趣,如果您想知道是否有多個匹配的字符串以及它們是哪些字符串?目前它返回的索引號最低的字符串是匹配的,但我不能在我的生活中找出需要做出哪些更改。 – DL1984

+1

對於第二,第三等匹配,您需要調整AGGREGATE的SMALL子功能的* k *參數。將右端的** 1 **更改爲「COLUMN(A:A)」,然後填寫正確。此外,您需要將F:F這樣的列引用'鎖定'到$ F:$ F中,以便它們不會轉移,並且可能將整個事件封裝在[IFERROR函數]中(https://support.office.com/zh-cn/) -us/article/IFERROR-function-F59BACDC-78BD-4924-91DF-A869D0B08CD5)以避免在沒有第二個或第三個匹配的情況下出現錯誤消息。 – Jeeped

+0

完美地工作。謝謝。 – DL1984

相關問題