转置和重复多列和多行

Transpose & Repeat multiple columns & rows

提问人:XmalevolentX 提问时间:11/7/2022 最后编辑:Mayukh BhattacharyaXmalevolentX 更新时间:11/7/2022 访问量:868

问:

我有以下数据,我正在尝试复制和转置,但我在这样做时遇到了问题。 转置似乎并没有让我到达那里。

专栏A 列B 专栏C 列D E 列 列。。BM公司
水果一 水果二 水果三 2000 2001 ...2022
苹果 香蕉 葡萄 RandomValueOne RandomValueTwo (随机值二) ...RandomValueN

但我希望数据看起来像以下内容。

专栏A 列B 专栏C 列D E 列
水果一 水果二 水果三 价值
苹果 香蕉 葡萄 2000 RandomValueOne
苹果 香蕉 葡萄 2001 RandomValueTwo (随机值二)
苹果 香蕉 葡萄 ...2022 ...RandomValueN

感谢您在这方面的任何帮助。我无法访问 R、MatLab、SPSS 或类似的东西。希望在excel中实现这一目标。

谢谢。

Excel -公式 PowerQuery 数据分析 转置

评论

0赞 Mayukh Bhattacharya 11/7/2022
这很容易,按住前三列,右键单击您的工作在几秒钟内完成。Power QueryUnpivot Other Columns
0赞 XmalevolentX 11/7/2022
@MayukhBhattacharya我在 Mac 上运行 excel,而不是 PC。显然,Power Query尚未在Mac上完全发布。
0赞 Mayukh Bhattacharya 11/7/2022
好的,那么我可以知道你的Excel版本是什么吗?
0赞 XmalevolentX 11/7/2022
16.66.1 (22101101)
1赞 Mayukh Bhattacharya 11/7/2022
请参阅我更新了使用公式。Answers

答:

0赞 Mayukh Bhattacharya 11/7/2022 #1

以下是您可以使用 Power Query 执行的操作:

enter image description here


若要使用 Power Query 完成此任务,请按照以下步骤操作:

• 在数据表中选择一些单元格,

数据选项卡 => Get&Transform => 来自表/范围

• 当 PQ 编辑器打开时:Home => 高级编辑器

• 记下 2 个表的名称

• 粘贴以下内容以代替您看到的内容。M Code

• 并参考注释


let

//Source Data Table1
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],

//Changed The Data Type
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"ColumnA", type text}, {"ColumnB", type text}, {"ColumnC", type text}, {"ColumnD", type any}, {"ColumnE", type any}, {"Column..BM", type text}}),

//Promoted Headers, this you can exclude. Since I copied from StackOverflow, the Columns A To BM were copied
    #"Promoted Headers" = Table.PromoteHeaders(#"Changed Type", [PromoteAllScalars=true]),

//Unpivoted Columns
    #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Promoted Headers", {"FruitOne", "FruitTwo", "FruitThree"}, "Attribute", "Value"),

//Renamed the Attribute Column as Year
    #"Renamed Columns" = Table.RenameColumns(#"Unpivoted Other Columns",{{"Attribute", "Year"}})

in
    #"Renamed Columns"

enter image description here


•将其导入回Excel,按Home = > Close => Close & Load To,导入时,您可以选择带有要放置表格的单元格引用的现有工作表,或者您可以简单地单击NewSheet

enter image description here


请参阅右侧的查询设置面板,您可以从中更改输出的表名,以及步骤;

enter image description here


最终输出

enter image description here


编辑

@MayukhBhattacharya我在 Mac 上运行 excel,而不是 PC。显然地 Power Query尚未在Mac上完全发布。

使用公式

enter image description here


• 细胞中使用的配方A6

=INDEX($A$2:$C$3,INT((ROW(A1)-1)/COLUMNS($D$2:$F$3))+1,COLUMN($A$2:$C$3))

并向下填充。


• 细胞中使用的配方D6

=INDEX($D$1:$F$1,MOD(ROW(A1)-1,3)+1)

并向下填充。


• 细胞中使用的配方E6

=INDEX($D$2:$F$3,MATCH(1,(A6=$A$2:$A$3)*(B6=$B$2:$B$3)*(C6=$C$2:$C$3),0),MATCH(D6,$D$1:$F$1,0))