當前設置:我有兩個Excel表單 - 一個包含產品信息,另一個包含子類別列表(子類別列表中的每一列都有一個與此關聯的關鍵字子類)。Excel - 基於匹配子字符串的關鍵字列表返回值
預期結果:我想根據子類別表中的關鍵字爲每個產品返回一個子類別。我目前正在試圖找到一種方法,在產品名稱中找到包含子類別表單中關鍵字之一的子字符串,然後返回相關的子類別名稱。
當前設置:我有兩個Excel表單 - 一個包含產品信息,另一個包含子類別列表(子類別列表中的每一列都有一個與此關聯的關鍵字子類)。Excel - 基於匹配子字符串的關鍵字列表返回值
預期結果:我想根據子類別表中的關鍵字爲每個產品返回一個子類別。我目前正在試圖找到一種方法,在產品名稱中找到包含子類別表單中關鍵字之一的子字符串,然後返回相關的子類別名稱。
就像我在我的評論說,你將需要擴大查找陣列具有每字一行:
然後你就可以使用這個公式:
=INDEX($F$1:$F$6,MATCH(TRUE,INDEX((ISNUMBER(SEARCH($G$1:$G$6,A1))),),0))
編輯
按照那個剛剛添加的照片:
=INDEX($F$1:$F$3,AGGREGATE(15,6,ROW($G$1:$I$3)/(ISNUMBER(SEARCH($G$1:$I$3,A1))),1))
爲什麼不''sumproduct'? – findwindow
太好了,我認爲你的第一個解決方案使組織起來更有意義。謝謝你的幫助! – JDStopper
@findwindow Sumproduct在這種情況下不起作用。我們需要返回一個不是數字的文本字段。如果OP可以保證標準不會重複,它將代替Aggregate(),因爲那麼Sumproduct會帶來發現該值的兩行的總和。使用聚合比較安全,因爲它將返回僅找到的最低行或第一個值。 –
輸入'找到包含在subcategory'的關鍵字之一是沒有的「廚房」,在「托馬斯在產品名稱中的子麪包鍋「。您要求計算機認爲哪一個目前是不可能的:/ – findwindow
對不起,不明確,子類別表的第一列包含子類別的名稱。後面的列包含與相關子類別相匹配的關鍵字,因此在上面的例子中,'mixer','cooker'和'pan'與「kitchen」 – JDStopper
在同一行的單獨列中,您將需要製作第二張表每行一個字,所以廚房將有三條線。每個攪拌機,電磁爐和鍋一個。然後你就可以用INDEX/MATCH公式來做到這一點。否則,它將採取VBA。 –