OFFSET() + ROW() 不会给出预期的结果
OFFSET() + ROW() wont give the desired result
我正在尝试将 OFFSET 函数与 ROW 函数结合使用,但它们没有按预期工作。
如果我尝试:
{=OFFSET(A1:F1,ROW(F6)-1;0)}
它给了我错误的结果,只给出了一个包含 1 列的数组常量。
'It returns:
{0}
否则如果我使用:
{=OFFSET(A1:F1,5,0)}
它完美地工作并且 returns 一个数组常量与偏移行的相应列值。
'Would return:
{0,0,0,0,0,0}
如果 ROW returns 一个数字,为什么它不能正常工作?
根据我之前的评论,ROW returns 是一个数组而不是标量值(即在您的公式中 ROW(F6) returns {6} 而不是 6,这会填满您的 OFFSET(因为它需要 rows/column 偏移量的标量)。
Per https://answers.microsoft.com/en-us/msoffice/forum/all/row-function-returning-array-though-it-should-not/fcce040c-c297-43d9-a02e-a0038b6be5e0 如果您将 ROW(F6) 包装在 SUM 或 MAX 中,它应该可以解决问题,即
=OFFSET(A1:F1,SUM(ROW(F6))-1;0)
我正在尝试将 OFFSET 函数与 ROW 函数结合使用,但它们没有按预期工作。
如果我尝试:
{=OFFSET(A1:F1,ROW(F6)-1;0)}
它给了我错误的结果,只给出了一个包含 1 列的数组常量。
'It returns:
{0}
否则如果我使用:
{=OFFSET(A1:F1,5,0)}
它完美地工作并且 returns 一个数组常量与偏移行的相应列值。
'Would return:
{0,0,0,0,0,0}
如果 ROW returns 一个数字,为什么它不能正常工作?
根据我之前的评论,ROW returns 是一个数组而不是标量值(即在您的公式中 ROW(F6) returns {6} 而不是 6,这会填满您的 OFFSET(因为它需要 rows/column 偏移量的标量)。
Per https://answers.microsoft.com/en-us/msoffice/forum/all/row-function-returning-array-though-it-should-not/fcce040c-c297-43d9-a02e-a0038b6be5e0 如果您将 ROW(F6) 包装在 SUM 或 MAX 中,它应该可以解决问题,即
=OFFSET(A1:F1,SUM(ROW(F6))-1;0)