范围的动态 Excel 公式

范围的动态 Excel 公式
  • 我怎样才能创建一个公式:

    1. 我可以在 Sheet2 上垂直向下拖动......
    2. Sheet1 上的两个数据数组TEXTJOINS(总共 28 个垂直单元格)...
    3. TEXTJOINS这 28 个单元格之后,转到 Sheet2 中的下一行...
    4. 查看同一列但不同的行号,然后总共执行 8 次...
    5. 查看第 1 次迭代中的相同行时更改为下一列。
  • 简而言之,我想要一个公式,使列字母在 8 行内保持静止,然后在 8 行之后更改为下一列。

  • 下面参考图应该可以更清楚地说明我的目标。

参考图

如果这不可能/很难,那么另一种方法是编写一个 Python 脚本,使用循环输入公式,然后我只需将它们复制到 Excel 中即可。非常感谢!

答案1

您可以使用INDEX带有行和列的数学参数的函数来返回所需的范围。

例如:

MOD(ROWS($1:1)-1,8)*13+122

将生成重复序列:122,135,148,161...213

=INT((ROWS($1:1)-1)/8)+1

将生成重复序列1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2, …

因此,为了将其放入公式中,它将按照您所述改变范围,例如,对于列B:D,您可以使用:

=TEXTJOIN(,TRUE,INDEX(prepVertical!$B:$D,MOD(ROWS($1:1)-1,8)*13+122,INT((ROWS($1:1)-1)/8)+1):INDEX(prepVertical!$B:$D,MOD(ROWS($1:1)-1,8)*13+134,INT((ROWS($1:1)-1)/8)+1))

如果需要引用更多列,只需更改B:D为引用所需的列范围。

相关内容