excel-LOOKUP函数多条件查找

语法: LOOKUP(查找值,查找区域,结果区域)

  • 注意: Lookup() 多条件查找时无需排序,正常LOOKUP函数要求“查找区域”中的值必须按升序排列,因为是二分法原理

举例: LOOKUP(1,0/(($A$2:$A$9=E2)*($B$2:$B$9=F2)),$C$2:$C$9)

  • 自测公式 =LOOKUP(1,0/(($O$1:$O$22=C1)*($P$1:$P\$22=D1)),$R$1:$R$22)
  • 条件值显示:=LOOKUP(1,0/(
    ({FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE})
    *
    ({FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE})
    ),
    $R 1 : 1: 1:R$22)
  • 查找值显示: =LOOKUP(1,
    {#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;0;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!},
    $R 1 : 1: 1:R$22)

分解步骤:

  • 第一步,括号内$A$2:$A$9=E2和$B$2:$B$9=F2,两个等式,很明显,分别代表两个条件。

    • 注意
      • 一,范围在等号前面,值在等号后面。顺序不能乱;
      • 二,返回的结果分别是一串数组而不是单一的值。这里数组里的数据有两种,TRUE和FALSE
  • 第二步,两个条件相乘,专业术语称为【逻辑与】,即两条件同时满足,返回的结果,由于两个条件每个返回的都是一串数组,那么相乘得到的结果,也是一串数组,而非单一的值。

    • 注意 :这里的数组数据也是两种,0和1。
  • 第三步,用零值,去除以第二步得到的结果,那么原本第二步是0值的,0作为分母无意义,返回错误值#DIV/0!,而仅有第二步结果为1的,正确算出结果得到零值。

  • 第四步,
    在这里插入图片描述

  • 第五步,接下来就是二分法原理了,在只有0和错误值组成的数组中,查找数字1,由于LOOKUP函数使用二分法,默认数据从小到大排序,二分值0比1小,就会一直往下查找,于是就找到了最后一个0值(LOOKUP函数忽略错误值,故二分法不会找到错误值),这条数据就是同时满足两个条件的、我们所需要的数据了。

    • 回到我们第三步提出的疑问,用零值去除以第二步的结果,意义何在?

      • 很简单,意义就在于将不符合条件的值从第二步的结果0,转变为错误值#DIV/0!,这样就可以避免LOOKUP函数查找时,在一 堆0和1组成的数组中,用二分法查找1,这样是不准确的,
        所以,用0去除,将第二步结果为0的转变为错误值,LOOKUP就可以直接将其PASS掉不考虑。

前三步图解,示例:
前三步图解

公式在这里插入图片描述

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页

打赏作者

米米吉吉

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值