OfficeExcel(6)

OfficeExcel(6)——Powerquery


一、分组依据

透视:将数据按照某一列或几列进行汇总
1、
OfficeExcel(6)

转换菜单——分组依据
OfficeExcel(6)

得到根据客户的销售总额
OfficeExcel(6)

2、基于每名客户的订单进行销售总额的分析

OfficeExcel(6)

结果:
OfficeExcel(6)

3、分析订单中有一个产品还是多个产品
转换菜单下——分组依据
OfficeExcel(6)

OfficeExcel(6)

OfficeExcel(6)

OfficeExcel(6)

得到结果,可点击小箭头查看相关产品个数

OfficeExcel(6)

  • 注意扩展与聚合的区别

4、索引列
OfficeExcel(6)

添加列
OfficeExcel(6)

例如:
自定义列
OfficeExcel(6)

OfficeExcel(6)

再例如:
自定义列
OfficeExcel(6)

得到金额列
OfficeExcel(6)

再例如:
自定义列
先把计数.订单编号的计数列数据类型改为文本
OfficeExcel(6)

再自定义列,用公式
OfficeExcel(6)

OfficeExcel(6)

例:标记出每张订单是单个产品还是多个产品
if [计数.订单编号 的计数]=1 then “单个产品的订单” else “多个产品的订单”
OfficeExcel(6)

求多个产品订单数量和多个产品订单数量
对上面求得的列,进行分组依据
OfficeExcel(6)

OfficeExcel(6)

得到结果

OfficeExcel(6)


二、日期和时间的整理功能说明

功能 说明
年限 现在(now)和所选日期之间的持续时间
仅限日期 提取日期部分
分析 从文本里提取日期
提取年
年开始、年结束 提取对应的年份开始日期或结束日期
一个月的某些 此月份共多少天
每周的某一日 周几
一年的某一周 本年度的周数
减去天数 两列日期相减
最早、最新 多列日期中保留最早、最晚的一天

三、数学运算

功能 说明
加、减、乘、除
除(整数)
取模 余数
绝对值 向上舍入、向下舍入、保留位数
奇数、偶数 奇数偶数判断

四、追加查询和文件汇总

1、纵向的追加
把格式一样的数据追加到同一表格里
步骤:①从表格上传第一份数据后,选择仅连接

OfficeExcel(6)
②两张表如图所示
OfficeExcel(6)OfficeExcel(6)
③追加查询

OfficeExcel(6)OfficeExcel(6)
④追加得到结果

OfficeExcel(6)

注意:若改变表一的列字段位置

OfficeExcel(6)
合并后的表也发生变化

OfficeExcel(6)

若改变金额字段名称(改为收入)

OfficeExcel(6)

则发生错误。

OfficeExcel(6)
如何处理?
方法①

OfficeExcel(6)

方法②

OfficeExcel(6)OfficeExcel(6)

改后得到如图所示结果

OfficeExcel(6)

  • 第一张表,列的顺序决定了追加后列的名称顺序
  • 只要列名称一样,顺序不一样没关系,Power query可自动识别,一第一张表的列的顺序为准
  • 追加的列名必须一致
  • 某张表里独有的列会单独呈现

五、多文件汇总

1、从Excel工作簿中汇总
不需要全部导入,只导入安徽
OfficeExcel(6)

删除后面三步
OfficeExcel(6)

扩展所需的内容
OfficeExcel(6)

删除多余的行
OfficeExcel(6)

两种方法:①直接在订单编号列,不勾选订单编号

OfficeExcel(6)

②对销售金额列,数据类型转换成小数,出现错误行,再删除错误行

OfficeExcel(6)

2、从文件夹中汇总多个Excel文件
步骤:①导入数据

OfficeExcel(6)
OfficeExcel(6)

②保留前2列,删除其余列

OfficeExcel(6)

③利用函数进行扩展

  • 注意此函数:Excel.Workbook([Content]) 对大小写敏感

OfficeExcel(6)OfficeExcel(6)

④再扩展列

OfficeExcel(6)

⑤删除多余列

OfficeExcel(6)

⑥最后在扩展得到结果

OfficeExcel(6)OfficeExcel(6)

⑦最后删除多余的行

3、从文件夹合并多个CSV文件
步骤同上面,在进行到第三步时,出现错误

OfficeExcel(6)
此时,只需对content列右上方小箭头双击,确定,得到结果

OfficeExcel(6)


六、合并查询

对表格的横向合并,类似于Excel中的是Vlookup函数
1、基于订单信息表,合并省份区域表
合并查询
OfficeExcel(6)

扩展区域
OfficeExcel(6)

结果
OfficeExcel(6)

2、基于订单信息表,合并折扣表
合并查询
因为每个区域折扣不一样,合并查询要选择两列,注意选择列的顺序

OfficeExcel(6)

进行扩展,得到结果

OfficeExcel(6)

3、合并查询里的连接种类
蓝框:邀请的人,黄框:参加的人
6种情况:

OfficeExcel(6)
OfficeExcel(6)

①显示ABCDE
OfficeExcel(6)

②显示DEFG
OfficeExcel(6)

③显示ABCDEFG
OfficeExcel(6)

④显示DE
OfficeExcel(6)

⑤显示ABC
OfficeExcel(6)

⑥显示FG
OfficeExcel(6)


七、中国式排名

1、复制销售排名表,添加作为辅助表
在***辅助表***中,对销售额列进行降序排序,检测数据类型,删除重复项,添加索引列(从1开始)

OfficeExcel(6)

2、在销售排名表中,追加查询

OfficeExcel(6)

扩展索引后得到中国式排名
OfficeExcel(6)


八、分组式中国排名

1、复制销售排名表,添加作为辅助表1,对辅助表1,对部门列进行升序排序,检测数据类型,选中部门列和销售额列,删除重复项,添加索引列
OfficeExcel(6)

得到每个部门唯一销售额

OfficeExcel(6)

2、复制辅助表1作为辅助表2,对辅助表2,进行分组依据

OfficeExcel(6)

OfficeExcel(6)

3、对辅助表1,进行合并查询

OfficeExcel(6)

得到如图所示

OfficeExcel(6)

添加自定义列

OfficeExcel(6)

OfficeExcel(6)

在销售表排名基础上合并辅助表1

OfficeExcel(6)

最后,部门和分组都按升序排列

OfficeExcel(6)

九、生成笛卡尔积表

1、在月份表中,删除自动的步骤(更改的类型),再添加索引值为1的列
OfficeExcel(6)OfficeExcel(6)

2、在表2中添加和步骤1一样的索引值为1 的列OfficeExcel(6)

3、在表2中合并查询,得到结果

OfficeExcel(6)

OfficeExcel(6)


十、多行属性合并

1、复制表2作为辅助表2(2),对辅助表(2)进行分组依据
OfficeExcel(6)

OfficeExcel(6)

2、删除金额列,添加索引列
OfficeExcel(6)

3、对销售代表列添加前缀""
OfficeExcel(6)

4、对索引列进行透视

OfficeExcel(6)

所得结果OfficeExcel(6)

5、合并列OfficeExcel(6)

6、再拆分列,删除无效列,得到结果
OfficeExcel(6)

OfficeExcel(6)

OfficeExcel(6)

OfficeExcel(6)

7、在表2中进行合并查询,扩展销售额,得到结果

OfficeExcel(6)

OfficeExcel(6)

  • 存在问题:刷新后结果不是想要的

OfficeExcel(6)

OfficeExcel(6)

原因:在步骤——合并的列,打开高级编辑器

OfficeExcel(6)

OfficeExcel(6)

  • 如何解决?

OfficeExcel(6)

出现报错

OfficeExcel(6)

打开高级编辑器,找出错误位置

OfficeExcel(6)

其中:M函数 List.Sumg改为Text.Cmbine

OfficeExcel(6)

上载

之后就能得到想要的结果了

OfficeExcel(6)

刷新

OfficeExcel(6)