2016-08-05 115 views
2

我想做一个简单的任务,但不知怎的,我无法做到这一点。假设我有一列,如:谷歌电子表格将多个列堆叠成一个

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到目前为止启发。

感谢

+0

如何复制数据,粘贴两次到另一列然后排序? – pawelty

+0

是的,但我有几百行... :) –

回答

3

试试这个:

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

这里我们使用:

结合3210

会计您的评论,然后你可以使用这个公式:

=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))),","))

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

+0

谢谢,但我不希望它被排序它可以是3; 3; 1; 1; 2; 2; 4; 4; 5; 5例如 –

+0

这是可能的,但更难。我已经更新了答案。 –

+0

真棒,完美的作品!没想到这样的任务会是如此复杂的公式。谢谢!!!为我保存了很多复制/粘贴 –

1

几百行是什么:)

我创建的索引从1到n,然后粘贴两次,并通过指数排序。但是,这显然票友用公式:)

enter image description here

1

假设你的清单中列A和(现在)的重复次数是C1做到这一点(可改变为数字的公式),那么简单的东西像这样的会做(在B1开始):

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

只需复制下来,因为你需要它(最后一个项目后会给刚刚0)。没有排序。没有阵列。没有工作表/ Excel问题。没有繁重的计算。

相关问题