老铁们,咱们今天聊点干活的东西,Excel里的LOOKUP函数。这函数看着简单,用起来那可是真讲究,两个特点得注意:第一,查的那个数据区域必须是排好序的升序,没排序就默认是把后面的当成最大的;第二,要是没找到目标值,就会拿比目标值小的那个最接近的来凑合。 看这个例子,E~F列是个标准对照表,想让B2里的44500对号入座。公式直接扔进去:=LOOKUP(B2,E:F)。结果呢?因为E列没有44500这个数,LOOKUP就拿比它小的10000来顶替,最后把F列对应的内容给返回了。 接着说个更实用的填充合并单元格的招数。B列里面那些合并过的姓名怎么填全?看这公式,=LOOKUP(9.99E+307,B2:B2)。这里面有个技巧,就是第二个参数给了个动态扩展。当你往下拉公式的时候,LOOKUP的查找范围就跟着变大了。相当于从B2开始一直到当前行的位置去搜刮最后一个文本内容。 再来个查找最后一个非空单元格的大招。输入=LOOKUP(1,0/(A:A<>""),A:A)。这是什么原理?说白了就是用0除以条件数组,符合条件的TRUE变成0,不符合的FALSE变成错误值。最后拿1去查这个数组,找不到1就拿最后那个0来匹配。 搞懂了逆向查询的逻辑吗?如果想根据E3的商品名反查销售经理,就这么写:=LOOKUP(1,0/(E2=C2:C10),B2:B10)。这里面的1是怎么回事?其实就是为了激活后面那个动态数组。 要是有多条件需要同时满足呢?比如说要同时看商品名和部门来查经理。公式就变成了:=LOOKUP(1,0/(E2=B2:B10)/(F2=C2:C10),A2:A10)。注意看这里有个连除的操作。 再看一个带逻辑判断的类别查询。比如D列有个类型对照表,A列是产品名。要是A列里的产品包含了D列里的关键字就显示出来。B2的公式是:=LOOKUP(1,0/(ISNUMBER(FIND(D2:A2))),A2:A2)。加上负号后数值变负数了,最后还能返回正确的结果。 最后讲讲带合并单元格的复杂情况。比如根据E2的商品去查C列对应的经理。F2的公式写成:=LOOKUP("做",INDIRECT("C1:C"&MATCH(E2,B:B,)))。这里先用MATCH函数精确找位置返回8,然后用INDIRECT把字符串变成实际引用范围。最后LOOKU就返回这个范围内的最后一个文本内容。 关于Excel更多高效技能的内容全在后面啦!