EXCEL 如何查找最后一行,万能查找法

EXCEL 实用技巧简介:本文介绍的内容完全基于工作中实战应用总结而来的。希望这些技巧能够给大家帮助。不足之处,还请各位不吝赐教^_^:)
关于最大有效数据行号的问题,在网上虽然有很多的办法来实现,但是大部分是有前提条件的:
1、所有数据行必须为连续的;
2、要么数据对应的判断列必须是文本格式,要么是数字格式;
但是往往在实际情况中我们没有办法碰到这么理想的情况,怎么办,我这列举2个办法来实现。

问题解析

  • 01

    【2大难点】 解决这个问题有2 个难点: 1、从第一行到最后一行之间数据可能不连续,有空白; 2、最后一行的数据是文本还是数字是未知数,或者是数字与文本的混合,如何找共性。 那么面对下图所示的图表我们该怎么办呢?

  • 02

    【如何突破】 1、MATCH()函数的默认查找方式有个规则 规则: 当用默认方式查询时(即最后个参数省略),如果匹配不到准确值,则返回最后一条有效数据所处的位置。我提供的两种方法都是基于这个规则,不管数据中间是否有空白或不连续都成立。

  • 03

    【第2难点分析】 那有人要问了,这个规则随便应用就可以解决掉2大难点啦,还要用卖官子吗。 当然有必要了,举个例子: 图中的区域中我们来查找最后一行,三列数据格式分别是文本、文本、数字; 公式:=MATCH(CHAR(1),A:A,-1)   返回结果 17 =MATCH(CHAR(1),B:B,-1)   返回结果 17 =MATCH(CHAR(1),C:C,-1)   返回结果 12

  • 04

    从上述结果可以看出,公式=MATCH(CHAR(1),C:C,-1)  不能返回正确的行号。 原因是这个查找空白单元格的方法对于数字格式的单元格是无效的。 所以不能用该方法。

方法一、布尔值查找法

  • 01

    【原理】 布尔值说白了就是真、假(True、False)两种值,我们把所有的查找列对象转换为True或者False(在EXCEL 中True、False是由1、0来代表的),然后再来用MATCH()函数来查找最后一行。

  • 02

    【将对象转换为True、False】 判断是否不为空,如果是则True,否则False , 我们将整列数据转换过来的数组公式为: 1/A:A<>"" 这样来到的数组为{1;1;1;#DIV/0!,#DIV/0!,1,#DIV/0!,#DIV/0!,#DIV/0!} 如果再来查找值2(其实2或者2以上的数都成立), 依据MATCH()函数规则,则返回最后一行的位置。

  • 03

    【实操】 在对应三个查找单元格中分别输入公式: =MATCH(2,1/(A:A<>"")) =MATCH(2,1/(B:B<>"")) =MATCH(2,1/(C:C<>""))

  • 04

    【显示结果】 得到结果均为17,完全一至。 这个方解决了题出的 2大难点,无论是否不连续,无论是文本还是数字还是说是数字与文本的混合情况都成立。

方法二、非常规查找法

  • 01

    【序言介绍】 在介绍方法之前,我给大家介绍一下EXCEL 的一个内部秘密,它是一个数字“9E+307” 这个数字是EXCEL中可以计算的最大的数字,这是个非常规数字。 此方法我们就会要用到这个内部数字来实现查找。

  • 02

    【原理】 既然数字“9E+307”是EXCEL中可以计算的最大的数字,那么代表着所有单元格的数字都是 <= 数字“9E+307”的。 正常来说当EXCEL中用MATCH()函数查找数字“9E+307”时,是找不到等值的,那么依据前述的 MATCH()函数的规则,它将返回最后一行的位置。 如果被查找对象的格式不是数字而是文本,或者是数字与文本的混合,那么我们再用文本查找方法来实现,这样两者合一就万无一失了。

  • 03

    【实操】 在对应三个查找单元格中分别输入公式: =MAX(MATCH(9E+307,A:A),MATCH(CHAR(1),A:A,-1)) =MAX(MATCH(9E+307,B:B),MATCH(CHAR(1),B:B,-1)) =MAX(MATCH(9E+307,C:C),MATCH(CHAR(1),C:C,-1))

  • 04

    【显示结果】 从显示的结果来看,公式是完全正确的。 之所以加入干扰因子,是让大家明白这个公式的正确使用的用意。 请看如下分步执行过程, 每个公式在本例中均有两个结果,原因是加入干扰因子的结果。但是最终有效的是最大的那个值。

    总结

    • 01

      对于只用单元格公式求解最后一行的办法,我这列举了个人用得非常满意的方法。当然如果用VBA 的话,实现起来也是非常简单。后面我还会给大家介绍VBA 方法来解决的经验。 不管是布尔值查找法,还是非常规查找法,我也给大家非常多的原理介绍了。如果还有不明之处,请真的留言。

    (0)

    相关推荐

    • Excel在透视表中如何查找分区域的销售前三名?

      Excel在透视表中如何查找分区域的销售前三名

    • excel三维地图怎么放大缩小查找位置?

      excel2016中新增了一个三维地图的功能,该怎么使用这个功能插入三维地图并放大缩小查看呢?下面我们就来看看详细的教程. 1.首先,使用excel打开任一表格,然后点击插入→三维地图→打开三维地图. ...

    • Excel表格中怎么根据内容查找数据列表中的排位?

      excel表格中想要从很多名字中找到查找的名字所在的位置,该怎么查找呢?下面我们就来看看详细的教程. 1.以下为示例表格(如图): 2.下面需要查找C2单元格中的名字在列表中的排位(如图): 3.这里 ...

    • excel表格中存在的数据查找不到该怎么办?

      excel中有的时候明明存在的数值,但查找的时候就是查找不到,是Excel出了问题,还是自己操作不当? 1.如图:我们可以清楚看到,我做的这个简单表格中包含“25”这样一个数值. 2.下面我们用“查找 ...

    • excel中查找功能怎么使用?查找功能详细讲解

      查找功能很强大,跟着教程做,学习更多更深入的技巧,来帮助你在工作中更好的使用excel,下面小编就为大家介绍excel中查找功能怎么使用方法,来看看吧! 步骤 首先我们打开一个工作样表作为例子. 在开 ...

    • 如何在Excel两个工作表中查找重复数据

      在使用Excel处理大量数据大量工作表时,难免会出现重复数据.本次就给大家介绍如何在Excel两个工作表中查找重复数据. 操作方法 01 在第一工作表B2中输入以下字符:=if(A2=). 02 切换 ...

    • excel表格中如何查找重复值/怎么查找重复数据

      excel表格中如何查找重复值/怎么查找重复数据 和大家一起分享一下excel表格中如何快速查找重复值和相同的数据. 操作方法 01 一.先打开一张需要查找重复数据或重复值的EXCLE表格,如图 我们 ...

    • Excel如何在同一行或列中填充数据?

      你知道Excel如何在同一行或列中填充数据吗?快来看看吧! 操作方法 01 首先,鼠标选中采购数量下面所有的单元格. 02 在菜单栏中选择,开始. 03 点击查找和替换,下拉菜单,选择"定位 ...

    • 利用Excel排出无规律的数列简单二法

      利用Excel排出无规律的数列简单二法 操作方法 01 1. 打开Excel,然后在工作表中输入数据,接着将鼠标移到G2单元格,单击工具栏中的求和按钮"∑"计算出G2单元格的分数, ...