Power BI 中 “标记为日期表” 的用法
用过Power BI的小伙伴都知道,我们日常的分析工作中,基本上所有的业务都会涉及到日期维度的逻辑。
在模型关系中,日期表和事实表的字段不匹配的话,我们的计算就会发生错误。
所以今天小编为大家分享Power BI中“标记为日期表”的用法。
今天的案例是一个超市数据模型:
销售订单表与日期表的关系是基于发货日期序 和日期序 建立。(两列都是整数格式)
首先准备基本度量值
SalesAmount =
SUMX (
'销售订单',
'销售订单'[销售额]
)
新建一个矩阵:
现在我们想知道每个产品类别去年的销售额情况,并算出相对于去年的同比增长率,度量值如下:
PYSales =
CALCULATE (
//上一年的销售额
[Sales Amount],
DATEADD (
'日期表'[日期],
-1,
YEAR
)
)
YOY% =
VAR dif_sales = [SalesAmount] - [PY Sales] //今年相对去年的增长值
VAR per_sales =
DIVIDE (
//同比增长率
dif_sales,
[PYSales],
BLANK()
)
RETURN
per_sales
当我们把PY Sales和YOY % 拖到值位置后,效果如下:
发现这两个度量值并没有计算出来,是什么原因导致的呢?
为了找出原因,我们把日期表执行“标记为日期表”操作。
这时再看报表,度量值正确计算了:
以上事实表和日期表的关系,是基于两表中数值型格式的列作关联,这时我们创建的度量值不能正常参与计算,报表显示错误。我们把日期表“标记为日期表”后,度量值就可以正常计算了。
所以,当日期表和事实表的关系,不是基于日期格式的列所创建,而是基于其他格式的列所创建的时候,我们需要把日期表执行“标记为日期表”操作。
那我们把两表间的关系建立在两个日期格式的列的基础上,会是什么效果呢?
验证这个效果前,我们先取消一下标记为日期表。我们把日期表和销售订单表的关系调整为:基于发货日期和日期列(都是日期格式)建立表间关系。
发现度量值也可以正常计算:
而且,如果把日期表执行“标记为日期表”,这个结果也是不变的。这里大家可以自行验证一下。
小编想说,日常建模中,将日期表“标记为日期表”不是必须的,但如果不是基于日期列建立表间关系,那必须执行“标记为日期表”操作才可以正确计算。而标记为日期表,则可以简化很多关于时间序列的运算。
-
PowerPivot工坊原创文章,转载请注明出处!
如果您想深入学习微软Power BI,欢迎登录网易云课堂试听学习我们的“从Excel到Power BI数据分析可视化”系列课程。或者关注我们的公众号(PowerPivot工坊)后猛戳”在线学习”。
长按下方二维码关注“Power Pivot工坊”获取更多微软Power BI、PowerPivot相关文章、资讯,欢迎小伙伴儿们转发分享~
Power Pivot工坊
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)