
本书系统的阐释Power Pivot for Excel及Power BI中DAX语言的应用。本书是基于笔者多年的DAX学习与使用经验的基础上所采用的一种全新布局与讲解方式,整书依据读者易于理解的方式,由浅入深进行循序渐进式的讲解。本书要探索的重点是,如何利用最简捷的办法,让读者在一至两个月之内轻松、系统、全面地掌握DAX语言。
全书共分为5篇:第一篇为入门篇(第1章和第2章),第二篇为基础篇(第3~5章),第三篇为强化篇(第6章和第7章),第四篇为进阶篇(第8~10章), 第五篇为案例篇(第11章)。书中主要内容包括DAX基础、表的基础应用、查询表、计算列、迭代行、度量值、时间智能、Power BI简介、筛选调节、DAX高阶、综合案例。
本书是为非计算机专业及非统计学专业想快速掌握DAX数据分析及商业智能而准备的。另外,本书也适用于财务、人事行政、电商客服、质量统计等与数据分析密切相关的从业人员,也可作为高等院校、IT培训机构、其他编程爱好者的参考用书。
在Excel中,Power Pivot的功能非常强大。它可以通过数据建模的方式把多张具备关联关系的表格通过一定的规则关联在一起,然后通过DAX公式去构建度量值或计算列,实施个性化或复杂业务场景的数据分析,如ABC分析、库存分析、关联分析、移动平均、RFM分析等; 而Power BI的BI功能则远胜于Excel,它引入了大量的黑科技并做到近乎以月为频率的快速更新,使Power BI的功能益发强大。
本书重点介绍Power Pivot for Excel及Power BI中DAX语言的应用。如何理解Power Pivot、Power BI及DAX三者之间的关系呢?①Power Pivot是一种数据维度建模技术,可用于处理大型数据集,构建广泛的关系,以及创建复杂(或简单)的计算,这些高性能的操作全部能够在读者所熟悉的Excel内完成; ②Power BI是一系列的软件服务、应用和连接,它可将不相关的数据源转换为合乎逻辑、视觉上逼真的交互式见解,并最终实现信息共享,而Power Pivot数据建模是Power BI组件的灵魂和核心; ③DAX是Data Analysis eXpressions(数据分析表达式)的简称,它是由微软公司开发的并适用于Power Pivot for Excel、Power BI及SQL Server Analysis Services(SSAS)等产品中的公式语言。DAX可用来定义计算列和计算度量值,也可以用来生成查询语句。
然而,DAX其实是一门典型的入门容易精通难的语言。任何具有一定Excel函数及透视表应用基础的读者,在刚接触到DAX时都会很兴奋并迫不及待地想深入了解并应用,但绝大多数的人很快会遇到各种各样的困惑,很多人甚至因此由入门到放弃。在现代计算机语言中,数据一般有数据结构和数据类型之分。结构决定功能,功能一般通过相关的函数或方法实现。本书基于笔者多年的DAX学习与使用经验采用一种全新的方式进行布局与讲解,整书依据“DAX语言简介→数据建模简介→表格的查询与创建→计算列的创建→行的迭代与聚合→度量值与上下文的讲解→时间智能的讲解→BI新技术的应用→综合案例的应用”的逻辑顺序及读者易于理解的方式,由浅入深地进行循序渐进式的讲解。本书要探索的重点是,如何利用最简捷的方法,让读者在一至两个月内轻松、系统、全面地掌握DAX语言。
秉承“实以致用”的原则,本书采用三组简单的数据模型作为主打案例,把Power BI的DAX函数的各类常见应用场景有效地串接起来,让读者有精力、有能力去对比、消化与理解那些受上下文影响而造成的困惑。本书在系统性阐述Excel数据模型基础知识之上,以管理学中5W1H为展开维度,让单调、枯燥、复杂的知识系统化、实用化。
本书适用于对Excel函数及传统数据透视表使用娴熟,但一直苦于无法有效入门DAX的读者。因为模型数据很简单,在理解数据模型及上下文的过程中,读者甚至可以用手动计算的方式来完成其中的计算,以此加深对相关知识点及背后逻辑的理解与掌握。
本书主要内容
全书共分为5篇: 第一篇为入门篇(第1章和第2章),第二篇为基础篇(第3~5章),第三篇为强化篇(第6章和第7章),第四篇为进阶篇(第8~10章),第五篇为案例篇(第11章)。书中主要内容包括DAX基础、表的基础应用、查询表、计算列、迭代函数、度量值、时间智能、Power BI简介、筛选调节、DAX高阶用法、综合案例。
本书是为非计算机专业及非统计学专业想快速掌握DAX数据分析及商业智能的读者而准备的,也适用于财务、人事行政、电商客服、质量统计等与数据分析密切相关的从业人员,还可作为高等院校、IT培训机构及其他编程爱好者的参考用书。
本书源代码
扫描下方二维码,可获取本书源代码。
本书源代码
致谢
首先要深深地感谢清华大学出版社赵佳霓编辑,从策划到落地过程中的全面指导,她细致、专业的指导让笔者受益良多。本书是《深入浅出Power Query M语言》的姊妹篇,这中间的创作勇气与灵感来源于清华大学出版社赵佳霓编辑在本书及其姊妹篇创作过程中给予的帮助和点评。
还要感谢笔者的妻子。本书是笔者利用业余时间完成的,写作的过程中占据了大量的个人时间及家庭时间,她的理解与支持是笔者最大的动力。
感谢笔者的父母,是你们的谆谆教诲才使笔者一步一个脚印地走到今天。
由于时间仓促,书稿虽然经全面检查,但疏漏之处在所难免,敬请读者批评指正,你们的反馈是笔者进步的动力。
黄福星2023年2月
第一篇入门篇
第1章DAX基础
1.1数据管理
1.1.1测量尺度
1.1.2数据质量
1.1.3数据清洗
1.1.4分析方法
1.1.5分析技巧
1.2透视表
1.2.1数据透视表
1.2.2字段设置
1.3超级透视表
1.3.1与普通透视表的区别
1.3.2DAX数据分析
1.4DAX基础
1.4.1DAX语法
1.4.2DAX函数
1.4.3DAX运算符
1.5DAX表达式
1.5.1数据基础
1.5.2VAR变量
1.5.3空值
1.5.4错误值
1.6DAX使用中的困惑
1.6.1来自DAX的困惑
1.6.2来自数据模型的困惑
1.6.3来自CALCULATE()的困惑
1.7本章回顾
第2章表的基础应用
2.1数据模型基础
2.1.1COM加载项
2.1.2数据查看方式
2.2数据获取
2.2.1从Power Query加载
2.2.2获取外部数据
2.2.3添加到数据模型
2.2.4粘贴到数据模型
2.3数据模型
2.3.1建模基础
2.3.2星型模型
2.3.3雪花模型
2.4度量值管理
2.4.1新建度量值
2.4.2管理度量值
2.5函数抢先看
2.5.1关系函数
2.5.2LOOKUPVALUE()
2.5.3DISTINCT()
2.5.4DISTINCTCOUNT()
2.5.5COUNTROWS()
2.5.6HASONEVALUE()
2.5.7DIVIDE()
2.6DAX查询
2.6.1DAX查询表
2.6.2DAX Studio
2.7本章回顾
第二篇基础篇
第3章查询表
3.1表函数
3.1.1统计学基础
3.1.2ALL()
3.1.3VALUES()
3.2高级筛选
3.2.1筛选应用
3.2.2综合应用
3.3表筛选
3.3.1筛选基础
3.3.2筛选顺序
3.3.3差异比较
3.4集合与事件
3.4.1UNION()
3.4.2INTERSECT()
3.4.3EXCEPT()
3.5笛卡儿积
3.5.1CROSSJOIN()
3.5.2GENERATE()
3.5.3GENERATEALL()
3.6连接查询
3.6.1NATURALINNERJOIN()
3.6.2NATURALLEFTOUTERJOIN()
3.7分组
3.7.1SUMMARIZE()
3.7.2SUMMARIZECOLUMNS()
3.7.3ROLLUP()
3.7.4ROLLUPISSUBTOTAL()
3.7.5ROLLUPADDISSUBTOTAL()
3.7.6ADDMISSINGITEMS()
3.8创建表
3.8.1表构造器{()}
3.8.2DATATABLE()
3.8.3ROW()
3.9综合应用
3.9.1TOPN()
3.9.2扩展表理论
3.9.3创建度量表
3.9.4创建维度表
3.10本章回顾
第4章计算列
4.1Excel通用函数
4.1.1逻辑与信息类函数
4.1.2文本类函数
4.1.3统计类函数
4.1.4数学与三角函数
4.1.5日期时间类函数
4.2ADDCOLUMNS()
4.3SELECTCOLUMNS()
4.3.1计算列命名规则
4.3.2数据获取方式
4.4综合案例
4.4.1综合应用一
4.4.2综合应用二
4.4.3综合应用三
4.5本章回顾
第5章迭代函数
5.1常见迭代聚合
5.1.1COUNTX()
5.1.2MAXX()
5.1.3AVERAGEX()
5.1.4PERCENTILEX.EXC()
5.1.5VARX.P()
5.1.6STDEVX.P()
5.1.7RANKX()
5.2SUMX()迭代函数
5.2.1第1个参数(表)
5.2.2第2个参数(条件表达式)
5.2.3SUMX()综合应用
5.3当前行
5.3.1EARLIER()
5.3.2VAR变量
5.4CONCATENATEX()
5.5本章回顾
第三篇强化篇
第6章度量值
6.1上下文
6.2CALCULATE()
6.2.1函数的比较
6.2.2逻辑与顺序
6.2.3上下文替换
6.2.4上下文转换
6.2.5上下文互动
6.3筛选器
6.3.1ALLSELECTED()
6.3.2ALLEXCEPT()
6.3.3ALLNOBLANKROW()
6.3.4FILTERS()
6.4综合应用
6.4.1使用细节说明
6.4.2购买与推荐分析
6.4.3产品ABC分类分析
6.4.4产品期初与结存分析
6.5本章回顾
第7章时间智能
7.1日期表
7.1.1M语言创建
7.1.2DAX创建
7.1.3创建计算列
7.1.4按列排序
7.1.5月份编号
7.2日期函数
7.2.1时间智能函数
7.2.2智能函数整理
7.3日期早晚
7.3.1FIRSTDATE()/LASTDATE()
7.3.2含有NONBLANK的函数
7.3.3含有OF的函数
7.3.4含有BALANCE的函数
7.4日期前后
7.4.1PREVIOUSDAY()/NEXTDAY()
7.4.2PREVIOUSMONTH()/NEXTMONTH()
7.4.3PREVIOUSQUARTER()/NEXTQUARTER()
7.4.4PREVIOUSYEAR()/NEXTYEAR()
7.5日期平移
7.5.1DATEADD()
7.5.2SAMEPERIODLASTYEAR()
7.5.3PARALLELPERIOD()
7.5.4DATESINPERIOD()
7.5.5DATESBETWEEN()
7.6日期累积
7.6.1MTD(月度至今)
7.6.2QTD(季度至今)
7.6.3YTD(年度至今)
7.7综合应用
7.7.1存在空值的情形
7.7.2环比与同比分析
7.8本章回顾
第四篇进阶篇
第8章Power BI简介
8.1Power BI
8.1.1什么是Power BI
8.1.2Power BI的组成
8.1.3Power BI的启用
8.2Power BI中的黑科技
8.2.1Power BI的进化说明
8.2.2在Power Query中运行Python脚本
8.2.3在可视化区域运行Python脚本
8.2.4智能“问答”
8.3使用Power BI
8.3.1新建表
8.3.2新建列
8.3.3新建数据组
8.3.4新建度量值
8.3.5度量值分组
8.4计算组
8.4.1创建计算组
8.4.2应用计算组
8.5可视化
8.5.1可视化内容
8.5.2搜索与格式设置
8.5.3获取更多视觉对象
8.6本章回顾
第9章筛选调节
9.1层次结构
9.1.1PATH()
9.1.2PATHITEM()
9.1.3PATHLENGTH()
9.1.4PATHCONTAINS()
9.1.5PATHITEMREVERSE()
9.2查找与匹配
9.2.1CONTAINS()
9.2.2CONTAINSROW()
9.2.3CONTAINSSTRING()
9.2.4CONTAINSSTRINGEXACT()
9.2.5TREATAS()
9.3条件判断
9.3.1ISINSCOPE()
9.3.2ISFILTERED()
9.3.3ISCROSSFILTERED()
9.3.4HASONEFILTER()
9.3.5SELECTEDVALUE()
9.4筛选调节器
9.4.1REMOVEFILTERS()
9.4.2KEEPFILTERS()
9.4.3CROSSFILTER()
9.4.4ALLCROSSFILTERED()
9.5快度量值
9.5.1快度量值的计算类型
9.5.2快度量值的应用
9.6本章回顾
第10章DAX高阶用法
10.1DAX函数进阶
10.1.1CALCULATE()进阶
10.1.2UNICHAR()
10.1.3CONVERT()
10.2筛选前N个
10.2.1筛选器中的前N个
10.2.2应用TOPN
10.2.3模拟参数
10.3动态图表
10.3.1自定义参数表
10.3.2动态纵坐标
10.3.3动态横坐标
10.3.4动态度量值
10.4数据分析
10.4.1区间分析
10.4.2ABC分析
10.4.3RFM分析
10.5本章回顾
第五篇案例篇
第11章综合案例
11.1选项设置
11.2获取数据
11.3数据建模
11.3.1创建数据建模
11.3.2创建表
11.3.3管理计算列
11.3.4管理度量值
11.4智能问答
11.5可视化报表
11.5.1创建可视化报表
11.5.2数据问题的探源
11.5.3可视化区域
11.5.4报表的在线发布
11.6本章回顾
秉承“实以致用”的原则,本书采用三组简单的数据模型作为主打案例,把Power BI的DAX函数的各类常见应用场景有效地串接起来。本书在系统性阐述Excel数据模型基础知识之上,以管理学中5W1H为展开维度,让单调、枯燥、复杂的知识系统化、实用化。
黄福星,精益六西格玛黑带,物流职业经理人(运营总监)。20多年工作经历,职业生涯横跨大型生产制造、综合保税物流与供应链、快递快运与新零售等。在信息流指导物流、数据指导改善、物流降本增效方面经验丰富,能够熟练地将精益改善技术与大数据分析技术运用于各类现场管理。