【问题标题】:Q: Transpose -> Merge(?) on google sheets问:谷歌表格上的转置 -> 合并(?)
【发布时间】:2021-01-07 06:14:05
【问题描述】:

尝试转置数据,以使行转置成单列堆叠在一起。

=ARRAYFORMULA({TRANSPOSE(A1:C1);TRANSPOSE(A2:C2);TRANSPOSE(A3:C3)})

这个公式基本上可以满足我的要求,但是如果我有更多行怎么办?我需要进入吗? TRANSPOSE(Col(x):Col(y)) 每一行?

感谢任何帮助。

【问题讨论】:

    标签: google-sheets


    【解决方案1】:

    请尝试:

    =TRANSPOSE(SPLIT(TEXTJOIN(",",1,A:C),","))

    注意事项:

    • textjoin 将加入文本并跳过空白。在 C 列中添加空格以获得空行。
    • 连接函数限制为50000 characters

    【讨论】:

    【解决方案2】:

    Max Makhrov 的回答很好,但确实受制于 50k 的限制。为了解决这个问题,我最近发现了另一种方法,在我的 interlacing answer另一个问题

    在您的情况下,这看起来像这样(最多任意 9 行):

    =query(
       sort(
         {arrayformula({row(A1:A9)*3, A1:A9});
          arrayformula({row(B1:B9)*3+1, B1:B9});
          arrayformula({row(C1:C9)*3+2, C1:C9})}
       ),
       "select Col2")
    

    【讨论】:

      【解决方案3】:

      我是否遗漏了什么,或者为什么没有人建议Flatten

      FLATTEN(A1:C3)
      

      您可以像往常一样使用Filter 来过滤掉空白单元格,例如

      =FILTER(FLATTEN(A1:C3);FLATTEN(A1:C3)<>"")
      

      【讨论】:

      • 2018年问的问题,当时还没有flatten功能。直到 2020 年底才宣布。
      猜你喜欢
      • 1970-01-01
      • 2016-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-24
      相关资源
      最近更新 更多