Excel中如何获取某列(行)最后一个非空单元格的值

 我来答
帐号已注销
2021-04-08 · TA获得超过2.7万个赞
知道大有可为答主
回答量:3.9万
采纳率:97%
帮助的人:1227万
展开全部
在Excel中我们能够使用数组公式来找到行或列中的最后一个非空单元格。然后再此通过单元格的地址并使用INDIRECT函数就可以获取到此单元格的值。

excel 如何使用数组公式来找到行或列中的最后一个非空单元格
取得一列中的最后一个非空行

1、接下来的公式可以返回A列中最后一个非空单元格的行号:

=MAX((A:A<>"")*(ROW(A:A)))

2、通过这个行号我们就可以使用ADDRESS函数来获取到此单元格的地址:

=ADDRESS(MAX((A:A<>"")*(ROW(A:A))),COLUMN(A:A))

3、最后我们以此获取到的地址为基础使用INDIRECT函数就可以获取到此单元格的值

=INDIRECT(ADDRESS(MAX((A:A<>"")*(ROW(A:A))),COLUMN(A:A)))

取得一行中的最后一个非空列

1、接下来的公式和上面取得非空行的公式原理是一样的,它可以返回第一行中最后一个非空单元格的列号:

=MAX((1:1<>"")*(COLUMN(1:1)))

2、同理通过这个列号我们就可以使用ADDRESS函数来获取到此单元格的地址:

=ADDRESS(1,MAX((1:1<>"")*COLUMN(1:1)),1)

3、最后我们以此获取到的地址为基础使用INDIRECT函数就可以获取到此单元格的值

=INDIRECT(ADDRESS(3,MAX((3:3<>"")*COLUMN(3:3)),1))

注意:以上公式都是数组公式,所以你必须使用CTRL+SHIFT+ENTER来输入这些公式
哆啦C梦63n
推荐于2017-11-26 · TA获得超过188个赞
知道答主
回答量:122
采纳率:0%
帮助的人:121万
展开全部
获取D列最后一个非空数值单元格的值: =lookup(9e307,D:D)。获取第7行最后一个非空数值单元格的值: lookup(9e307,7:7)。 获取D列最后一个非空文本单元格的值: =lookup(char(65535),D:D)获取第7行最后一个非空文本单元格的值: =loolup(char(65535),5:5) 关键:lookup函数 9e307(Excel允许输入的最大数值。) 65535(Excel允许输入的最大单个文字。)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小周喜欢熬夜
高粉答主

2021-04-08 · 每个回答都超有意思的
知道大有可为答主
回答量:8789
采纳率:72%
帮助的人:203万
展开全部
我们如何知道在Excel中的数据到底有多少行?我想这个问题肯定有很多人特别想知道,因为在我们VBA案例中,经常会用得到最后行号,下面就和大家分享几种方法:

1.使用For循环方法
'定义num储存行号的变量,i循环变量
Dim num, i
'将Excel最大行号赋值给变量
num = Rows.Count
'开始循环并判断,找出最后有值的单元格
For i = 1 To num
If Range("a" & num) <> "" Then
Exit For
End If
num = num - 1
Next
'输出num,也就是得到的行号
MsgBox num
执行后可以正确得到最后数据行行号

不足点:
数据行很少的情况下,循环起来好慢。
2.使用.UsedRange方法
'定义一个储存行号的变量
Dim num
'使用UsedRange获取的行号赋值给num
num = ActiveSheet.UsedRange.Rows.Count
'输出num,也就是得到的行号
MsgBox num
代码执行后可以获取到最后一行行号

不足点:
单元格存在有格式的单元格,就会算上带有格式的单元格,得到的行号就会有问题

3.使用Range().End(xlDown)方法
'定义一个储存行号的变量
Dim num
'使用Range("").End(xlDown)获取的行号赋值给num
num = ActiveSheet.Range("a1").End(xlDown).Row
'输出num,也就是得到的行号
MsgBox num
代码执行后可以获取最后一行行号

不足点:
如何列数据中有空白行,就得出错误的行号

如果最后的数据行被隐藏,也会得到错误行号

4.使用Range().End(xlUp)方法
'定义一个储存行号的变量
Dim num
'使用Range("").End(xlUp)获取的行号赋值给num
num = ActiveSheet.Range("a" & Rows.Count).End(xlUp).Row
'输出num,也就是得到的行号
MsgBox num
代码执行后可以获得最后一行数据行号

不足点:
如果整个表格的最后行有数据,就会得到错误行号

如果最后的数据行被隐藏,也会得到错误行号

5.使用Cells.SpecialC
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式