• 注册
  • 你转发,我送钱!

    • 查看作者
    • Excel中通俗易懂的Lookp多条件查找中(1,0/…)原理解释,解除你多年的疑惑!图文

      网上看到一篇网友的Lookup计算原理分析,个人觉得非常通俗易懂,特此分享!

      首先看一个实例

      我们来看一个公式:=lookup(1,0/((A2:A7=E2)*(B2:B7=F2)),C2:C7)

      这个公式的意思就是根据E2和F2的信息,在G2生成需要的结果。

      当然,这个方案还有其他的解法。我们不在这里讨论这些。只是通过这个例子来看。

      首先我们来复习一下lookup的用法

      向量型查找=lookup(lookup_value,lookup_vector,result_vector)

      =lookup(查找的值,查找的范围,返回值的范围)

      数组型查找= lookup(lookup_value,array)

      =lookup(查找的值,数组)

      这个是实际的操作例子。

      原理解析

      0/这个结构在lookup里应用还是比较广泛的。我们首先看看(A2:A7=E2)*(B2:B7=F2)运算之后的结果到底是什么。

      在Excel中,如果A和B的值相等,=A =B,会返回true,也就是1.如果不相等,会返回false,也就是0

      上图就是比较直观的图示。再来一张图。

      通过逻辑值的运算,我们可以得到G列的结果,这个相信大家都能明白。

      现在我们可以知道,逻辑值相乘结果等于1的那一行,就是我们需要的结果,现在我们的任务就是提取出来。

      lookup查找的原理是二分法。要想准确地找到,这组值需要升序排列,很明显,(A2:A7=E2)*(B2:B7=F2)的结果是不能满足需求的。

      重点逻辑

      高手们想出了0/的方法。把结果由1和0构成的一组数值,变成了一组由0和错误值的数值

      这里唯一符合结果的就是0所在的哪一行,其余的都是错误值

      lookup最牛叉的就是查找的时候可以忽略错误值。这样,其余的错误值都被忽略了,只剩下0.

      我们要做的就是,使用一个大于等于0的数值查找即可。

      =lookup(1,0/((A2:A7=E2)*(B2:B7=F2)),C2:C7)。

      总结

      “0/”的目的就是把符合条件的变成0,其余的都是错误值。

      如果你条件只有一个满足的,那刚好就会返回这个0对应的位置所在数据

      如果条件有多个满足,那么就会返回最后一个计算出来的0对应位置的数据


      喜欢的各位点个赞,有什么问题也可以私信或者评论里提出,可以百度搜索实例视频观看更多案例教学

    • 0
    • 0
    • 0
    • 5
    • 单栏布局 侧栏位置: