在Excel中应用过滤器后引用相同的单元格

时间:2018-01-08 22:26:44

标签: excel excel-vba filter vba

我有以下情况: Sheet1

enter image description here

和Sheet2

sheet2

在工作表2中,单元格B1等于Sheet1!B2,当我在工作表1中应用滤镜时,它不会改变。有没有办法在第一张纸上设置过滤器" C"让第二张纸上的单元显示156566?

2 个答案:

答案 0 :(得分:0)

您可以在Sheet1中添加辅助列吗?

如果是这样,请将此公式添加到Sheet!C1

=ROW()

并向下复制所有数据行。如果您愿意,请隐藏此列

现在,Sheet2!B1的公式为

=INDEX(Sheet1!$B:$B,AGGREGATE(15,5,Sheet1!$C:$C,2))

答案 1 :(得分:0)

过滤仅隐藏行,因此Row2在技术上仍然是“154221”。

我发现这个解决方案使用公式来连续返回第一个可见单元格: Find Value of First Visible Cell

将工作表2上的公式更改为以下内容,然后按 Ctrl + Shift + Enter 将公式应用为数组:

=INDEX(Sheet1!B2:B5,MIN(IF(SUBTOTAL(3,OFFSET(Sheet1!B2,ROW(Sheet1!B2:B5)-ROW(Sheet1!B2),0)),ROW(Sheet1!B2:B5)-ROW(Sheet1!B2)+1)))

请注意,这将为Sheet1 上的第一个可见单元格提供B2:B5 的范围。如果添加更多行,则需要更新范围。可能有一种更优雅的方式来处理它。