优秀的编程知识分享平台

网站首页 > 技术文章 正文

Excel – lookup的第三个参数用过吗?它竟能做偏移

nanyue 2024-12-04 14:24:59 技术文章 9 ℃

上一篇查找最后一个非空单元格的推文,各种场景和公式基本已经很全了,再有更多公式变化,最多也就是各种参数和嵌套公式互相组合的演变而已。


不过网友还是提出了灵魂拷问:只能查找最后一个吗?指定查找最后第 n 个非空单元格不行吗?


行!哪能不行呢?而且,还不超纲,不需要什么高难度函数,用 lookup 就能办到,不服来辩。


案例:


如下图 1 所示:分别查找 B 列倒数第 1、2、3 个非空单元格。


效果如下图 2 所示。


解决方案:


1. 在 F2 单元格中输入以下公式:

=LOOKUP(9E+307,B1:B9)


公式释义:

  • 9E+307 表示 Excel 能处理的最大数值;
  • LOOKUP(9E+307,B1:B9):在 B1:B9 区域中查找这个最大数值,找不到则返回区域内的最后一个单元格的值


上述示例是找最后一个非空单元格,对很多读者来说已经不算是难事。


下面是今天要讲解的重点,将第三个参数作为偏移量,查找倒数第 n 个非空单元格。


2. 在 G2 单元格中输入以下公式:

=LOOKUP(9E+307,B2:B9,B1:B8)


在解释本公式前,需要先给大家讲解一下 lookup 各个参数的用途。


LOOKUP 函数详解:

作用:

  • 查询一行或一列并查找另一行或列中的相同位置的值。


语法:

  • LOOKUP(lookup_value, lookup_vector, [result_vector])


参数:

  • lookup_value:必需
    • LOOKUP 在第一个 vector 中搜索的值;
    • Lookup_value 可以是数字、文本、逻辑值、名称或对值的引用。
  • lookup_vector:必需
    • 只包含一行或一列的区域;
    • lookup_vector 中的值可以是文本、数字或逻辑值。
  • [result_vector]:可选
    • 只包含一行或一列的区域;
    • result_vector 参数必须与 lookup_vector 参数的大小相同。


说明:

  • 如果 LOOKUP 函数找不到 lookup_value,则该函数会与 lookup_vector 中小于或等于 lookup_value 的最大值进行匹配。
  • 如果 lookup_value 小于 lookup_vector 中的最小值,则 LOOKUP 会返回 #N/A 错误值。


公式释义:

  • B2:B9:查找区域
  • B1:B8:结果区域
  • LOOKUP(9E+307,B2:B9,B1:B8):
    • 在 B2:B9 区域中查找最大数值,找不到则定位到区域内的最后一个单元格;
    • 返回区域 B1:B8 中同等位置,即最后一个单元格的值;
    • 本例中,查找区域和结果区域错开,相当于进行了偏移,从而实现了查找 B 列倒数第二个非空单元格的目的


3. 在 H2 单元格中输入以下公式:

=LOOKUP(9E+307,B3:B9,B1:B7)


公式释义:

  • 基本原理与前一个公式相同,因为要查找倒数第 3 个非空单元格,所以第三个区域的设置要比第二个区域向上偏移 2 个单元格。


很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。

现在终于有了,文中专栏,从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手。

最近发表
标签列表