分享

揭开Lookup函数“0/”的神秘面纱,好多公式瞬间明白了!

 散心~ 2019-02-15

Lookup函数功能很强大,它可以区间查找、最后一个符合条件查找、多条件查找等。

【例】在G4中设置公式,根据G2的入库时间和G3的产品名称,从左表中查找对应的入库单价。

揭开Lookup函数“0/”的神秘面纱,好多公式瞬间明白了!

G2公式:

=LOOKUP(1,0/((B3:B8=G2)*(C3:C8=G3)),D3:D8)

有很多同学提问,为什么要用0/的结构?其实该结构广泛应用于lookup查找公式中,为了帮助同学们理解以便能灵活应用。今天就此进行详细的剖析:

首先,我们先看看(B3:B8=G2)*(C3:C8=G3)运算后是什么个结果?

在excel公式中如果:

  • A和B的值相等,=A=B 会返回结果True,True在四则运算中相于数字1
  • A和B的值不相等,=A=B 会返回结果False,False在四则运算中相于数字0

所以(B3:B8=G2)的结果是由false和true构成的一组值,如果放在单元格中,结果如F7:F12区域值所示:

揭开Lookup函数“0/”的神秘面纱,好多公式瞬间明白了!

同样(C3:C8=G3)的结果也是由True和Fasle组成的一组数值,而2个相同大小的一组值相乘,True*True=1,True*False=0,False*False=0,相乘的最终结果是由1和0组成的一组数。如下图 H7:H12 所示。

揭开Lookup函数“0/”的神秘面纱,好多公式瞬间明白了!

由上图可以看出,相乘结果中值为1的行(H9所示),正是符合两个条件的行。那么怎么把这个1的位置提取出来呢?

Lookup函数的查找原理是二分法。按二分法原理,lookup函数会在在二分位处查找,要想准确查找到,这组值需要按升序排列,而只是公式(B3:B8=G2)*(C3:C8=G3)的结果是不符合要求的。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多