将多列堆叠为一列
Stack multiple columns into one
我想做一个简单的任务,但不知怎么的我做不到。假设我有一列:
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 的启发。
试试这个:
=SORT({A1:A5;A1:A5})
这里我们使用:
考虑到你的评论,那么你可以使用这个公式:
=QUERY(SORT(ArrayFormula({row(A1:A5),A1:A5;row(A1:A5),A1:A5})),"select Col2")
想法是使用带有行数的附加数据列,然后按行排序,然后 query 只获取值。
和join→split方法会做同样的事情:
=TRANSPOSE(SPLIT(JOIN(",",ARRAYFORMULA(CONCAT(A1:A5&",",A1:A5))),","))
这里我们只用了两次range,这样比较好用。另见 Concat + ArrayFormula 示例。
几百行不算什么:)
我创建了从 1 到 n 的索引,然后粘贴了两次并按索引排序。但是用公式来做显然更有趣:)
假设您的列表在 A 列中,并且(目前)重复次数在 C1 中(可以更改为公式中的数字),那么像这样简单的事情就可以了(从 B1 开始):
=INDEX(A:A,(INT(ROW()-1)/$C)+1)
只需根据需要向下复制(在最后一项后仅给出 0)。没有排序。没有阵列。没有 sheets/excel 个问题。没有繁重的计算。
我想做一个简单的任务,但不知怎么的我做不到。假设我有一列:
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 的启发。
试试这个:
=SORT({A1:A5;A1:A5})
这里我们使用:
考虑到你的评论,那么你可以使用这个公式:
=QUERY(SORT(ArrayFormula({row(A1:A5),A1:A5;row(A1:A5),A1:A5})),"select Col2")
想法是使用带有行数的附加数据列,然后按行排序,然后 query 只获取值。
和join→split方法会做同样的事情:
=TRANSPOSE(SPLIT(JOIN(",",ARRAYFORMULA(CONCAT(A1:A5&",",A1:A5))),","))
这里我们只用了两次range,这样比较好用。另见 Concat + ArrayFormula 示例。
几百行不算什么:)
我创建了从 1 到 n 的索引,然后粘贴了两次并按索引排序。但是用公式来做显然更有趣:)
假设您的列表在 A 列中,并且(目前)重复次数在 C1 中(可以更改为公式中的数字),那么像这样简单的事情就可以了(从 B1 开始):
=INDEX(A:A,(INT(ROW()-1)/$C)+1)
只需根据需要向下复制(在最后一项后仅给出 0)。没有排序。没有阵列。没有 sheets/excel 个问题。没有繁重的计算。