如何在 Excel 中通过复制某些列来重塑日期?

如何在 Excel 中通过复制某些列来重塑日期?

我有一张包含 5 列的表格,如下所示:

A1 B1 C1 D1 E1
A2 B2 C2 D2 E2
A3 B3 C3 D3 E3
...

我需要将它重塑为如下所示的 3 列表格:

A1 B1 C1 
A1 B1 D1 
A1 B1 E1
A2 B2 C2 
A2 B2 D2 
A2 B2 E2
A3 B3 C3 
A3 B3 D3 
A3 B3 E3
...

在 Excel 2016 中执行此操作最简单的方法是什么?TIA!

答案1

F1进入:

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

G1进入:

=INDEX(B:B,ROUNDUP(ROWS($1:1)/3,0))

H1进入:

=OFFSET($C$1,ROUNDUP(ROWS($1:1)/3,0)-1,MOD(ROWS($1:1)-1,3))

并向下复制这些:

在此处输入图片描述

答案2

将数据从列转置到行的最简单方法如下:

  1. 选择并复制您想要从列更改为行的数据
  2. 右键单击 Excel 数据表上的新位置
  3. 选择“选择性粘贴”,然后选择粘贴“转置 (T)”

来源

答案3

如果您有大量数据,您可以考虑使用 PowerQuery 来避免大量公式。

单击数据中的任意位置并使用数据>获取和转换数据>从表/范围:

在此处输入图片描述

在 Power Query 编辑器中,选择要取消透视的列,然后使用“转换”>“任何列”>“仅取消透视选定的列”(使用“取消透视列”下拉列表):

在此处输入图片描述

取消透视后,右键单击“属性”列并选择“删除”:

在此处输入图片描述

现在使用“主页”>“关闭并加载”将结果放入工作簿中的工作表中。

这种方法的好处之一(除了快速且易于理解之外)是,如果您在源表中添加了更多数据,则可以通过右键单击输出并从上下文菜单中选择“刷新”来重新运行逆透视。

答案4

在 365 中只需使用:

=index(array,sequence(<reshape_rows>, <reshape_column>))

相关内容