我将Sheet1连接到ODBC并从mysql服务器加载数据。现在我有了Sheet2,它需要填充所有的值(Sheet1中的行和列)。如果Sheet1从连接刷新,它的行将改变,所以现在我希望Sheet2也有这些刷新的行。已尝试:我不想这样写=Sheet1!C13,因为我不知道Sheet1有多少行。
=Sheet1!C13
b4lqfgs41#
在Excel 365中,您可以使用spilled ranges。你必须输入的基本公式使用MAX(ROW(...))/OFFSET技巧来返回一个动态(溢出)范围,并类似于(输入Sheet2!C1):
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添加第三个单独的列):
HSTACK
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中,键入:
Sheet2:F1
="I test the spilled range operator with " & C1#
如果你使用的是返回3列的公式版本,你也会看到C1#在3列上“溢出”。这很容易通过使用INDEX函数来解决(两个连续的逗号不是错误):
C1#
INDEX
="I test the spilled range operator with " & INDEX(C1#,,1)
1条答案
按热度按时间b4lqfgs41#
在Excel 365中,您可以使用spilled ranges。
你必须输入的基本公式使用
MAX(ROW(...))
/OFFSET
技巧来返回一个动态(溢出)范围,并类似于(输入Sheet2!C1
):请注意,您可以使用的不仅仅是列C。基于上面的公式,我们将最后一部分更改为(使用2列连续范围和
HSTACK
function添加第三个单独的列):对于使用结果范围的公式,您必须了解spilled range operator。
在
Sheet2:F1
中,键入:如果你使用的是返回3列的公式版本,你也会看到
C1#
在3列上“溢出”。这很容易通过使用INDEX
函数来解决(两个连续的逗号不是错误):