描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302656050丛书名: 计算机技术开发与应用丛书
学习PQ的特点是,入门很快,灵活应用较难。很多学习者的感受是,对PQ又爱又无力,痛点是应用水平进阶困难。解决工作中随时出现的需求,应灵活地应用M函数。针对这些痛点的解决,本书应运而生。本书是一本基础夯实加实战的书籍,既有基础知识,又有丰富案例,包括详细的操作步骤,实操性强。本书每个章节的知识体系都是循序渐进的。
本书以实战案例为主线,以函数理论基础为核心,引导读者从整体上理解Power Query的灵活应用,从实例中获得解决问题的思路和灵感。 本书共24章,分为原理篇、实战篇、函数篇、扩展篇,详细讲解了PQ的原理和函数应用。原理篇详细讲述三大数据结构(简称为三大容器)的原理和M函数的传参,实战篇通过案例讲函数,函数篇按照类名讲函数,扩展篇讲解自定义函数等灵活的应用。 本书的特点是,举一反三把逻辑原理讲透、用类比法强化记忆、案例配套在线视频。不管使用Excel还是PQ处理数据,不仅要求快,更要准确,本书列举了许多数据处理的思维和细节,提醒读者避坑。 本书面向会PQ界面操作的用户,作为从基础到中级水平的进阶参考书。
配套资源
第一篇原理篇
第1章三大容器的原理
1.1Excel版本异同
1.2三大容器和深化
1.2.1深入理解三大容器
1.2.2深入理解深化
1.2.3三大容器的创建
1.3超级表
1.4PQ使用快捷方式
1.4.1快速访问工具栏
1.4.2快捷键Alt 数字
1.4.3PQ快速访问工具栏
1.4.4自定义选项卡
1.5PQ界面设置
1.5.1查询设置
1.5.2显示编辑栏
1.5.3显示列质量
1.5.4上载设置
1.5.5检测数据类型
1.5.6查询名
1.5.7查询和连接
1.5.8进入PQ编辑器
1.6约定
1.7练习
第2章M语言结构
2.1M语言简介
2.2M函数语法
2.3M函数应用
2.4函数智能提示
2.5变量
2.5.1命名规则
2.5.2导航
2.5.3步骤和查询引用
2.6PQ编辑区域使用技巧
2.6.1在fx编辑栏内换行
2.6.2缩放编辑区域
第3章M函数基础
3.1查询所有M函数
3.2聚合函数
3.2.1List.Sum()
3.2.2List.Average()
3.2.3List.Min()
3.2.4List.MinN()
3.2.5List.Count()
3.2.6List.NonNullCount()
3.2.7List.Product()
3.3空值null
3.4关键字
3.5运算符和标点符号
3.5.1连续的列表
3.5.2加减乘除不简单
3.6if条件语句
3.7布尔值
3.8逻辑运算符
3.9显示的误区
3.10is和=的用法
3.11try容错语句
3.12#的用法
3.13总结
第4章M函数传参原理
4.1解构函数
4.2List.Transform()
4.3表达式
4.4each的用法
4.5List.Select()
4.6each嵌套
4.7function的简化用法
4.8PQ技巧
4.8.1保存习惯
4.8.2语法错误解析
第二篇实战篇
第5章求和案例学函数
5.1动态月份的求和案例
5.2Table.AddColumn()
5.2.1界面操作
5.2.2理解record
5.2.3理解第3个参数
5.2.4each _的简写
5.3Record.ToList()
5.4Record.FieldValues()
5.5List.Skip()
5.6案例总结
5.7List.First()
5.8List.FirstN()
5.9求累计金额案例
5.10Table.AddIndexColumn()
5.11PQ技巧
5.11.1界面操作
5.11.2快速获取数据
第6章文件导入函数
6.1Excel.CurrentWorkbook()
6.1.1函数原理
6.1.2{[标题=值]}的深化方法
6.1.3多超级表导入
6.2导入外部文件
6.3File.Contents()
6.4Excel.Workbook()
6.4.1语法结构
6.4.2工作簿信息
6.4.3导入文件的细节
6.4.4导入错误问题
6.4.5导入的文件是其本身
6.5Csv.Document()
6.6Text.FromBinary()
6.7导入文件夹
6.7.1Folder.Files()
6.7.2Folder.Contents()
6.7.3导入文件夹错误问题
6.8刷新
6.9隐私设置
6.10动态路径
6.10.1绝对路径
6.10.2相对路径
6.10.3多文件路径案例1
6.10.4多文件路径案例2
6.10.5超链接合集案例
6.11PQ技巧
6.11.1获取文件路径
6.11.2复制查询
6.11.3新建组
6.11.4表设计
6.11.5标题行
6.11.6导入空行空列
6.11.7定义名称区域的应用
第7章筛选案例学函数
7.1Table.SelectRows()
7.2Number.IsOdd()
7.3List.Contains()
7.4List.ContainsAll()
7.5笛卡儿积
7.6动态筛选姓名案例
7.7Text.Contains()
7.8PQ快捷键
第8章同类参数学函数1
8.1Table.SelectColumns()
8.2动态选择列案例
8.3Table.RemoveColumns()
8.4Table.RecorderColumns()
8.5Table.RenameColumns()
8.6动态命名案例
8.7Table.ColumnNames()
8.8动态月份列案例
8.9record的灵活用法
8.10添加多列案例
8.11Table.ExpandRecordColumn()
8.12Table.ExpandTableColumn()
8.13Table.ExpandListColumn()
8.14扩展号码案例
8.15[[标题]]的用法
8.16参数的常量化
8.17let in的灵活用法
8.18PQ技巧
8.18.1应用的步骤
8.18.2PQ刷新失效问题
第9章同类参数学函数2
9.1List.AllTrue()/List.AnyTrue()
9.2List.MatchesAll()/List.MatchesAny()
9.3Text.Split()/Text.SplitAny()
9.4筛选文件名案例
9.5List.Split()
9.6Table.Split()/Table.SplitAt()
9.7Text.PositionOf()
9.8Text.PositionOfAny()
9.9List.Positions()
9.10List.PositionOf()
9.11多IF案例
9.12List.PositionOfAny()
9.13总结
第10章报表案例学函数
10.1清洗报表案例
10.2Table.Skip()
10.3Table.FirstN()
10.4Table.PromoteHeaders()
10.5Table.Sort()
10.6花名册查询模板案例
10.7获取最新文件案例
10.8PQ技巧
10.8.1无法进入PQ编辑器
10.8.2引用查询
第11章Date和Number类函数
11.1日期的创建
11.2Date.From()
11.3Date.FromText()
11.4Date.Year()
11.5Date.ToText()
11.6DateTime.LocalNow()
11.7日期类函数
11.7.1含有Add
11.7.2提取信息
11.7.3开始和结束
11.7.4条件判断
11.7.5From和To
11.7.6总结
11.8筛选日期区间案例
11.9Number.From()
11.10Number.FromText()
11.11Number.ToText()
11.12Text.From()
11.13Number.IntegerDivide()
11.14Number.Mod()
11.15Number.Round()
11.16List.Numbers()
11.17List.Dates()
11.18动态日期模板案例
11.19DateTime.ToText()
11.20计算年龄和工龄案例
11.21计算工作时长案例
11.22计算时间戳
11.23显示刷新时间案例
11.24日期细节
11.25单元格格式
第12章合并案例学函数
12.1Text.Combine()
12.2文本连接案例
12.3Record.Combine()
12.4List.Combine()
12.5Table.Combine()
12.6展示所有标题案例
12.7合并文件保留文件信息
12.8转换文件查询
12.9总结
第13章从From到To
13.1Table.ToColumns()
13.2Table.FromColumns()
13.3Table.ToRows()
13.4Table.FromRows()
13.5Table.Transpose()
13.6多维转一维案例
13.7一列转多列案例
13.8纵向求和案例
13.9Table.ToRecords()
13.10Table.FromRecords()
13.11Record.FromTable()
13.12Record.ToTable()
13.13求最低报价案例
13.14Table.TransformRows()
13.15Table.ToList ()
13.16Table.FromList()
13.17Record.FromList()
13.18List.Zip()
13.19动态命名案例
13.20Table.FromValue()
13.21Table.Column()
13.22Record.Field()
13.23动态筛选列名案例
13.24总结
13.25练习
第14章转换案例学函数
14.1Table.TransformColumnTypes()
14.2按照顺序转换类型案例
14.3Table.TransformColumns()
14.4添加前缀案例
14.5转换类型案例
14.6汇率转换案例
14.7Text.Upper()类
14.8Text.Trim()
14.9Text.Clean()
14.10Expression.Evaluate()
14.11特定列转换类型案例
14.12Table.TransformColumnNames()
14.13练习
第15章替换案例学函数
15.1Table.ReplaceValue()
15.1.1界面操作
15.1.2语法结构
15.2动态求和案例
15.3技能等级替换案例
15.4模糊替换案例
15.5Table.ReplaceErrorValues()
15.6Table.SelectRowsWithErrors()
15.7错误值处理
15.8快速显示错误值
15.9时间参数案例
15.10练习
第16章透视和分组
16.1透视
16.1.1一维表和二维表
16.1.2Table.Pivot()
16.1.3语法要点
16.1.4调查问卷案例
16.1.5不要聚合
16.2逆透视
16.2.1仅逆透视选定列
16.2.2逆透视其他列
16.2.3逆透视列
16.2.4要点: null
16.2.5要点: 重复值
16.3多行标题案例
16.4Table.Group()
16.4.1语法
16.4.2合并姓名案例
16.4.3转换打印案例
16.4.4横向转换案例
16.4.5添加座号案例
16.4.6添加组号案例
16.4.7求销售额占比案例
16.5多字段聚合案例
16.6Table.Group()局部分组
16.7单词分组案例
16.8款项计算案例
16.9Table.Group()的特别用法
16.10出现次数案例
16.11Buffer类
16.12排名案例
16.13Table.AddRankColumn()
第三篇函数篇
第17章Table类函数1
17.1Table.ReverseRows()
17.2List.Reverse()
17.3Text.Reverse()
17.4Table.Distinct()
17.5List.Distinct()
17.6List.IsDistinct()
17.7判断是否有重复行案例
17.8排序的不稳定性
17.9Table.DuplicateColumn()
17.10Table.FindText()
17.11Table.FirstValue()
17.12Table.HasColumns()
17.13Table.RowCount()/Table.ColumnCount()
17.14Table.FillDown()/Table.FillUp()
第18章Table类函数2
18.1Table.SplitColumn()
18.2横向分列案例
18.3Table.CombineColumns()
18.4Table.NestedJoin()
18.5Table.Join()
18.6Table.FuzzyNestedJoin()
18.7Table.RemoveMatchingRows()
18.8两表找不同案例
18.9保留重复项
18.10两表找相同案例
18.11排除时间案例
18.12?和??的用法
18.13…的用法
18.14PQ技巧
18.14.1拆分为行
18.14.2删除重复项
18.15练习
第19章Text类函数1
19.1Text.At()
19.2Text.Start()/Text.End()
19.3Text.Length()
19.4Text.Middle()
19.5Text.Range()
19.6Text.RemoveRange()
19.7Text.ReplaceRange()
19.8List.Range()
19.9Text.Insert()
19.10Text.Replace()
19.11Text.PadStart()/Text.PadEnd()
19.12提取身份证号信息案例
19.13文本转日期和时间案例
19.14双引号
19.15双开PQ编辑器
第20章Text类函数2
20.1Character.FromNumber()
20.2Character.ToNumber()
20.3Text.ToList()
20.4半角全角案例
20.5清除不可见字符案例
20.6Text.Repeat()
20.7List.Repeat()
20.8Table.Repeat()
20.9Text.Select()
20.10Text.Remove()
20.11提取中文案例
20.12Text.BeforeDelimiter()
20.13Splitter类
20.14Combiner类
20.15Text.Format()
20.16整数值序列
第21章List类函数
21.1List.Difference()
21.2List.Union()
21.3List.Intersect()
21.4列排序案例
21.5List.RemoveNulls()
21.6List.RemoveItems()
21.7List.RemoveMatchingItems()
21.8List.IsEmpty()/Table.IsEmpty()
21.9删除空行案例
21.10删除空列案例
21.11List.Alternate()
21.12List.Accumulate()
21.12.1语法
21.12.2一对多文本替换
21.12.3多对多文本替换
21.12.4奇偶分组
21.12.5批量添加列
21.12.6总结
21.13List.Generate()
21.13.1语法
21.13.2删除首字母案例
21.14List.TransformMany()
21.15Record类
21.16练习
第四篇扩展篇
第22章自定义函数
22.1自定义函数简介
22.2内部调用
22.3外部调用方法一
22.4外部调用方法二
22.5as的用法
22.6筛选前后n列案例
22.7删除空行空列案例
22.8增加空行案例
22.9压缩连续数字案例
22.10费用表合并案例
22.11逆填充案例
22.12总计行案例
22.13批量聚合案例
22.14神奇的函数名
22.15练习
第23章Power Query不孤单
23.1PQ与VBA
23.2PQ与Python
23.3PQ与数据透视表
23.4数据思维的养成
23.5null的用法总结
23.6逻辑运算符的优先级
23.7复制工作簿查询
23.8Power BI技巧
23.9数据保密性
23.10设计收集表格案例
23.11迭代保留过程案例
23.12设计报表技巧
第24章获取其他源
24.1获取网页表格案例
24.2获取网页文本案例
24.3获取网页数据小结
24.4获取Outlook数据
24.5获取PDF数据
做数据处理有一个苦不堪言的感受,重复地在不同的Excel表之间复制、粘贴数据,来回VLOOKUP,效率低。Power Query(PQ)是解决这种问题的最佳方案。近年来,PQ已经成为不会编程的办公室人员处理数据的利器。
学习PQ的特点是入门很快,但灵活应用较难。很多学习者的感受是对PQ又爱又无力,痛点是应用水平进阶困难。解决工作中随时出现的需求,应灵活地应用M函数。针对这些痛点,本书应运而生。
本书主要内容
第1章介绍使用PQ贯穿始终的3种数据结构(简称为三大容器),通过Excel单元格的用法和三大容器作类比,帮助读者理解三大容器的原理。
第2章介绍M语言的结构。初学PQ最头疼的问题是频繁地写错语法,本章详细地拆解M语言结构,帮助读者理解PQ的语法规则。
第3章介绍M函数、关键字、语句,从基础的List类函数入手,熟悉M函数。
第4章介绍M函数传参的原理,多个M函数涉及自定义函数传参,将传参原理理解透才能灵活地使用M函数。
第5~21章讲解PQ常用的函数,包括Table类、Record类、List类、Number类、Date类、Text类、文件类等函数。
第22章介绍自定义函数的用法,本章是对M函数理解的扩展应用。
第23章介绍PQ与其他工具(VBA、数据透视表等)的结合使用,还介绍PQ对空值的处理,本章内容是数据处理的细节之一。
第24章介绍获取网络数据的M函数。
阅读建议
本书是一本基础夯实加实战的书籍,既有基础知识,又有丰富案例,包括详细的操作步骤,实操性强。
本书非常适合已经学习使用PQ 1~3个月的读者,帮助读者从基础阶段进阶到中级阶段。
本书每个章节的知识体系都是循序渐进的。已经熟练PQ的读者,可以根据目录任意选择自己需要的章节阅读。建议对三大容器、传参原理还未理解透彻的读者,按照章节顺序阅读。
本书部分章的最后一节是PQ的使用技巧,可以先阅览,以提高PQ操作效率。
本书源代码和视频
素材(源码)等资源: 扫描目录上方的二维码下载。
致谢
非常感谢清华大学出版社赵佳霓编辑,让笔者有机会将多年的PQ学习经验分享给读者。感谢在这7个月的写作时光中,家人的陪伴和朋友们的支持,感谢toot、ob、阿武、雾伴湾沟、峡山小明、双鱼协助我对本书内容进行了检查、给予了指正。
意见反馈
PQ的使用细节非常多,书稿虽然经过笔者的全面检查,但疏漏之处在所难免,敬请读者批评指正。
邹慧
2024年1月
评论
还没有评论。