导图社区 第一章 DAX是什么
DAX指数是全欧洲与英国伦敦金融时报指数齐名的重要证券指数,也是世界证券市场中的重要指数之一。DAX指数于1987年推出,以取代当时的Börsen-Zeitung指数和法兰克福汇报指数(Frankfurter Allgemeinen Zeitung Aktienindex)。1988年7月1日起...
社区模板帮助中心,点此进入>>
论语孔子简单思维导图
《傅雷家书》思维导图
《童年》读书笔记
《茶馆》思维导图
《朝花夕拾》篇目思维导图
《昆虫记》思维导图
《安徒生童话》思维导图
《鲁滨逊漂流记》读书笔记
《这样读书就够了》读书笔记
妈妈必读:一张0-1岁孩子认知发展的精确时间表
第一章 DAX是什么
定义
Data Analysis eXpressions 数据分析表达式
使用范围
PBI、SSAS、Microsoft Power Pivot for Excel
表格模型(Tabular Model)是这些产品的共同特征
理解数据模型
数据模型
是一组通过关系连接到一起的表
表
一组包含数据的行,每一行被列分割,每一列都有指定的数据类型,并且只包含一组信息。一行称为记录
关系
关系是建立在两个表之间的。
关系类型
一对多
“一”端和“多”端分别用“1”和“*”表示
1:1
多对多——弱关系
关系的键
用于创建关系的列
通常具有相同的名称
在“一”端,列的每一行都需要有唯一的值,并且不能包含空值
如果列的每一行都有唯一的值,则该列被称为“表的键”
关系可以形成链
在每个关系中,一个或两个小箭头决定了交叉筛选的方向。
理解关系的方向
筛选总是从关系的“一”端传递到“多”端。如果关系是双向的,筛选也会从“多”端传递到“一”端。
使用关系“多”端的筛选,不会传递到“一”端。计算“一”端的数值不会被筛选,计算的是整体值
建议:需要根据正在使用的场景来选择正确的关系传递方向。建议是尽可能避免使用双向筛选。
给Excel用户学习DAX的建议
与Excel公式的区别
处理对象不同
Excel对单元格执行计算,单元格通过坐标引用
DAX处理的是表和列,而不是单元格
Excel中智能表格
处理列对象
Excel可以引用表和列进行计算
@符号表示“获取当前行的值”
可以在列的所有行使用相同的表达式,而Excel可以在每行使用不同的值来计算公式。
DAX只适用于表结构
所有表达式 都必须引用表中的列
每一个列都以表名为前缀,指定表名
DAX的默认行为是获取当前行中的值
DAX获取列中特定行的值与将列作为一个整体使用,这两种用法之间没有语法差异。
引用整列的值
Excel公式去掉@可以对该列中所有行进行计算
DAX使用聚合函数
在聚合函数中使用了列名作为参数
DAX没有语法差异,以一种自动的方式消除了歧义
Excel函数和DAX:两种函数语言
与其他语言的区别
Excel和DAX中都没有语句、循环和跳转的概念,一切都是函数表达式
相同点
都是函数式语言
有基础函数调用的表达式组成
DAX这种特性通常是一个挑战,对于Excel用户来说,一点不奇怪
使用迭代器
使用方式
添加辅助类列
迭代整个表,并对表的每一个行执行计算,最后聚合结果以生成所需的单个值。(举例:SUMX)
优缺点
优点:可以在单个步骤中执行许多复杂的计算,而不必为此添加许多列,这对特定的公式又用
缺点:直观性不如Excel。观察不到虚拟列,只短暂地存在于公式运行的时候。
建议
可以选择创建计算列来计算每行的结果,但这并不是一个好方法,因为它使用了更多的内存,并可能会降低计算速度,除非使用的是DirectQuery和聚合表。
学习DAX需要先从理论开始
思维方式不同
Excel中习惯于通过网络搜索来找到解决某个问题的复杂公式或方案,通过复制公式并稍作修改来解决问题,而不必考虑其工作原理。
在DAX中并不适用。需要学习一些理论,并彻底理解计值上下文是如何工作的。
学习建议
DAX理论值限于几个重要的概念
掌握了原理,之后的学习主要是积累经验
吸收并掌握计值上下文
了解原理只是成功的一半
给SQL开发人员学习DAX的建议
给MDX开发者学习DAX的建议
给Power BI用户学习DAX的建议
PBI与DAX
Power BI是一个功能强大的分析和建模工具
DAX是Power BI的原生语言
不要期望在几天内就学会复杂的DAX代码
掌握DAX需要实践
CALCULATE最复杂主题
计值上下文是DAX语言的核心