Power BI(二):Power Pivot建模和DAX表达式
一、表关系和建模
1. 表的对应关系
| 关系类型 |
特点 |
原因 |
| 一对一 |
主键对主键 |
业务工作中基本见不到 |
| 多对多 |
非主键对非主键 |
可以遇到但不能适用,虽然能连接但不能正确分类汇总 |
| 一对多 |
主键对非主键 |
正确的连接关系,一表出维度多表出度量 |
注:维度筛选度量,筛选是维度汇总度量的能力
2. 变量类型
| 变量类型 |
说明 |
举例 |
| 名义型 |
文本型,用于维度,能做主键 |
id、姓名、星座、血型 |
| 有序型 |
文本型,用于维度,不能做主键 |
成绩水平、员工绩效、健康状况 |
| 连续型 |
数值型,用于度量,不能做主键 |
如温度、身高、体重 |
3、多维数据集间的关系
- 单向连接下:一表出维度多表出度量(T1)
- 双向连接下:一表出维度多表出度量(T1),多表出维度一表出度量(T2)
4、T2关系的可能场景
- 相邻两表双向筛选时,多表出维度,一表出度量,这种情况要避免,一般也不会用到。

- 跨表筛选,路径通的时候通过关键字段跨表连接,要尽量避免;当满足维度与关键字是父子级关系时才能得到正确结果。
注:父子级关系是一个父级值对应多个子级值,一个子级值只能属于一个父级值,如省份与城市、产品系列与产品。

二、业务指标
- 指标与指标体系
- 模型与分析方法
- 行为与流程
- 汇总维度(汇总指标的维度)与筛选维度(切片器)

三、DAX表达式新建度量值
1、常见表达式
- 转换:switch(表达式,值1,结果1,值2,结果2,...)
- 合并(前提是表间建立了关系):related(字段)
- 筛选条件:filter(表,满足条件)
- 过滤条件(可跨表):all(过滤表或字段)
- 计算(条件之间是and):calculate(计算规则,条件1,条件2,...)
- 计算均值:avg,当均值的维度不是主键时,需要用公式sum/count计算
- 排名:rankx(条件,字段名)
2、几个例子
3、时间智能函数
- totalmtd函数:返回当月月初至当前日合计值,不能参照时间段,只受后点影响。
- previousmonth函数:返回上月整月合计值,不能参照时间段,只受前点影响。
- dateadd函数:返回上月相同时间段合计值,可参照时间段,受时间段前后点影响。
注:所选日≥上月最后一天或本月最后一天,返回上月全月,其他无法求的值则修改参数MONTH为DAY。
- 构造辅助日期
