Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 9218|回复: 4

[分享] 数组公式获取自动筛选后第一行的行号

[复制链接]
发表于 2012-4-1 09:25 | 显示全部楼层 |阅读模式
在Excel中进行自动筛选后,筛选结果中第一行的行号是不确定的。在某些特定的筛选中(例如某列筛选内容都是相同的),要获取筛选后这列单元格的内容,就需要先取得筛选后第一行的行号。下面的数组公式可以实现这个目的,假如标题在第4行,数据在A5:D500区域并进行了如图所示的自动筛选。   
    在A2中输入数组公式:
    =MATCH(1,SUBTOTAL(3,OFFSET(A5,ROW(A5:A500)-ROW(A5),0)),0)+ROW(A4)
    公式输入完毕后按Ctrl+Shift+Enter结束(下同),即可获得筛选后第一行的行号“28”。
    或用下面的数组公式:
    =MIN(IF(SUBTOTAL(3,INDIRECT(ADDRESS(ROW(A5:A500),1))),ROW(A5:A500)))
    说明:SUBTOTAL函数总是忽略筛选结果中隐藏的行,其第一个参数为“3”,相当于COUNTA函数,用该函数与OFFSET函数或INDIRECT函数的组合获取一个包含“0”和“1”的数组,其中第一个“1”在数组中的位置即筛选结果中第一行的位置,第一个公式用MATCH函数获取,第二个公式将“1”用行号替换,其最小值即为第一行行号。
    要取得A列筛选结果中第一行单元格的内容,可用下面的数组公式:
    =OFFSET(A1,MATCH(1,SUBTOTAL(3,OFFSET(A5,ROW(A5:A500)-ROW(A5),0)),0)+ROW(A4)-1,)
发表于 2012-4-1 11:38 | 显示全部楼层
学习学习                    
回复

使用道具 举报

发表于 2012-4-2 17:25 | 显示全部楼层
回复

使用道具 举报

发表于 2013-3-23 14:24 | 显示全部楼层
好象不行哦,能辅导下吗?
回复

使用道具 举报

匿名  发表于 2014-9-25 11:40
你好,我刚好遇到这个问题,我试过你这个公式,不能用呢
回复

使用道具

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-18 12:32 , Processed in 0.218651 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表