【问题标题】:Stack multiple columns into one将多列堆叠为一列
【发布时间】:2016-08-05 09:19:35
【问题描述】:

我想做一个简单的任务,但不知何故我做不到。假设我有一列像:

a
z
e
r
t

如何两次创建具有相同值的新列,结果如下:

a
a
z
z
e
e
r
r
t
t

我已经尝试将我的专栏翻倍并执行以下操作:

=TRANSPOSE(SPLIT(JOIN(";",A:A,B:B),";"))

但它会创建:

a
z
e
r
t
a
z
e
r
t

到目前为止,我受到this answer 的启发。

【问题讨论】:

  • 如何复制数据,将其粘贴两次到另一列然后排序?
  • 是的,但我有几百行...... :)

标签: sorting google-sheets google-sheets-formula google-sheets-query


【解决方案1】:

试试这个:

=SORT({A1:A5;A1:A5})

我们在这里使用:


考虑到你的评论,那么你可以使用这个公式:

=QUERY(SORT(ArrayFormula({row(A1:A5),A1:A5;row(A1:A5),A1:A5})),"select Col2")

想法是使用带有行数的附加数据列,然后按行排序,然后query 仅获取值。


joinsplit 方法也会这样做: =TRANSPOSE(SPLIT(JOIN(",",ARRAYFORMULA(CONCAT(A1:A5&",",A1:A5))),","))

这里我们只使用了两次 range,所以这更容易使用。另请参阅Concat + ArrayFormula 示例。

【讨论】:

  • 谢谢,但我不希望它被排序它可以是 3;3;1;1;2;2;4;4;5;5 例如
  • 太棒了,完美运行!没想到这种任务的公式会这么复杂。谢谢!!!为我节省了很多复制/粘贴
  • 谢谢。还有另一种方法可以做到这一点。我又做了一次更新。
【解决方案2】:

几百行不算什么:)

我创建了从 1 到 n 的索引,然后将其粘贴两次并按索引排序。但显然用公式来做会更好:)

【讨论】:

    【解决方案3】:

    假设您的列表在 A 列中并且(现在)重复次数在 C1 中(可以更改为公式中的数字),那么像这样简单的事情就可以了(从 B1 开始):

    =INDEX(A:A,(INT(ROW()-1)/$C$1)+1)
    

    根据需要简单地复制下来(在最后一项之后只给出 0)。没有排序。没有数组。没有工作表/excel 问题。没有繁重的计算。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-05
      • 1970-01-01
      • 2020-01-02
      • 1970-01-01
      • 1970-01-01
      • 2020-11-09
      • 1970-01-01
      • 2021-12-02
      相关资源
      最近更新 更多