Power Query数据处理
发布时间
阅读量:
阅读量
目录
一、使用Power Query
连接数据源
使用查询编辑器
纵向合并::将销售一表与销售二表纵向合并为销售总表
横向合并:将产品分类表中信息合并到销售总表中
复制分组表:将销售总表进行复制,复制表表名为分组表
在分组表中提取季度信息
分组依据:以产品类型与季度为分组依据,汇总商机数与商机金额
排序: 按照产品类型与季度的升序顺序进行排序
M函数基础
M函数基本表达式
M函数基本变量类型
一、使用****Power Query
连接数据源
以 Excel 为例

使用查询编辑器
- 删除各表中前两行
- 提升各表标题行
- 纵向合并:将销售一表与销售二表纵向合并为销售总表
- 横向合并:将产品分类表中信息合并到销售总表中
- 复制分组表:将销售总表进行复制,复制表表名为分组表
- 在分组表中提取季度信息
- 分组依据:以产品类型与季度为分组依据,汇总商机数与商机金额
- 排序: 按照产品类型与季度的升序顺序进行排序
行列的识别:
- 字段:识别列,不能重复
- 记录:主键识别行
字段:
- 一个字段只能有一个数据类型
- 所有字段的记录数相同
主键:
- 物理:非空不重复
- 业务:一个表的记录单位,所有非主键字段都要能够围绕主题信息进行描述和扩展
纵向合并::将销售一表与销售二表纵向合并为销售总表

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

复制分组表:将销售总表进行复制,复制表表名为分组表
选中销售总表,复制,双击改名(注意:右键后的第一个复制是所有的表,应该选中间一个才复制当前表)
在分组表中提取季度信息

提出来的单独一列
分组依据:以产品类型与季度为分组依据,汇总商机数与商机金额

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

M函数基础
编辑M函数方法:
- 通过“编辑栏”、“添加自定义列”或“高级编辑器”等功能了解M函数表达式写法。
- 根据需求重新编辑表达式程序。
- 编辑错误通过“查询设置”区域退回重新编辑。
- 在编辑器中输入“=#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)
还没有任何评论哟~
