本书从 Excel 处理大型数据的缺点开始讲起,逐步讲解了 Excel 和 Power BI 中的 Power Query 组件,并重点介绍了Power Query 的底层 M 语言的应用知识。
本书分为 10 章,主要讲解了 Power Query 的入门知识和数据集成、Power Query 的 M 语法规则系列知识,针对 Power Query 如何实现数据清洗和重构系列知识做了详细的讲解,还重点介绍了目前 Power Query 的各类内置函数的功能,最后介绍了如何利用自定义函数实现复杂的数据处理和重构过程。
本书内容通俗易懂,案例丰富,实用性强,特别适合入门级数据分析人员学习,也适合进阶阅读,相信通过阅读本书,读者对数据分析过程中的清洗和重构会有一个新的认识。
徐鹏
----------------------------
徐鹏,微软最有价值专家MVP、微软公共论坛版主、51CTO特级讲师,原微软中国有限公司工程师,曾为中广核、华为、比亚迪、南航、台积电等中大型企业提供培训及顾问咨询服务。先后就职于宏碁(中国)有限公司、微软(中国)有限公司。为全球500强企业提供各类业务的优化服务及顾问咨询服务,精通数据分析方法论及Windows系统的自动化运维。
第1章 走入Power Query的世界
1.1Excel处理数据的缺点2
1.2Excel的Power数据处理组件3
1.3Power Query组件5
1.3.1Excel的Power Query组件8
1.3.2Power BI的Power Query数据导入界面10
1.4Power Query编辑器11
1.4.1Excel的Power Query编辑器
界面12
1.4.2Power BI的Power Query编辑器
界面14
1.4.3Excel在Power Query数据处理中的优势17
1.4.4Power BI在Power Query数据处理上的优势18
1.5Power Query的底层语言——M语言21
1.6本章总结24
第2章 Power Query的数据集成
2.1Power Query的CSV/TXT 数据集成26
2.1.1Excel 导入CSV数据26
2.1.2Power BI导入CSV数据30
2.2Power Query的Excel数据集成32
2.2.1Excel中的Excel数据导入与
集成32
2.2.2Power BI中的Excel数据导入与
集成34
2.3Excel 导入当前表格中的数据35
2.4XML格式数据集成37
2.4.1Excel 实现XML 数据的集成37
2.4.2Power BI 导入XML格式数据40
2.5JSON格式数据集成42
2.5.1Excel实现JSON数据集成43
2.5.2Power BI实现JSON数据集成45
2.6文本格式数据集成46
2.6.1Excel以文本格式导入数据47
2.6.2Power BI以文本格式导入数据48
2.7Power Query的SQL Server数据集成50
2.7.1Excel获取SQL Server全部
数据53
2.7.2Excel获取T-SQL 筛选后的
数据54
2.7.3Power BI以导入方式获取SQL
数据56
2.7.4Power BI采用Direct Query获取SQL数据58
2.8Power Query导入Web数据61
2.8.1Excel 实现Web的数据获取62
2.8.2Power BI实现Web的数据获取65
2.9Power Query 导入Web API数据70
2.9.1Excel 实现Web API数据获取71
2.9.2Power BI实现Web API数据获取72
2.10Power Query导入MySQL数据74
2.10.1Excel 实现MySQL 数据获取75
2.10.2Power BI 实现MySQL数据
获取77
2.11Power Query导入文件夹数据79
2.11.1Excel提取文件夹所有文件
数据79
2.11.2Power BI提取文件夹的所有
数据81
2.12Power BI中的数据流服务84
2.12.1Power BI Pro构建数据流服务84
2.12.2Power BI Desktop引用数据流
服务87
2.13数据源访问的权限管理88
2.14本章总结90
第3章 Power Query和M语言
3.1什么是M语言92
3.2M语言支持的基本数据类型96
3.3M语言支持的组合数据类型99
3.4Power Query的M语言结构101
3.5Power Query中M语言的智能提示105
3.6Power Query的M语言变量107
3.7Power Query的M语言参数109
3.8Power Query的M语言流程处理114
3.9Power Query的M语言的错误处理116
3.10Power Query的M语言嵌套119
3.11Power Query的M语言操作符120
3.12M语言的注释130
3.13本章总结131
第4章 Power Query实现数据的清洗和重构
4.1数据清洗遵从的原则133
4.2数据清洗后的操作134
4.3数据清洗和重构具体操作134
4.4Power Query实现数据类型的转换135
4.4.1Excel中数据类型转换135
4.4.2Power BI数据类型转换137
4.5Power Query实现列的删除138
4.6Power Query 实现行的删除139
4.7Power Query保留行操作146
4.8Power Query的数据筛选150
4.9Power Query添加数据列156
4.10Power Query按列分列164
4.11Power Query按列分行172
4.12Power Query的数据转置175
4.13Power Query数据替换176
4.14Power Query数据列交换179
4.15Power Query的数据排序179
4.16Power Query时间表的构建181
4.17本章总结186
第5章 Power Query实现数据合并操作
5.1Power Query数据多重合并操作188
5.2Power Query数据追加合并操作189
5.3Power Query数据横向合并192
5.4数据合并连接关系说明195
5.5Power Query处理缺失值203
5.6Power Query实现数据的分组207
5.7Power Query实现数据的透视217
5.8Power Query实现数据的逆透视219
5.9本章总结220
第6章 Power Query查询连接的分享与刷新
6.1Power Query数据连接的分享与重用222
6.2Excel中的Power Query连接与复制222
6.3Power Query连接的导出与导入226
6.4Power Query 的数据刷新229
6.4.1Excel的刷新功能230
6.4.2Power BI的刷新功能238
6.5本章总结247
第7章 Power Query的函数
7.1Power Query函数的获取与使用249
7.2Power Query文件系列访问函数259
7.2.1CSV文件解析260
7.2.2Excel 文件内表解析261
7.2.3引用第三方Excel数据263
7.2.4XML文件解析263
7.2.5JSON文件解析264
7.3数据库访问函数265
7.3.1Access 数据库访问265
7.3.2SQL Server 数据库访问266
7.3.3MySQL数据库访问266
7.4Web访问函数267
7.4.1Web.Contents函数267
7.4.2Web.Page 函数267
7.4.3Web.BrowserContents 函数268
7.4.4Html.Table 函数268
7.5Power Query文本处理函数269
7.5.1Text.Length计算字符串长度269
7.5.2Text.Insert插入字符串270
7.5.3Text.From 将其他数据类型转换为
文本类型270
7.5.4Text.Format 设置文本输出格式271
7.5.5Text.Tolist 将文本转换为列表271
7.5.6Text.Start截取字符串中前面的
字符272
7.5.7Text.Select删除不需要的字
符串272
7.5.8Text.Middle 截取中间部分字符273
7.5.9Text.End截取从设定位置到结尾的字符273
7.5.10Text.Range 获取字符串范围
数据274
7.5.11Text.Replace 替换特定数据274
7.5.12Text.ReplaceRange替换区域
数据274
7.5.13Text.Repeat重复文本275
7.5.14Text.Combine合并文本275
7.5.15Text.Trim删除前后特定字符276
7.5.16Text.Padstart 占位符填充277
7.5.17Text.Split字符串分隔278
7.5.18Text.BeforeDelimiter获取分隔符前的数据278
7.5.19Text.AfterDelimiter获取分隔符后的数据279
7.5.20Text.BetweenDelimiters获取分隔符中间值280
7.6Power Query列表处理函数280
7.6.1List.Accumulate列表累加器
计算281
7.6.2List.Range获取列表区域281
7.6.3List.Average计算列表平均数282
7.6.4List.Sum对列表求和282
7.6.5List.Combine合并列表283
7.6.6List.Count统计列表元素283
7.6.7List.Dates 创建日期列表284
7.6.8List.LastN获取列表最后N个
元素284
7.6.9List.MaxN 获取最大数据285
7.6.10List.Numbers 生成数值列表286
7.6.11List.Product列表元素乘积287
7.6.12List.Random生成随机数列表287
7.6.13List.RemoveFirstN删除列表前面N个数值288
7.6.14List.RemoveItems 删除列表项288
7.6.15List.RemoveRange删除列表区间
数值289
7.6.16List.Repeat重复列表数据290
7.6.17List.ReplaceRange 替换列表
区间290
7.6.18List.Select筛选列表291
7.6.19List.Skip实现列表行跳跃291
7.6.20List.Sort列表排序292
7.6.21List.Split列表分割292
7.6.22List.Union对列表非重复数据进行合并293
7.6.23List.Generate生成列表293
7.6.24List.Zip 列表提取与组合294
7.7Power Query记录处理函数295
7.7.1Record.AddField 添加记录字段
功能295
7.7.2Record.Combine 记录连接295
7.7.3Record.FromList将列表转换
记录296
7.7.4Record.RemoveFields删除字段296
7.7.5Record.SelectFields 选择记录297
7.7.6Record.Tolist将记录转换为
列表297
7.8Power Query表处理函数298
7.8.1Table.AddColumn在表中添加并计算列298
7.8.2Table.AddIndexColumn为表添加索引列299
7.8.3Table.AddJoinColumn添加嵌
套表299
7.8.4Table.AlternateRows行跳跃300
7.8.5Table.Combine合并数据表301
7.8.6Table.DemoteHeaders实现表标题
降级301
7.8.7Table.Distinct获取表唯一值302
7.8.8Table.ExpandListColumn扩展
列表303
7.8.9Table.ExpandRecordColumn 扩展记录列304
7.8.10Table.ExpandTableColumn扩展表数据304
7.8.11Table.FindText 查找内容305
7.8.12Table.FirstN 获取前面的表
数据305
7.8.13Table.Group对表数据聚合307
7.8.14Table.Join进行表连接307
7.8.15Table.LastN获取表最后几行
数据308
7.8.16Table.MaxN求表中最大的N个
数据309
7.8.17Table.MinN求表中最小的N个
数据310
7.8.18Table.PromoteHeaders将第一行提升为标题行311
7.8.19Table.Range选择区域行312
7.8.20Table.RemoveColumns 删除列313
7.8.21Table.RemoveFirstN删除表前面
的行313
7.8.22Table.RemoveLastN删除表后面
的行314
7.8.23Table.Repeat实现表行重复315
7.8.24Table.ReplaceRows 替换数
据行316
7.8.25Table.ReplaceValue替换数
据值317
7.8.26Table.SelectRows 筛选数据318
7.8.27Table.Skip实现表的行跳跃318
7.8.28Table.Sort对表排序319
7.8.29Table.Transpose互换行列320
7.9Power Query URL处理函数321
7.9.1Uri.BuildQueryString构建URL访问地址参数321
7.9.2Uri.Combine合并URL访问
地址321
7.10Power Query数据合并函数322
7.10.1Combiner.CombineTextByDelimiter 以分隔符方式合并字符322
7.10.2Combiner.CombineTextByEachDe-limiter按顺序分隔符合并文本323
7.11Power Query数据分割函数324
7.11.1Splitter.SplitTextByDelimiter按分隔符拆分数据324
7.11.2Splitter.SplitTextByEachDelimiter按分隔符列表拆分数据324
7.11.3Splitter.SplitTextByLengths按照长度拆分数据325
7.11.4Splitter.SplitTextByRepeatedLength按字符长度重复拆分325
7.11.5SplitTextByPositions按位置
拆分326
7.12Power Query日期时间函数327
7.12.1Date.Day获取日期部分327
7.12.2Date.DayOfWeek求取日期位于一周中的第几天327
7.12.3Date.DayOfYear求取日期位于一年中的第几天328
7.12.4Date.DaysInMonth求取日期所在月份的天数328
7.12.5Date.FromText将文本生成
日期328
7.12.6Date.AddDays日期的加减329
7.12.7Date.AddMonths月度加减
运算329
7.12.8Date.AddYears年度加减运算330
7.12.9Date.ToText将日期转换为
文本330
7.12.10Date.ToRecord将日期转换为
记录331
7.12.11DateTime.LocalNow获取当前
时间331
7.13本章总结331
第8章 Power Query的自定义函数
8.1从零开始构建自定义函数334
8.1.1无参数自定义函数构建335
8.1.2有参数自定义函数构建336
8.2基于数据结果建立函数337
8.3执行并获取自定义函数结果340
8.4自定义函数提取文件夹内所有请假
数据341
8.5自定义函数获取基金即时净值348
8.6本章总结353
第9章 Power Query与Python
9.1Power Query调用Python的前置
条件355
9.2Python环境的安装与部署355
9.3Power BI 启用Python 支持358
9.3.1Power Query执行Python验证358
9.3.2Power Query结合Python生成中文词云361
9.4本章总结365
第10章 Power Query数据综合应用案例
10.1身份证信息的初步导入368
10.2身份证号码数据初步清洗369
10.3身份证数据二次清洗373
10.4非中文姓名数据清洗375
10.5本章总结377
附录Power Query 简单案例处理378