我正在制作一个引用另一个工作表的工作表。引用工作表是每 25 行重复一次的数据块。

详细信息:我希望第一个单元格引用为:=IF(RFA!B40>0,RFA!B40,"")
在下一行同一列中我将其设置为
=IF(RFA!B65>0,RFA!B65,"") (25 个差异)

我想重复此模式 22 行。当我选择 1 个字段并向下拖动时,它会向下移动一行(40、41、42 等)

如果我选择带有公式的 2 个原始字段并向下拖动,第三行将变为 42,第四行将变为 67。

我想要它做的是这样的:

=IF(Sheet1!A45="","",Sheet1!A45)
=IF(Sheet1!A60="","",Sheet1!A60)
=IF(Sheet1!A75="","",Sheet1!A85)
=IF(Sheet1!A90="","",Sheet1!A110)

这可能吗?我该如何实现它?


最佳答案
3

如果您有权访问,WRAPROWS()则可以使用以下公式,并且不需要向下复制,因为它会溢出整个数组:


=TAKE(WRAPROWS(RFA!A40:A90,15),,1)

或者,旧版本可以使用:

=IFERROR(INDEX(RFA!A$40:A$90,COLUMN(A1)+(ROW(A1)-1)*15),"")

使用 INDEX 和一些数学运算:

=IF(INDEX(Sheet1!A:A,(ROW($ZZ1)-1)*15+45)="","",INDEX(Sheet1!A:A,(ROW($ZZ1)-1)*15+45))

然后,当它被向下拖动时,行乘数会发生变化,下一个参考是下面 15 行。

如果您想动态引用单元格,则可以使用间接。如果您了解它是如何工作的,它将是添加到您的思维工具箱中的一个很棒的工具!

例如使用以下公式: =IF(INDIRECT(“Sheet1!A” & ROW()*15)=””,””,INDIRECT(“Sheet1!A” & ROW()*15)) 从第 3 行(例如 A3)开始并将其向下拖动

对于纯粹主义者,您可以从单元格 A2 开始,但这会使公式稍微复杂一些: =IF(INDIRECT(“Sheet1!A” & (ROW()*15)+15 )=””,””,INDIRECT(“Sheet1!A” & (ROW()*15)+15 )