Excel:如何将每一行复制到同一列?

Excel:如何将每一行复制到同一列?

在 Excel 电子表格中给出这样的列

aaa
bbb
ccc
...

我怎样才能生成另一个看起来像这样的列(当然不是手动复制和粘贴,因为原始列中有数千个条目)

aaa
aaa
bbb
bbb
ccc
ccc
...

答案1

包含列中的数据A, 在B1进入:

=INDEX(A:A,ROUNDUP(ROWS($1:1)/2,0))

并向下复制。

在此处输入图片描述

注意你得到每项的副本。如果您使用3在公式中,你会得到每项内容的副本。

答案2

如果要保留数据的原始顺序:

  • 将“1”写入第一行新专栏(例如单元格 B1)并将“2”放入其下方的单元格中
  • 选择这两个单元格,然后单击右下角的绿色方块并向下拖动。这将用 1、2、3、... 填充整个列
  • 选择所有数据,包括新列
  • Ctrl按+复制C
  • 转到数据下方的第一个单元格
  • Ctrl按+粘贴数据V
  • 选择所有内容,包括新列,例如按Ctrl+A
  • 按住Tab直到新列中有一个单元格以白色突出显示
  • 使用 Excel 的排序按钮
  • 删除包含 1, 1, 2, 2, 3, 3, ... 的列

在排序之前,您将拥有:

aaa  1
bbb  2
ccc  3
...  ...
aaa  1
bbb  2
ccc  3
...  ...

排序之后(删除新列之前),您将获得:

aaa  1
aaa  1
bbb  2
bbb  2
ccc  3
ccc  3
...  ...

答案3

我正在寻找一种解决方案,您可以在其中引用具有一列或表中的单个列的动态数组。此LAMBDA函数有两个参数: col是具有一列的数组,其中包含应重复的值。 n是重复值的次数:

=LAMBDA(col,n,INDEX(col,ROUNDUP(SEQUENCE(ROWS(col)*n)/n,0)))(col,n)

我暂时还不能包含截图,因此我向您展示了一个示例代码,其中我使用文字作为数组,并且每个值重复 2 次:

=LAMBDA(col,n,INDEX(col,ROUNDUP(SEQUENCE(ROWS(col)*n)/n,0)))({"a";"b";"c";"d"},2)

输出应为:

a
a
b
b
c
c
d
d

显然您也可以引用静态数组。

答案4

如果你的数据已经排序好了:

  • 选择所有数据
  • Ctrl按+复制C
  • 转到数据下方的单元格
  • Ctrl按+粘贴数据V
  • 选择所有内容(原始数据和复制的数据),例如按Ctrl+A
  • 使用 Excel 的排序按钮

在排序之前,您将拥有:

aaa
bbb
ccc
...
aaa
bbb
ccc
...

排序后,您将获得:

aaa
aaa
bbb
bbb
ccc
ccc
...

相关内容