这个例子应该清楚地解释我的问题
我有一个这种格式的巨大值表(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 都存在的行,则搜索 A1 返回相应的 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 和 Green 的组合以及是否返回了相关的值。
我需要在搜索中有多个条件,因为单个搜索词不足以缩小结果,我正在搜索的一些词是一般词或其他词的一部分(即 OFF 是 OFFLINE 的一部分)返回错误结果,搜索 OFF 和另一个术语同时解决了该问题。
短语列表不是固定格式,所以我不能通过拆分列来准确计算所有值,即它不都是“月亮 - 绿色”
我解决这个问题的方法是使用这个公式:
IF(AND(ISNUMBER(SEARCH(C2,E2)),ISNUMBER(SEARCH(D2,E2))),B2,"")
其中 C2 和 D2 是要搜索的值,E2 是要搜索的框,B2 是要返回的值。这个公式的问题是我仅限于一次搜索 1 个组合,即检查 C2 和 D2,而不是说检查 C2:C100 和 D2:D100 的数组
我试过把这个公式变成一个数组,但没有运气。
我也试过这个公式:
=IFERROR(LOOKUP(2, 1/(ISNUMBER(SEARCH($L$7:$L$8, E2))), $K$7:$K$8),"")m
但在这种情况下,它只能处理一个标准(即只搜索短语 1),不能同时处理短语 1 和 2。$L$7:$L$8 是要搜索的列表,E2 是要搜索的框,$K$7: $K$8 是要返回的相应值。
希望这足以继续。