Power BI 2 DAY
Power BI零散知识点
- 纵向合并 = 主页—组合—追加查询-追加查询(修改数据源)-将查询追加为信查询(创建新数据源)
- 横向合并 = 主页-组合-合并查询-合并查询(修改数据源)-将查询合并为新查询(创建新数据源)
- 转换选项卡是在原字段上直接修改
- 添加列选项卡是先创建新字段,再在新字段上进行修改
- 表格结构:计算操作结果
- 表结构:计算操作过程本身(SQL下用SQL代码记录,PQ下用M函数记录)
M函数
{
源 = Excel.Workbook(File.Contents("C:\Users\chen176\Desktop\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.AddIndexColumn(更改的类型,"序号", 1, 1),
重排序的列 = Table.ReorderColumns(已添加索引,{"序号","身份证号码"}),
已插入文本范围 = Table.AddColumn(重排序的列,"性别", each Text.Middle([身份证号码],16, 1), type text),
更改的类型1 = Table.TransformColumnTypes(已插入文本范围, {{"性别", Int64.Type}}),
校验的为偶数 = Table.TransformColumns(更改的类型1, {{"性别", Number.IsEven, type logical}}),
更改的类型2 = Table.TransformColumnTypes(校验的为偶数,{{"性别", type text}}),
替换的值 = Table.ReplaceValue(更改的类型2, "true", "女性", Replacer.ReplaceText, {"性别"}),
替换的值2 = Table.ReplaceValue(替换的值, "false", "男性", Replacer.ReplaceText, {"性别"}),
提取生日 = Table.AddColumn(替换的值2, "生日", each Text.Middle([身份证号码], 6, 8),type text),
更改生日类型 = Table.TransformColumnTypes(提取生日,{{"生日", type date}})
}
Table.PromoteHeaders(身份证号码_Sheet, [PromoteAllScalars=true])
Table:类别 PromoteHeaders:功能描述 身份证号码_Sheet:参数
更改的类型 = Table.TransformColumnTypes(提升的标题,{{"身份证号码", type text}})
Table.TransformColumnTypes(上一步, {{"要更改的字段", 更改的类型}})
已添加索引 = Table.AddIndexColumn(更改的类型,"序号", 1, 1)
Table.AddIndexColumn(上一步,"序号字段名称", 开始的序号, 步长)
重排序的列 = Table.ReorderColumns(已添加索引,{"序号","身份证号码"}),
Table.ReorderColumns(上一步,{"第一字段","第二字段"})
已插入文本范围 = Table.AddColumn(重排序的列,"性别", each Text.Middle([身份证号码],16, 1), type text),
Table.AddColumn(上一步,"新增字段名称", each(关键字) Text.Middle([被提取的字段],N-1, 位数), 更改的类型)
校验的为偶数 = Table.TransformColumns(更改的类型1, {{"性别", Number.IsEven, type logical}}),
Table.TransformColumns(上一步, {{"操作字段", 判断语句, 更改的类型}})
替换的值 = Table.ReplaceValue(更改的类型2, "true", "女性", Replacer.ReplaceText, {"性别"}),
Table.ReplaceValue(上一步, "查找的值", "替换的值", 替换语句, {"操作字段"})