EXCEL中如何动态地引用某列最后一个单元格

栏目:影视资讯  时间:2022-11-07
手机版

  在我之前的文章中讲过易失性函数,所谓易失性函数就是函数的值很容易变化,不是固定的,这类函数如NOW(),DATE(),TIME()函数,都是和时间有着很密切的关系。

  其实,对于函数的引用来说,如何解决实时变化问题是不容易的。需要特殊的办法。比如下面的实例:在SHEET2中的B1单元格中需要引用表SHEET1中A列的最后一个单元格中的数值。但是,SHEET1中A列的最后一个单元格的位置是不确定,随时会增加行数,当有变化时要求在SHEET2中的B1单元格也随之变化。

  如果用VBA来解决,这是很容易的,只要做几行代码,放在thisbook的代码窗口,很容易实现,但对于函数来说,就不能这么简单了,那么该怎么办呢?我下面给出两种办法,供大家参考。这两种办法分别用到不同的函数组合,下面讲给出详细的讲解:

  第一:公式=OFFSET(Sheet1!A1,COUNTA(Sheet1!A:A)-1,0,1,1)

  我们还是先讲一下上面公式中利用到的函数,其实这些函数在我的这个平台上都已经讲过很多次了,再次讲只不过是为了使每一个单元独立的成一章节,让读者更容易看而已。

  1 COUNTA 函数

  用途:返回参数组中非空值的数目。利用函数COUNTA可以计算数组或单元格区域中数据项的个数。

  语法:COUNTA(value1,value2,...)

  说明:value1,value2,...所要计数的值,参数个数为1~30个。在这种情况下的参数可以是任何类型,它们包括空格但不包括空白单元格。如果参数是数组或单元格引用,则数组或引用中的空白单元格将被忽略。如果不需要统计逻辑值、文字或错误值,则应该使用COUNT函数。

  2 OFFSET 函数

  用途:以指定的引用为参照系,通过给定偏移量得到新的引用。返回的引用可以是一个单元格或单元格区域,并可以指定返回的行数或列数。

  语法:OFFSET(reference,rows,cols,height,width)。

  参数:

  Reference是作为偏移量参照系的引用区域,它必须是单元格或相连单元格区域的引用;

  Rows是相对于偏移量参照系的左上角单元格,上(下)偏移的行数。如果使用5作为参数Rows,则说明目标引用区域的左上角单元格比reference低5行。行数可为正数(代表在起始引用的下方)或负数(代表在起始引用的上方);

  Cols是相对于偏移量参照系的左上角单元格,左(右)偏移的列数。如果使用5作为参数Cols,则说明目标引用区域的左上角的单元格比reference靠右5列。列数可为正数(代表在起始引用的右边)或负数(代表在起始引用的左边);

  Height是要返回的引用区域的行数,Height必须为正数;

  Width是要返回的引用区域的列数,Width必须为正数。

  回过头来讲解公式OFFSET(Sheet1!A1,COUNTA(Sheet1!A:A)-1,0,1,1), 参考单元格是Sheet1!A1 即第一个工作表的A1单元格;COUNTA(Sheet1!A:A)-1 表示A列单元格的非空的单元格个数,那么向下的偏移量是这个非空单元格的个数减去1;向右的偏移量是0,单元格的大小为一个单元格。

  通过上面的公式可以得出,这时对于单元格的引用即是A列最后的单元格。

  第二: 公式=INDIRECT("sheet1!A"&COUNTA(Sheet1!A:A))

  公式中利用的函数

  1 COUNTA 函数 同上

  2 INDIRECT 函数

  用途:返回由文字串指定的引用。此函数立即对引用进行计算,并显示其内容。当需要更改公式中单元格的引用,而不更改公式本身,即可使用INDIRECT函数。

  语法:INDIRECT(ref_text,a1)。

  参数:Ref_text是对单元格的引用,此单元格可以包含A1样式的引用、R1C1样式的引用、定义为引用的名称或对文字串单元格的引用;A1为一逻辑值,指明包含在单元格ref_text中的引用的类型。如果a1为TRUE或省略,ref_text被解释为A1-样式的引用。如果a1为FALSE,ref_text被解释为R1C1-样式的引用。

  公式讲解:=INDIRECT("sheet1!A"&COUNTA(Sheet1!A:A)) 返回sheet1工作表中A列最后的非空的最后的单元格。这样就达到了目的。

  今日内容回向:

  1如何动态地引用某列的最后一个单元格?

  2 两种办法哪种办法更好些?

  举报/反馈

上一篇:人生苦短,随缘就好!
下一篇:《幸福到万家》大结局,传家兄妹洗白,幸运被讽“占便宜”

最近更新影视资讯