一、常规引用格式:LOOKUP(查值,查区域)例1:根据姓名查语文成绩,公式为=LOOKUP(H2,C2:D19)
例2:根据姓名查英语成绩,公式为:=LOOKUP(H2,C2:F19)
vlookup函数8种用法
通过这两个例子我们可以发现,LOOKUP在进行查时公式的结构非常简单,查值和要的结果分别位于查区域的首列和末列。但是仅仅了解这个用法是远远不够的,如果我们再试一个数据的话,有可能就会发现问题:
当查姓名变成赵永福的时候,结果就不对了,这是因为LOOKUP函数使用的是二分法查,也就是模糊匹配。因此,在使用LOOKUP进行常规查的时候,有一个非常重要的步骤,就是按照查内容(姓名所在的c列)升序排序。
当我们排序以后,公式的结果立刻变成了正确的,是不是很神奇!
这又引出了一个新的问题,如果数据不能排序的话,LOOKUP函数还能用吗?肯定能用啊,下面来看看LOOKUP函数的第二种用法。二、精确查的套路格式:=LOOKUP(1,0/(查范围=查值),结果范围)在I2单元格输入公式:=LOOKUP(1,0/(C2:C19=H2),D2:D19),回车,可看到正确结果。
关于这个套路的1和0/到底是什么意思,也是提问率最高的问题之一,在未讲解二分法原理之前,简单来说一下公式的意思。1就是要查的值,但是条件变了,不是直接查姓名,而是根据姓名得到的一组逻辑值:
注意这里只有一个TRUE,也就是我们要的姓名。接下来用0除以这些逻辑值,在进行计算的时候逻辑值TRUE代表1,FALSE代表0,当分母为0也就是FALSE的时候,计算结果是错误值:
因此,LOOKUP的工作就变成了在一组数据中1。由于这组数据只有一个0,其他都是错误值,二分法使得LOOKUP只能到不大于查值的最后一个数字,因此只能到0,最后根据0的行位置(第2行)得到第三参数对应位置的数据,即D2就是我们需要的结果。这部分内容算是函数学习中比较有难度的知识点了,初学者可能理解困难,这不要紧,随着学习的深入,当对数组和逻辑值这两大要点掌握比较熟练的时候,这些内容就很好理解了。目前如果不能完全理解,记住这个套路就行:=LOOKUP(1,0/(查范围=查值),结果范围)。同时这个套路还能延伸出多条件精确查用法:=LOOKUP(1,0/((查范围1=查值1)* (查范围2=查值2)* (查范围3=查值3)),结果范围)就是在每个查范围内到要的值,得到的逻辑值相乘后同时符合多个条件的位置就是1,原理与单条件的一样。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论