这个例子应该清楚地解释我的问题
我有一个巨大的价值表(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 |
一些注意事项:
我需要在搜索中有多个条件,因为单个搜索词不能缩小结果,我正在搜索的一些词是一般的或者是其他词的一部分(即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是要返回的相应值。
希望这已经足够了。
答案 0 :(得分:1)
如果您乐意为每个数据集添加额外的列,那么这将有效:
在短语表中添加此数组公式
{=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列返回正确的条目。