如何在将数据从一个工作簿拖到另一个工作簿时忽略隐藏的单元格

时间:2017-06-20 20:22:37

标签: excel

我熟悉Excel将数据从一个工作簿提取到另一个工作簿的能力。例如,如果我有一个工作簿workbook-1.xlsx,我可以使用以下公式将数据从A8的单元格workbook-1.xlsx提取到workbook-2.xlsx的单元格A1:

='C:\users\username\documents\[workbook-1.xlsx]Sheet1'!A8

如果我将光标向下拖动到框的一角,它将重现此结果,并将单元格A9A10等中的数据提取到单元格A2中,A3,等等。现在假设在我的工作簿workbook-1.xlsx中,我有一系列从A8A15的单元格,其中隐藏了一些单元格。我想仅从那些可见的单元格中提取数据。

假设所有单元格都可见,我们获得以下地图:

A8  --> A1
A9  --> A2
A10 --> A3
A11 --> A4
A12 --> A5
A13 --> A6
A14 --> A7
A15 --> A8

但是,假设隐藏了单元格A10A11,我该如何获取以下地图?

A8  --> A1
A9  --> A2
A12 --> A3
A13 --> A4
A14 --> A5
A15 --> A6

实际上,我希望隐藏的单元格被忽略。理想情况下,我正在寻找形式的功能:

=IF('[workbook-1.xlsx]Sheet1'!A8_is_visible, '[workbook-1.xlsx]Sheet1'!A8, skip)

有没有办法在Excel 2010中实现这一点?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

使用公式你可以做到: 如果您使用过滤器隐藏某些单元格,您可以在数据附近创建一个新列,并在隐藏数据之前在B8中写入:

=SUBTOTAL(103,$A$8:$A8)

并向下拖动,当您应用过滤器时,它将仅为可见行写入序号 将您的公式更改为:

=IFERROR(INDEX('C:\users\username\documents\[workbook-1.xlsx]Sheet1'!$A$8:$A$15,MATCH(ROW()-1,'C:\users\username\documents\[workbook-1.xlsx]Sheet1'!$A$8:$A$15,0)),"")  

然后将其拖下来 或者你可以使用VBA