2015-09-17 70 views
0

我有两个表。在Excel中进行反向MATCH查找

DataGroupLookup

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

的想法是我wan't使用公式Data[Group]Data[@Text]即行发现,一通配符字GroupLookup[LookupValue]并将GroupLookup[Group]转换为Data[Group]

例如,我有一个在我的Data[Text]中称为“Banjo Pizza 1231”的文本我想查找“披萨”,然后应用GroupLookup[Group] whos的值将是“披萨费用”。

我已经试过像

=INDEX(GroupLookup[Group];MATCH("*"&[@Text]&"*";GroupLookup[LookupValue];0)) 

一个公式,但它做了错误的方式。它将文本应用于LookupValue。例如,文本中的“BC”将与LookupValue中的“ABC”匹配。我想要另一回事。

+0

提供一些示例数据和预期的结果。 – ManishChristian

+0

另一种方式是什么? – Balinti

+0

它应该如何知道它应该返回*披萨费*基于*披萨*而不是*音乐课*基于*班卓* *? – Jeeped

回答

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”中分组了5个类别:比萨,汉堡,薯条,&软饮料。

然后,我将使用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))))) 

如果字比萨存在于我的数据[文字]列中,我的数据[集团]列会得到它从GroupLookup [组]值是“比萨费用”;与其他LookupValue逻辑相同。

希望这会有所帮助。

0

我发现下面式

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

enter image description here

我运用公式给到Group柱塔B.

+0

该解决方案遵循在较大字符串中查找子字符串的传统方法。的[LOOKUP(https://support.office.com/en-us/article/lookup-function-df82ce98-edf9-46ea-8189-b0470e5e0e93)或[MATCH功能](https://support.office.com/en-us/article/match-function-0600e189-9f3c-4e4f-98c1-943a0eb427ca)将会分别实现这一点。我从你的描述,你想从字符串匹配一组子的一个查找每个分割字云集;因此*反向*查找。所以这似乎并不符合'我希望它反过来'的指示。*。 – Jeeped