编程技术分享平台

网站首页 > 技术教程 正文

Excel表格数据太多,如何快速转置成多行多列?

xnh888 2024-12-01 05:23:26 技术教程 32 ℃ 0 评论

如图所示,如何将左侧表格整理成右侧的表格呢?



这里有两种方法可以解决:


1、函数法


利用OFFSET函数,在单元格中输入公式=OFFSET($A$1,INT((ROW(A1)-1)/3)*3+COLUMN(A1)-1,MOD(ROW(A1)+2,3)),之后向右向下填充。


函数说明:

ROW函数表示获取行号,比如ROW(A1)获取到的结果是1;


INT函数表示向下取整数,比如INT((ROW(A1)-1)/3)获取的结果为0;


COLUMN函数表示获取列号,比如COLUMN(A1)获取到的结果为1;


MOD函数表示获取余数,比如MOD(ROW(A1)+2,3)获取的结果则为0;


OFFSET函数主要用来返回对单元格或单元格区域中指定行数和列数的区域的引用。

语法=OFFSET(基点,偏移的行数,偏移的列数,引用的行数,引用的列数)


2、PQ大法


选中区域,点击数据——获取和转换——从表格,随后在打开的创建界面中,取消勾选包含标题。



然后点击确定进入对应的PQ编辑器,点击主页——插叙——高级编辑器,在打开的界面中输入对应的代码:


let
源 = Excel.CurrentWorkbook(){[Name=
"表2"]}[Content],
拆分 = Table.ToColumns(源),
合并 = Table.FromColumns(List.Split(List.Combine(拆分),3)),
转置 = Table.Transpose(合并)
in
转置



之后点击确定,最后点击主页——关闭并上载即可完成多行多列的转换。


说明:


Table.ToColumns表示从表table中创建嵌套列表的列表,每个列表项都是包含列值的内联列表



Table.FromColumns表示从包含嵌套列表的列表 lists 中创建一个类型为 columns 的表



List.Combine获取一系列的列表 lists 并将它们合并为一个新列表。


Table.Transpose表示行列转换。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表