2016-05-16 102 views
0

當前設置:我有兩個Excel表單 - 一個包含產品信息,另一個包含子類別列表(子類別列表中的每一列都有一個與此關聯的關鍵字子類)。Excel - 基於匹配子字符串的關鍵字列表返回值

預期結果:我想根據子類別表中的關鍵字爲每個產品返回一個子類別。我目前正在試圖找到一種方法,在產品名稱中找到包含子類別表單中關鍵字之一的子字符串,然後返回相關的子類別名稱。

Result Example

+0

輸入'找到包含在subcategory'的關鍵字之一是沒有的「廚房」,在「托馬斯在產品名稱中的子麪包鍋「。您要求計算機認爲哪一個目前是不可能的:/ – findwindow

+0

對不起,不明確,子類別表的第一列包含子類別的名稱。後面的列包含與相關子類別相匹配的關鍵字,因此在上面的例子中,'mixer','cooker'和'pan'與「kitchen」 – JDStopper

+0

在同一行的單獨列中,您將需要製作第二張表每行一個字,所以廚房將有三條線。每個攪拌機,電磁爐和鍋一個。然後你就可以用INDEX/MATCH公式來做到這一點。否則,它將採取VBA。 –

回答

2

就像我在我的評論說,你將需要擴大查找陣列具有每字一行:

enter image description here

然後你就可以使用這個公式:

=INDEX($F$1:$F$6,MATCH(TRUE,INDEX((ISNUMBER(SEARCH($G$1:$G$6,A1))),),0)) 

enter image description here


編輯

按照那個剛剛添加的照片:

=INDEX($F$1:$F$3,AGGREGATE(15,6,ROW($G$1:$I$3)/(ISNUMBER(SEARCH($G$1:$I$3,A1))),1)) 

enter image description here

+0

爲什麼不''sumproduct'? – findwindow

+0

太好了,我認爲你的第一個解決方案使組織起來更有意義。謝謝你的幫助! – JDStopper

+1

@findwindow Sumproduct在這種情況下不起作用。我們需要返回一個不是數字的文本字段。如果OP可以保證標準不會重複,它將代替Aggregate(),因爲那麼Sumproduct會帶來發現該值的兩行的總和。使用聚合比較安全,因爲它將返回僅找到的最低行或第一個值。 –

2

細胞F1試試這個。公式需要通過按Ctrl + Shift + Enter

=IF(COUNT(SEARCH(C1:E1,A1)),B1,"") 

enter image description here

相關問題