引用筛选列中的顶部单元格

Referencing the top cell in a filtered column

提问人:AesusV 提问时间:11/9/2021 最后编辑:AesusV 更新时间:11/9/2021 访问量:349

问:

所以我有一个数据表,我正在使用 AutoFilter 来过滤结果。

我试图找出一种方法来使用 VBA 从过滤列表中提取前 5 个单元格并将它们粘贴到单独的摘要表上,但我试图避免有一个只会来回复制和粘贴的宏(闪烁的灯光等等)。

我试图通过公式完成此操作,但是随着表格的过滤,它总是最终返回重复的值。

=INDIRECT("A"&MIN(IF(SUBTOTAL(3,OFFSET(A1,ROW(A1:A19)-ROW(A1),,1)),ROW(A1:A19))))

有没有人有一种直接的方法从过滤的数组中提取前 5 个可见单元格并将它们粘贴到另一张纸上?

编辑:使用 Excel 2016

VBA Excel-公式

评论

0赞 Ike 11/9/2021
如果您有 Excel 365,则可以使用新的 -Function plusFILTERLARGE
0赞 AesusV 11/9/2021
感谢您的回复,我听说过该功能,但不幸的是,我的公司只有 Excel 2016。

答:

0赞 Jos Woolley 11/9/2021 #1

=INDEX(MyRange,SMALL(IF(SUBTOTAL(3,OFFSET(INDEX(MyRange,1),ROW(MyRange)-MIN(ROW(MyRange)),)),ROW(MyRange)-MIN(ROW(MyRange))+1),ROWS(A$1:A1)))

并复制下来。

这将需要为您的 Excel 版本提交为数组公式(即 with )。CTRL+SHIFT+ENTER

请注意,应将 MyRange 设置为不包含标题行。

评论

0赞 AesusV 11/9/2021
乔斯,非常感谢你,这奏效了!我也弄清楚了为什么这一开始就给我带来了这么多麻烦......当我在结果区域中向下拖动公式时,搜索范围也相应地移动,而不仅仅是“...行(A$1:A1)”。无论如何,再次感谢!整天都在用这个把头撞墙!