从列表中搜索多个critera并从列表中返回相应的值

时间:2015-06-25 11:11:37

标签: excel search excel-formula excel-2010 advanced-search

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

我有一个巨大的价值表(50,000多行),格式为

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

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

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

我需要搜索以下几行 - 如果你找到PHRASE 1& PHRASE 2存在返回相应的VALUE

以下是我希望结果看起来如何的示例。即搜索已检查以查看顶部表中是否存在任何单词组合,并在可能的情况下返回相应的结果。不会有两组正面问题,即Moon Fun和Light Green。实际值是所有艺术家姓名和曲目名称组合。

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

一些注意事项:

  • 要搜索的短语列表中还包含其他文本。细胞将是“月亮在今晚出现在我的绿色山丘上”。我们需要搜索短语表,看看我们是否找到了Moon&的组合。绿色,如果我们确实返回相关值。
  • 我需要在搜索中有多个条件,因为单个搜索词不能缩小结果,我正在搜索的一些词是一般的或者是其他词的一部分(即OFF是其中一部分) OFFLINE)返回错误的结果,其中搜索关闭,另一个术语同时解决该问题。

  • 短语列表不是设置格式,因此我无法通过拆分列来确定所有值,即它不是全部“月亮 - 绿色”

  • 我解决这个问题的关闭是使用这个公式:

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

    C2& D2是要搜索的值,E2是要搜索的框。 B2是要返回的值。这个公式的问题在于我只能在I.e.一次搜索1个组合。检查C2& D2而不是说检查一系列C2:C100& D2:D100

    我已经尝试将这个公式变成一个没有运气的数组。

  • 我也试过这个公式:

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

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

希望这已经足够了。

1 个答案:

答案 0 :(得分:1)

如果您乐意为每个数据集添加额外的列,那么这将有效:

  • 在第一个包含a的值表上添加索引列 号码从1到50,000 +
  • 在短语表中添加此数组公式

    {=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列返回正确的条目。