Excel 数据收拾东西 ——PowerQuery

学习推荐

各位好,

之前的文章,咱们讲过名目部引导老叶为了方便剖析,须要将如下图的左表转化处置成右表。

前面咱们具体介绍过 Word 调换法,另有 Textsplit 函数的方式。概况戳文末链接。

不外,信任良多小伙伴都知道,PowerQuery 也是 Excel 特地用做数据荡涤的利器。

因此,今日小爽就来带各位来看看也许案例的 PQ 解法。

实用版块:Excel2016 以上(WPS 不实用)

难度系数:

戳戳手:该案例属于 PQ 中等难度,须要应用到一些 M 函数,各位重在进修思绪。

咱们先将数据导入到 PQ 编辑器中。

选中数据地区,在【数据】选项卡下,单击【来自表格 / 地区】,【断定】。

1、拆分到行

如果只有一列须要拆分,那好办。

咱们间接用拆分列,拆分到行。

如下图:

单列就拆分好了。

然而,咱们须要拆分到行的有两列。怎么办?

那,分辨拆分,而后将所需列兼并?

分辨拆开。

而后再兼并。

能够是能够,然而如果待拆分的列有多列,还要一个个拆分,而后链接转表,此明显并非个好的抉择。

2、兼并列

接下来,咱们来看看另外的做法。

具体思绪:

应用 Table.CombineColumns 将须要处置的列兼并;

兼并后的每行,停止轮回 (List.Transform) 拆分逗号 Text.Split

处置后再转表处置 (Table.FromColumns);

最初开展表 (Table.ExpandTableColumn)。

看不懂,不要紧,底下有具体步调 ↓

具体步调:

单击 fx 新建步调。

获得待拆分的列名的列表 name

=List.Skip(Table.ColumnNames源))

Table.ColumnNames (源),是用来获得表格题目的函数。也就是 {"姓名","加入结束名目","事迹评分"}。

List.Skip 表现跳过几个,第二参数不写默许为 1,因此跳过 1 个,也就是 {"加入结束名目","事迹评分"}。

此样的利益是,前面新增列,也可够获得崭新待拆分的列名形成的 list。

将步调命名为 name。

兼并待拆的列

单击 fx 新建步调。

公式栏中输出:

=Table.CombineColumns源,name,each_,"a")

=Table.CombineColumns (表,须要兼并的列名形成的列表,兼并的方式,新列名)

案例中咱们须要兼并的列名,也就是第一步的 name。

=Table.CombineColumns源,//表name,//须要兼并的列名形成的listeach_,//兼并的处置,先不做处置"a"//兼并后的列名称

轮回兼并处置,将文本依照逗号拆分

修正 Table.CombineColumns 第三参数兼并处置

=Table.CombineColumns源,name,eachList.Transform(_,(x)=Text.Split(x,",")),"a")

如下图所示。

此里主要是对于兼并处置 的每行,轮回停止拆分。

List.Transform(_,//兼并列每行形成的list。(x)=Text.Split(x,",")//将每一个数据依照逗号停止拆分)

拆分后的数据,依照列停止转表

Table.CombineColumns 第三参数拆分后的列表依照列转表。

=Table.CombineColumns源,name,eachTable.FromColumnsList.Transform(_,(x)=Text.Split(x,",")),name),"a")

将拆分后的 lists,应用 Table.FromColumns 转换成表。

=Table.FromColums (lists, 对应题目)

按列转表后对应的题目,就是 name。

此一步命名为兼并。

开展表格

最初一步,把表扩开展就能够。

单击开展按钮,撤消勾选【应用原始列名做为前缀】,单击【断定】按钮。

间接开展,参数是写逝世的。开展的列名实在也就是 name。

因此,咱们将公式改成如下图所示。此一步能够命名为成果。

=Table.ExpandTableColumn(兼并,"a",name)

最终的 M 函数:

let源=Excel.CurrentWorkbook(){[Name="表1"]}[Content],name=List.Skip(Table.ColumnNames(源)),兼并=Table.CombineColumns(源,name,eachTable.FromColumns(List.Transform(_,(x)=>Text.Split(x,",")),name),"a"),成果=Table.ExpandTableColumn(兼并,"a",name)in成果

3、最初的话

本文讲授的是 PQ 解法,该方式波及多个函数。

STEP01获得待拆分的列名的列表

Table.ColumnNames 能够获得表格的题目

List.Skip 能够跳过指定个数

=List.Skip(Table.ColumnNames(源)

STEP02兼并指定列,先不做处置

Table.CombineColumns (表,name,each _,新列名)

▋STEP03Table.CombineColumns 的第三参数处置

轮回拆分

List.Transform+Text.Split

按列转表

Table.FromColumns

▋STEP04应用 Table.EnpandTableColumn 开展兼并的列

第二参数拆分的列名,不要写逝世。

对于该案例的其余做法,请戳:文章。

将数据表转化后,老叶就能够经由过程数据透视表停止进一步的剖析啦。

如下图:

比方上个季度,每一个名目成员加入的名目数,总分是多少;每一个名目有多少人加入,加入成员有谁。

也可够对数据停止可视化。

从全部案例中,咱们能够看到全部数据的进程。

数据录入-数据荡涤-数据剖析-数据可视化-[数据报告请示]

差别进程,所须要掌握的 Excel 知识点有所差别。

数据录入

数据考证 / 单元格格局/...

数据荡涤

函数 / VBA / PowerQuery

数据剖析

函数 / 数据透视表 / PowerPivot

数据可视化

图表 / 表格丑化等

 

广而告之申明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等情势),用于通报更多信息,节俭甄选时光,成果仅供参考,一切文章均包括本申明。

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 298050909@qq.com 举报,一经查实,本站将立刻删除。如若转载,请注明出处:https://www.kufox.com//xxtj/2024-01-15/5714.html

标签: 数据整理工具