Excel:动态堆叠或数组 n 次

问题描述 投票:0回答:1

问题:水平/垂直堆叠数组n-次数

示例

  1. 水平数组{"A","B","C"}水平堆叠n=3次={"A","B","C","A","B","C", “A”、“B”、“C”}
  2. 水平数组 {"A", "B", "C"} 垂直堆叠 n=2 次 = {"A", "B", "C"; “A”、“B”、“C”}

不良解决方案

这个问题很简单,手动只需向 VSTACK() 或 HSTACK() 公式提供 n 个数组即可。可以使用向量操作(例如 TOCOL() 和 TRANSPOSE())和 MAKEARRAY() 来创建“强力动态解决方案”,以创建所需大小的索引,然后将值索引到结构.

手动(水平):
    =HSTACK({"A", "B", "C"},{"A", "B", "C"},{"A", "B", "C"})
  1. 手动(垂直):
  2. =VSTACK({"A", "B", "C"},{"A", "B", "C"})
  3. 动态暴力破解(水平):
  4. =LET(Array,{"A","B","C"},n,3,INDEX(Array,MATCH(TOROW(SEQUENCE(COLUMNS(Array))*MAKEARRAY(1,n,LAMBDA(r,c,1)),0,TRUE),SEQUENCE(COLUMNS(Array)),0)))
  5. 动态暴力破解(垂直):
  6. =LET(Array,{"A","B","C"},n,2,INDEX(Array,MATCH(TRANSPOSE(SEQUENCE(COLUMNS(Array))*MAKEARRAY(1,n,LAMBDA(r,c,1))),SEQUENCE(COLUMNS(Array)),0)))
  7. 
    
理想的解决方案

:水平/垂直堆叠的简洁公式解决方案,以 arrayn 作为输入 - 也可能是方向(即 horizontalvertical)。

Horizontally and vertically stacked arrays

excel dynamic vstack hstack
1个回答
0
投票

={"A","B","C"}&EXPAND("",2,1,"")

水平堆叠3次:

=TOROW({"A","B","C"}&EXPAND("",3,1,""))

    

© www.soinside.com 2019 - 2024. All rights reserved.