从列表中search一个单元格以获得多个标准值,并从列表中返回相应的值

这个例子应该清楚地解释我的问题

我有一个巨大的表格(50,000+行)在这种格式

PHRASE 1 | PHRASE 2 | VALUE Sun | Blue | North Moon | Green | South Star | Red | West 

我有一个格式的短语列表(再次50,000+行)

  AB 1| Moon Fun Light Green | 2| Star Amazing Ball Red | 3| Sun Cat Inside Blue | 4| Star Dog Red Watch | 

我需要沿着以下几行search – searchA1,如果您发现一个行PHRASE 1和PHRASE 2都存在的行返回相应的VALUE

以下是我希望结果如何的一个例子。 也就是说,search已经检查了顶部表中是否存在任何单词组合,并在可能的情况下返回适当的结果。 不会有两套积极的问题,即月球乐趣和浅绿色。 真正的价值是所有艺术家的名字和曲目名称组合。

  AB 1| Moon Fun Light Green | South | 2| Star Amazing Ball Red | West | 3| Sun Cat Inside Blue | North | 4| Star Dog Red Watch | West | 

一些注意事项:

  • 要search的短语列表也充满了其他文本,也就是说,这个单元格将是“今天晚上我在绿色山丘上的月亮已经出来了”。 我们需要search词组表,看看我们是否find月亮与绿色的组合,如果我们返回相关的价值。
  • 我需要在search中有多个标准,因为单个search术语不足以缩小结果,我search的一些单词是一般的或者是其他单词的一部分(即OFF是OFFLINE的一部分),它返回错误searchclosures和另一个术语同时解决这个问题的结果。

  • 短语列表并不是一个设定的格式,所以我不能通过分割列来确切地确定所有的值,即它不是全部的“月亮 – 绿色”

  • 我已经来解决这个closures是使用这个公式:

    IF(AND(ISNUMBER(SEARCH(C2,E2)),ISNUMBER(SEARCH(D2,E2))),B2, “”)

    C2和D2是要search的值,E2是search框,B2是要返回的值。 这个公式的问题是,我一次只能search1组合,即检查C2和D2,而不是检查一个C2:C100和D2:D100的数组

    我试图把这个公式放入一个没有运气的数组中。

  • 我也试过这个公式:

    = IFERROR(LOOKUP(2,1 /(ISNUMBER(SEARCH($ L $ 7:$ L $ 8,E2))),$ K $ 7:$ K $ 8),“”)m

    但在这种情况下,它只能处理一个标准(即只search短语1)而不是短语1和2. $ L $ 7:$ L $ 8是search列表,E2是search框,$ K $ 7: $ K $ 8是相应的返回值。

希望这足以继续下去。

如果您很高兴为每个数据集添加一个额外的列,那么这将工作:

  • 在第一个包含1到5万以内的数字的表格中添加一个索引列
  • 在你的短语表中添加这个数组公式

     {=SUM(ISNUMBER(SEARCH(L$2:L$50000,E2))*ISNUMBER(SEARCH(M$2:M$50000,E2))*P$2:P$50000)} 

    (其中L和M是包含您的短语的列,P是索引列)

  • 在查找中使用此列的结果。

如下所示,如果您不能(或不想)将列添加到您的第一个工作表,您可以将公式更改为

 {=SUM(ISNUMBER(SEARCH(L$2:L$50000,E2))*ISNUMBER(SEARCH(M$2:M$50000,E2))*ROW(L$2:L$50000))} 

并使用OFFSET从VALUE列中返回正确的条目。