我有一个表(表1),其中“关键字”向下一列,并在下一列中对应“类别”,例如:
Keyword Category
EE Telecommunications
Water Utilities
Amazon Internet Transaction
在单独的工作表上,我有另一个表(Table2)的事务。我想检查Table1中的任何关键字是否在Table2中的每个事务的描述中,如果是,则返回相应的Category(来自Table1)。如果找到多个匹配项,我只需要返回一个值来指示如此(因此,如果找到多个匹配项,则匹配的唯一类别的名称,找不到匹配项的空白或其他值(例如“多个”))。
我尝试过INDEX/MATCH
和SEARCH
组合,我已经研究了几个小时。我很确定我需要使用{array}
公式,但我无法正确使用它。
我还尝试过VBA来遍历Table2中的每一行来检查Table1中哪一行确实有效,但是需要很长时间才能进行大量的事务处理。
Table2需要看起来像这样:
Description Category
PAYPAL PAYMENT Internet Transaction
AVIVA Insurance
BD270 MKN
Anglian Water Utilties
ATM 32334 <multiple matches>
这将做你想要的,虽然我不保证它会对几个记录非常有效。使用Ctrl + Shift + Enter将其作为数组公式输入
{=IF(SUM(--NOT(ISERROR(FIND([table1.Col1],[table2.lookupValue]))))<>1,IF(SUM(--NOT(ISERROR([table1.Col1],[table2.lookupValue]))))>1,"Multiple matches",""),INDEX([table1.Col2],SUM((ROW([table1.Col1])-1)*NOT(ISERROR(FIND([table1.Col1],[table2.lookupValue]))))))}