在Excel中执行反向MATCH查找

时间:2015-09-17 18:51:56

标签: excel excel-formula match

我有两张桌子。

DataGroupLookup

Data包含两个字段TextGroup,GroupLookup包含LookupValueGroup

我的想法是,我不想使用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中。我想要它在其他地方。

2 个答案:

答案 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)

我找到了以下公式

=LOOKUP(2^15;SEARCH(Table2[LookupWord];[@Phrase]);Table2[Group])

enter image description here

我将公式应用于Group列B列。