公式自动填充操作

时间:2016-01-06 19:16:34

标签: excel excel-formula

我正在尝试创建一个大型电子表格(10,000行公式),从另外两张表中获取信息。我想要的基本布局是:

Row1
=Sheet1!A7
=Sheet2!M7
=Sheet1!A8
=Sheet2!M8
=Sheet1!A9
=Sheet2!M9
...etc.

当我尝试使用公式自动填充时,excel会选择错误的模式,我最终会得到这样的结果:

=Sheet1!A7
=Sheet2!M7
...
=Sheet1!A11
=Sheet2!M11
=Sheet1!A17
=Sheet2!M17

我给了excel 10细胞以使图案基础,并且无法使其工作。任何人都可以帮我弄清楚如何做到这一点(希望没有VBA)?

5 个答案:

答案 0 :(得分:4)

尽量避免使用OFFSET functionINDIRECT / ADDRESS函数对来支持INDEX function和一些数学。

在前两个单元格中使用这两个公式。

=INDEX(Sheet1!A:A, 7+ROW(1:1)/2)
=INDEX(Sheet2!M:M, 7+ROW(1:1)/2)

选择两个单元格并向下拖动“填充手柄”。

¹当整个工作簿中的任何内容发生变化时,不仅在影响其结果的某些内容发生变化时,挥发性函数都会重新计算。 易失性函数的示例包括INDIRECTOFFSETTODAYNOWRANDRANDBETWEENCELLINFO工作表函数的某些子函数也会使它们变得不稳定。

答案 1 :(得分:2)

这是一个设置链接的简单 VBA 宏。使用它直到出现非 VBA 解决方案:

Sub propagator()
   Dim i As Long, k As Long
   k = 1

   For i = 7 To 99
      Cells(k, 1).Formula = "=Sheet1!A" & i
      k = k + 1
      Cells(k, 1).Formula = "=Sheet2!M" & i
      k = k + 1
   Next i
End Sub

只需选择目标工作表并运行宏。

调整 99 以满足您的需求。

答案 2 :(得分:1)

你可以在没有VBA的情况下用一些=INDIRECT技巧来解决这个问题 - 以下内容位于“Sheet3”中:

Excel Screenshot

您可以分别在单元格Sheet1!ASheet2!M中输入A1A2,然后填写。然后,在7中输入B1,在B2中输入公式 - 再次填写。第一个公式有效地将计数递增2。最后,您可以在C1中输入公式并填写。

答案 3 :(得分:1)

使用INDIRECT功能构建此功能,您可以根据当前行号使模式正常工作。假设您的第一个单元格位于第2行:

=INDIRECT("Sheet1!A" & 7+(ROUNDDOWN(ROW()/2,0)-1))

=INDIRECT("Sheet2!M" & 7+(ROUNDDOWN(ROW()/2,0)-1))

ROW()返回当前行,然后除以2(因为每两个单元格只增加一行参考),然后减去1(因为我们希望第一次调整为0)。 / p>

答案 4 :(得分:1)

尝试第2行:

=INDIRECT("Sheet1!A" & 7 +QUOTIENT(ROW()-2,2))

在第3行:

=INDIRECT("Sheet2!M" & 7 +QUOTIENT(ROW()-2,2))

突出显示并复制。