代码之家  ›  专栏  ›  技术社区  ›  jason

如何使用公式在谷歌工作表中移动数组

  •  0
  • jason  · 技术社区  · 1 周前

    我试着把前一百个数字移回10

    =OFFSET(transpose(SEQUENCE(1, 100, 1, 1)), 10, 0) 给了我“参数必须是一个范围。”

    但如果我把公式分解成

    =transpose(SEQUENCE(1, 100, 1, 1)) 然后 =OFFSET(A1:A100,10,0) 那么它就起作用了。

    但我需要一个公式。我该怎么做?

    我最终要做的是转换一列数据,这样我就可以得到逐年的变化。就像熊猫中的移位函数。

    所以我需要偏移一个给定的数组,而不是重新生成它。

    1 回复  |  直到 1 周前
        1
  •  1
  •   z..    1 周前

    您可以使用:

    =LET(
       array, <your_array>,
       IFERROR(
         MAKEARRAY(ROWS(array), COLUMNS(array),
           LAMBDA(i, j,
             INDEX(
               array,
               i + <row_offset>,
               j + <col_offset>
             )
           )
         )
       )
     )
    

    代替 <your_array> 使用您的阵列, <row_offset> 具有行偏移量和 <col_offset> 具有列偏移。