Advertisement

Power Query数据处理

阅读量:

目录

一、使用Power Query

连接数据源

使用查询编辑器

纵向合并::将销售一表与销售二表纵向合并为销售总表

横向合并:将产品分类表中信息合并到销售总表中

​ 复制分组表:将销售总表进行复制,复制表表名为分组表

在分组表中提取季度信息

分组依据:以产品类型与季度为分组依据,汇总商机数与商机金额

排序: 按照产品类型与季度的升序顺序进行排序

M函数基础

M函数基本表达式

M函数基本变量类型

一、使用****Power Query

连接数据源

以 Excel 为例

使用查询编辑器

  • 删除各表中前两行
  • 提升各表标题行
  • 纵向合并:将销售一表与销售二表纵向合并为销售总表
  • 横向合并:将产品分类表中信息合并到销售总表中
  • 复制分组表:将销售总表进行复制,复制表表名为分组表
  • 在分组表中提取季度信息
  • 分组依据:以产品类型与季度为分组依据,汇总商机数与商机金额
  • 排序: 按照产品类型与季度的升序顺序进行排序

行列的识别:

  • 字段:识别列,不能重复
  • 记录:主键识别行

字段:

  • 一个字段只能有一个数据类型
  • 所有字段的记录数相同

主键:

  • 物理:非空不重复
  • 业务:一个表的记录单位,所有非主键字段都要能够围绕主题信息进行描述和扩展

纵向合并::将销售一表与销售二表纵向合并为销售总表

横向合并:将产品分类表中信息合并到销售总表中

复制分组表:将销售总表进行复制,复制表表名为分组表

选中销售总表,复制,双击改名(注意:右键后的第一个复制是所有的表,应该选中间一个才复制当前表)

在分组表中提取季度信息

提出来的单独一列

分组依据:以产品类型与季度为分组依据,汇总商机数与商机金额

排序: 按照产品类型与季度的升序顺序进行排序

M函数基础

编辑M函数方法:

  1. 通过“编辑栏”、“添加自定义列”或“高级编辑器”等功能了解M函数表达式写法。
  2. 根据需求重新编辑表达式程序。
  3. 编辑错误通过“查询设置”区域退回重新编辑。
  4. 在编辑器中输入“=#shared”可以查看M函数列表

高级编辑器:

添加自定义列

二**、PQ基础知识**

M函数基本表达式

M 函数的注释:

  • 单行注释符为//
  • 多行注释符为/…../

M 函数基本表达式:

let…in… 结构:

  • let用于封装计算结果,并为计算结果命名。
  • in用于显示结果

例:

let

Source = Text.Proper("hello world")

in

Source

解说: 通过 let 语句将 Text.Proper(“hello world”) 函数的计算结

果封装到名叫 Source 的变量中,再通过 in 语句显示 Source 变

量的内容“ hello world ”。

M函数基本变量类型

1.添加序号

2.提取身份证号码中的第17位数

判断奇偶数

复制代码
    = Table.TransformColumns(重命名的列,{{"性别", Number.IsEven, type logical}})

替换成男女

复制代码
    = Table.ReplaceValue(替换的值,"false","男性",Replacer.ReplaceText,{"性别"})

所有的代码

复制代码
 let

    
     源 = Excel.Workbook(File.Contents("F:\数据分析师学习\03、Power BI商业智能分析\Power BI数据加工及数据汇总分析\Power Query数据处理\身份证号码练习数据.xlsx"), null, true),
    
     身份证号码_Sheet = 源{[Item="身份证号码",Kind="Sheet"]}[Data],
    
     提升的标题 = Table.PromoteHeaders(身份证号码_Sheet, [PromoteAllScalars=true]),
    
     更改的类型 = Table.TransformColumnTypes(提升的标题,{{"身份证号码", type text}}),
    
     删除的底部行 = Table.RemoveLastN(更改的类型,11),
    
     删除的底部行1 = Table.RemoveLastN(删除的底部行,1),
    
     已添加索引 = Table.AddIndexColumn(删除的底部行1, "序号", 1, 1),
    
     重排序的列 = Table.ReorderColumns(已添加索引,{"序号", "身份证号码"}),
    
     已插入文本范围 = Table.AddColumn(重排序的列, "文本范围", each Text.Middle([身份证号码], 16, 1), type text),
    
     更改的类型1 = Table.TransformColumnTypes(已插入文本范围,{{"文本范围", Int64.Type}}),
    
     重命名的列 = Table.RenameColumns(更改的类型1,{{"文本范围", "性别"}}),
    
     校验的为偶数 = Table.TransformColumns(重命名的列,{{"性别", Number.IsEven, type logical}}),
    
     更改的类型2 = Table.TransformColumnTypes(校验的为偶数,{{"性别", type text}}),
    
     替换的值 = Table.ReplaceValue(更改的类型2,"true","女性",Replacer.ReplaceText,{"性别"}),
    
     替换的值1 = Table.ReplaceValue(替换的值,"false","男性",Replacer.ReplaceText,{"性别"})
    
 in
    
     替换的值1

将代码复制进高级编辑器中,可以直接得到需要的结果。

全部评论 (0)

还没有任何评论哟~