我怎样才能创建一个公式:
- 我可以在 Sheet2 上垂直向下拖动......
- Sheet1 上的两个数据数组
TEXTJOINS
(总共 28 个垂直单元格)... - 在
TEXTJOINS
这 28 个单元格之后,转到 Sheet2 中的下一行... - 查看同一列但不同的行号,然后总共执行 8 次...
- 查看第 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
为引用所需的列范围。