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

2025-10-21 05:46:15

1、【2大难点】

    解决这个问题有2 个难点:

1、从第一行到最后一行之间数据可能不连续,有空白;

2、最后一行的数据是文本还是数字是未知数,或者是数字与文本的混合,如何找共性。

   那么面对下图所示的图表我们该怎么办呢?

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

2、【如何突破】

    1、MATCH()函数的默认查找方式有个规则

      规则:当用默认方式查询时(即最后个参数省略),如果匹配不到准确值,则返回最后一条有效数据所处的位置。

     我提供的两种方法都是基于这个规则,不管数据中间是否有空白或不连续都成立。

3、【第2难点分析】

    那有人要问了,这个规则随便应用就可以解决掉2大难点啦,还要用卖官子吗。

    当然有必要了,举个例子:

    图中的区域中我们来查找最后一行,三列数据格式分别是文本、文本、数字;

    公式:=MATCH(CHAR(1),A:A,-1)   返回结果 17

          =MATCH(CHAR(1),B:B,-1)   返回结果 17

          =MATCH(CHAR(1),C:C,-1)   返回结果 12

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

4、从上述结果可以看出,公式=MATCH(CHAR(1),C:C,-1)  不能返回正确的行号。

原因是这个查找空白单元格的方法对于数字格式的单元格是无效的。

所以不能用该方法。

1、【原理】

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

2、【将对象转换为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()函数规则,则返回最后一行的位置。

3、【实操】

    在对应三个查找单元格中分别输入公式:

    =MATCH(2,1/(A:A<>""))

    =MATCH(2,1/(B:B<>""))

    =MATCH(2,1/(C:C<>""))

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

4、【显示结果】

    得到结果均为17,完全一至。

    这个方解决了题出的2大难点,无论是否不连续,无论是文本还是数字还是说是数字与文本的混合情况都成立。

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

1、【序言介绍】

    在介绍方法之前,我给大家介绍一下EXCEL 的一个内部秘密,它是一个数字“9E+307”

    这个数字是EXCEL中可以计算的最大的数字,这是个非常规数字。

    此方法我们就会要用到这个内部数字来实现查找。

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

2、【原理】

    既然数字“9E+307”是EXCEL中可以计算的最大的数字,那么代表着所有单元格的数字都是 <= 数字“9E+307”的。

    正常来说当EXCEL中用MATCH()函数查找数字“9E+307”时,是找不到等值的,那么依据前述的MATCH()函数的规则,它将返回最后一行的位置。

    如果被查找对象的格式不是数字而是文本,或者是数字与文本的混合,那么我们再用文本查找方法来实现,这样两者合一就万无一失了。

3、【实操】

    在对应三个查找单元格中分别输入公式:

    =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))    

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

4、【显示结果】

     从显示的结果来看,公式是完全正确的。

     之所以加入干扰因子,是让大家明白这个公式的正确使用的用意。

     请看如下分步执行过程,

     每个公式在本例中均有两个结果,原因是加入干扰因子的结果。但是最终有效的是最大的那个值。

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

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

1、    对于只用单元格公式求解最后一行的办法,我这列举了个人用得非常满意的方法。当然如果用VBA 的话,实现起来也是非常简单。后面我还会给大家介绍VBA 方法来解决的经验。

    不管是布尔值查找法,还是非常规查找法,我也给大家非常多的原理介绍了。如果还有不明之处,请真的留言。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢