公式自动填充操作

我试图创build一个大的电子表格(10,000行公式),从其他两张表中获取信息。 我想要的基本布局是:

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

当我尝试使用公式自动填充时,excelselect了错误的模式,最后我得到了这样的结果:

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

我给了excel 10个单元格,以此为基础,并且一直无法使其工作。 任何人都可以帮我弄清楚如何做到这一点(希望没有VBA)?

尽量避免使用易失性的OFFSET函数或INDIRECT / ADDRESS函数来支持INDEX函数和一些math运算。

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

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

select两个单元格并向下拖动填充手柄。


¹ 只要整个工作手册中的任何内容发生变化,挥发性函数就会重新计算,而不仅仅是当影响结果的内容发生变化时。 易失性函数的例子是间接 , 偏移 , 今天 , 现在 , 兰德和兰德维恩 。 CELL和INFO工作表函数的一些子函数也会使它们变得不稳定。

这是一个简单的VBAmacros,它build立了你的链接。 使用它,直到提出非VBA解决scheme:

 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 

只需select目标工作表并运行macros。

调整99以满足您的需求。

你可以解决这个没有VBA的一些=INDIRECT欺骗 – 以下是位于“Sheet3”:

Excel截图

您可以分别在单元格A1A2inputSheet1!ASheet2!M并填写。 然后,在B1input7 ,然后在B2input公式 – 再次填写。 这第一个公式是有效地增加了两个计数。 最后,你可以在C1input公式并填写。

使用INDIRECT函数来build立这个模式,你可以根据你当前的行号使模式工作。 假设你的第一个单元格在第2行:

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

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

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

尝试在第2行:

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

而在第3行:

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

突出显示两者并复制下来。