lookup函数有个特性:
LOOKUP(lookup_value, lookup_vector, [result_vector])
如果 LOOKUP 函数找不到 lookup_value,则该函数会与 lookup_vector 中小于或等于 lookup_value 的最大值进行匹配。
这个特性,我这里简称:包含查找。
比如:
在一组数中,查找最大的值。要在{1,2,3,4,60}中查找最大的值60.可以查找一个无限大的数:9^9,当在这个数组中找不到这个无限大的数值时,匹配了比较接近的数值60.
=LOOKUP(9^9,{1,2,3,4,60},{1,2,3,4,60})
应用这个原理,我们可以进行关键字的包含查找,查到关键字时数值大于0,查不到关键字时返回错误值。0除以大于1的数的值为0,0除以错误值仍为错误值。
=LOOKUP(9^9,0/search(60,{1,2,3,4,60}),{1,2,3,4,60})
比如:
多关键字查找,从字符串中来查找包括其中一个的数据。
【例】如下表A列,为包括各车类别的明细车型,现需在B列当中,将车类别提取出来。(车类别共有四种:捷达,速腾,迈腾,高尔夫)
公式:=LOOKUP(9^9,FIND({"捷达","速腾","迈腾","高尔夫"},A2),{"捷达","速腾","迈腾","高尔夫"})
公式也可以写成:
=LOOKUP(9^9,0/SEARCH({"捷达","速腾","迈腾","高尔夫"},A2),{"捷达","速腾","迈腾","高尔夫"})