我有两张桌子。
Data
和GroupLookup
Data
包含两个字段Text
和Group
,GroupLookup包含LookupValue
和Group
我的想法是,我不想使用Data[Group]
的公式在Data[@Text]
中找到一行,一个来自GroupLookup[LookupValue]
的通配符,然后获取GroupLookup[Group]
进入Data[Group]
例如,我有一个名为" Banjo Pizza 1231"在我的Data[Text]
我想查找"披萨"然后应用GroupLookup[Group]
值将是"比萨费用"。
我尝试过像
这样的公式=INDEX(GroupLookup[Group];MATCH("*"&[@Text]&"*";GroupLookup[LookupValue];0))
但它做错了。它将Text应用于LookupValue。例如,#34; BC"在文本中将匹配" ABC"在LookupValue中。我想要它在其他地方。
答案 0 :(得分:0)
请忍受我的ASCII艺术表:
A B C D E
1 **Data** **GroupLookup**
2 Text Group LookupValue Group
3 Banjo Pizza 123 Pizza Expense Pizza Pizza Expense
4 CrabbyPatty Burger Burger Expense Burger Burger Expense
5 Fries Work Fries Expense Fries Fries Expense
6 Softdrinkersss SoftDrinks Expense Softdrink SoftDrinks Expense
7 Pizzaderia Pizza Expense
8 OverloadedFries Fries Expense
9 Coco Koala Softdrinks SoftDrinks Expense
我们假设上述数据是您的数据表,(" A到E"作为您的列标题," 1到9"是您的行号)在GroupLookup中应该有一个最小的数据,因为它是你的" Group"。在我的样本中,我在我的" GroupLookup&#34 ;: Pizza,Burger,Fries,&汽水。
然后,我将使用Data [Group]列中的以下公式在Data [Text]列中查找这些值。
=IF(IFERROR(MATCH("*"&$E$3&"*",A3,0),"False"),INDEX($E$3:$F$6,1,2),IF(IFERROR(MATCH("*"&$E$4&"*",A3,0),"False"),INDEX($E$3:$F$6,2,2),IF(IFERROR(MATCH("*"&$E$5&"*",A3,0),"False"),INDEX($E$3:$F$6,3,2),IF(IFERROR(MATCH("*"&$E$6&"*",A3,0),"False"),INDEX($E$3:$F$6,4,2)))))
如果我的数据[文本]列中包含单词Pizza,我的数据[组]列将从GroupLookup [Group]中获取它的值,即#34; Pizza Expense&#34 ;;与其他LookupValue相同的逻辑。
希望这会有所帮助。
答案 1 :(得分:0)