Excel,将工作表1的数据加载到工作表2,如果工作表1的行数增加,则工作表2的行数应增加以显示这些数据

8aqjt8rx  于 2023-04-13  发布在  其他
关注(0)|答案(1)|浏览(109)

我将Sheet1连接到ODBC并从mysql服务器加载数据。
现在我有了Sheet2,它需要填充所有的值(Sheet1中的行和列)。
如果Sheet1从连接刷新,它的行将改变,所以现在我希望Sheet2也有这些刷新的行。
已尝试:我不想这样写=Sheet1!C13,因为我不知道Sheet1有多少行。

b4lqfgs4

b4lqfgs41#

在Excel 365中,您可以使用spilled ranges
你必须输入的基本公式使用MAX(ROW(...))/OFFSET技巧来返回一个动态(溢出)范围,并类似于(输入Sheet2!C1):

=LET(MaxRow, MAX(IF(NOT(ISBLANK(Sheet1!C:C)),ROW(Sheet1!C:C))), OFFSET(Sheet1!C:C,0,0,MaxRow))

请注意,您可以使用的不仅仅是列C。基于上面的公式,我们将最后一部分更改为(使用2列连续范围和HSTACK function添加第三个单独的列):

LET(MaxRow, MAX(IF(NOT(ISBLANK(Sheet1!C:C)),ROW(Sheet1!C:C))), HSTACK(OFFSET(Sheet1!C:D,0,0,MaxRow), OFFSET(Sheet1!F:F,0,0,MaxRow)))

对于使用结果范围的公式,您必须了解spilled range operator
Sheet2:F1中,键入:

="I test the spilled range operator with " & C1#

如果你使用的是返回3列的公式版本,你也会看到C1#在3列上“溢出”。这很容易通过使用INDEX函数来解决(两个连续的逗号不是错误):

="I test the spilled range operator with " & INDEX(C1#,,1)

相关问题