既适用于Excel,也适用于Power BI
Power Query的80%能力都要通过M函数来实现,使用M函数可以灵活地完成数据导入、整合、加工处理等任务工作
Power Query的界面操作只能发挥其全部能力的20%,剩余80%的能力都要通过M函数来实现。M函数是Power Query专用的函数,使用M函数可以帮助我们自由灵活地完成数据导入、整合、加工处理等任务工作。本书首先通过介绍基本操作让读者体验Power Query的魅力,让读者用图形操作界面也能玩转数据的整理、清洗和转换。其后介绍M函数的分类,以及学习的方法,还有*重要的“上下文”概念。本书的第5章会详细介绍部分M函数的语法、参数及用法,再结合实际案例讲解多个M函数的嵌套。本书适用于从事出纳、会计、统计、仓管、数据分析等频繁与数据打交道的工作的人;不想学高级函数、VBA编程等复杂的数据处理功能,但工作中又有需要的人。
目录
第1章
Power Query的庐山真面目 1
1.1 初识Power Query 1
1.2 “新建查询”命令 2
1.3 “查询编辑器”界面介绍 3
1.4 在“查询编辑器”内导入数据 8
1.5 用“从表格”命令导入多张数据表 9
1.6 将查询表上载至Excel 12
1.7 刷新数据 13
第2章
Power Query的基础操作 15
2.1 添加自定义列 15
2.2 “追加查询”功能 17
2.2.1 “追加查询”功能详解 17
2.2.2 “追加查询”案例――汇总4张工作表 21
2.2.3 “追加查询”案例――文件夹汇总 24
2.3 “合并查询”功能 31
2.3.1 “合并查询”功能详解 32
2.3.2 “合并查询”案例――单条件匹配 35
2.3.3 “合并查询”案例――多条件匹配 37
2.3.4 “合并查询”案例――一对多查询 39
2.3.5 “合并查询”案例――对比两列数据的差异 41
2.4 “透视列”与“逆透视列”功能 43
2.4.1 数据的维度 43
2.4.2 “透视列”案例――将一维表转换为二维表 44
2.4.3 “透视列”案例――文本透视 45
2.4.4 “逆透视列”功能详解 46
2.4.5 “逆透视列”案例――将二维表转换为一维表 46
2.5 “分组依据”功能 47
2.5.1 “分组依据”功能详解 47
2.5.2 “分组依据”案例 48
第3章
M函数入门 51
3.1 Power Query的三大容器 51
3.1.1 List(列表) 51
3.1.2 List扩展 53
3.1.3 List类函数 54
3.1.4 List合并 57
3.1.5 Record(记录) 58
3.1.6 Record扩展 59
3.1.7 Record类函数 60
3.1.8 Record合并 60
3.1.9 Table(表) 62
3.1.10 Table扩展 64
3.1.11 Table类函数 64
3.1.12 Table合并 67
3.2 深化容器中的元素 68
3.2.1 深化List元素 68
3.2.2 深化Record元素 69
3.2.3 深化Table元素 70
3.2.4 深化多层容器 73
3.3 数据类型 73
3.3.1 自动检测数据 74
3.3.2 数据类型设置 75
3.4 M函数入门 77
3.4.1 M函数的类别 77
3.4.2 Text类函数 79
3.4.3 Number类函数 80
3.4.4 Time类函数 82
3.4.5 Date类函数 82
3.4.6 DateTime类函数 84
3.5 学习M函数的方法 85
3.5.1 查看所有函数 85
3.5.2 读懂函数的参数 87
第4章
Power Query中的重要概念 89
4.1 分支语句 89
4.1.1 条件语句:if…then…else… 89
4.1.2 调用“条件列” 92
4.1.3 容错语句:try…otherwise… 95
4.2 打开M函数的钥匙――“上下文” 97
4.2.1 Table.AddColumn:表添加列 98
4.2.2 Table.SelectRows:对表进行筛选 99
4.2.3 Table.Distinct:对表删除重复项 102
4.2.4 Table.RowCount/Table.ColumnCount:计算表行/列数 104
4.2.5 Power Query中的“上下文” 104
4.2.6 自定义参数 106
4.2.7 实战案例1――国际排名 109
4.2.8 实战案例2――中国式排名 111
4.2.9 实战案例3――中国式班级排名 114
4.2.10 实战案例4――筛选家庭成员信息 115
第5章
Power Query 实战 118
5.1 M函数的初阶运用 118
5.1.1 List.Sum:列表求和 118
5.1.2 List.Max/List.Min:返回列表中的最大/小值 119
5.1.3 Number.From:数字转换 122
5.1.4 Table.Group:分组统计 124
5.1.5 实战案例1――计算连续正负数的个数并求和 132
5.1.6 Table.Max /Table.Min:筛选表中最大值/最小值的行 135
5.1.7 实战案例2――筛选最近一次的记录 136
5.1.8 实战案例3――计算每人连续迟到的最大次数 139
5.1.9 Table.Skip:跳过表前几行 143
5.1.10 Text.Start/ Text.End:从左取值/从右取值 146
5.1.11 Text.Combine:文本合并 148
5.1.12 实战案例4――合并同部门的姓名 150
5.1.13 实战案例5――将单词和翻译分列显示 151
5.1.14 Text.From:文本转换 153
5.1.15 List.Transform:遍历列表 154
5.1.16 实战案例5――文件夹汇总 156
5.2 M函数的进阶运用 158
5.2.1 Text.Split:文本分割 158
5.2.2 Date.FromText:日期来自文本 160
5.2.3 Date.ToText:日期转到文本 161
5.2.4 List.RemoveNulls:删除列表中的null值 162
5.2.5 实战案例6――在数据中提取日期 163
5.2.6 实战案例7――求数据中的金额总和 166
5.2.7 List.PositionOf:在列表中查找索引值 171
5.2.8 Record.ToList/Record.FieldValues:返回记录中的值 174
5.2.9 Table.ColumnNames:返回表的列标题 175
5.2.10 实战案例8――返回满足条件的所有区间 176
5.2.11 Number.RoundDown:向下舍入 179
5.2.12 List.Range:取列表中的值 180
5.2.13 Table.FromColumns:表来自列 180
5.2.14 实战案例9――单列转多列 182
5.3 M函数的高阶运用 185
5.3.1 Table.ToColumns:按列转换表 185
5.3.2 Table.ToRows:按行转换表 186
5.33 Table.FromRows:表来自行 187
5.3.4 实战案例10――添加汇总行和汇总列 189
5.3.5 List.Zip:列表压缩 192
5.3.6 实战案例11――计算每个学生获得第一名的次数 193
5.3.7 Number.Sign:数字符号 197
5.3.8 Text.Contains:判断字符串中是否包含某值 198
5.3.9 实战案例12――判断服装是齐码还是断码 200
5.3.10 实战案例13――将多列数据转换成两列数据 203
5.3.11 实战案例14――取特定位置的值 207
5.3.12 List.Select:筛选列表 209
5.3.13 实战案例15――取包含特定值的信息 211
5.3.14 List.TransformMany:笛卡儿组合函数 213
5.3.15 实战案例16――制作工资条 218