Power BI 中 “标记为日期表” 的用法

用过Power BI的小伙伴都知道,我们日常的分析工作中,基本上所有的业务都会涉及到日期维度的逻辑。

在模型关系中,日期表和事实表的字段不匹配的话,我们的计算就会发生错误。

所以今天小编为大家分享Power BI中“标记为日期表”的用法。

今天的案例是一个超市数据模型:

file

销售订单表与日期表的关系是基于发货日期序 和日期序 建立。(两列都是整数格式)
file

首先准备基本度量值

SalesAmount =
SUMX (
'销售订单',
'销售订单'[销售额]
)

新建一个矩阵:
file

现在我们想知道每个产品类别去年的销售额情况,并算出相对于去年的同比增长率,度量值如下:

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 % 拖到值位置后,效果如下:

file

发现这两个度量值并没有计算出来,是什么原因导致的呢?

为了找出原因,我们把日期表执行“标记为日期表”操作。

file

这时再看报表,度量值正确计算了:

file

以上事实表和日期表的关系,是基于两表中数值型格式的列作关联,这时我们创建的度量值不能正常参与计算,报表显示错误。我们把日期表“标记为日期表”后,度量值就可以正常计算了。

所以,当日期表和事实表的关系,不是基于日期格式的列所创建,而是基于其他格式的列所创建的时候,我们需要把日期表执行“标记为日期表”操作。

那我们把两表间的关系建立在两个日期格式的列的基础上,会是什么效果呢?

验证这个效果前,我们先取消一下标记为日期表。我们把日期表和销售订单表的关系调整为:基于发货日期日期列(都是日期格式)建立表间关系。

file

发现度量值也可以正常计算:

file

而且,如果把日期表执行“标记为日期表”,这个结果也是不变的。这里大家可以自行验证一下。

小编想说,日常建模中,将日期表“标记为日期表”不是必须的,但如果不是基于日期列建立表间关系,那必须执行“标记为日期表”操作才可以正确计算。而标记为日期表,则可以简化很多关于时间序列的运算。

  • PowerPivot工坊原创文章,转载请注明出处!

    如果您想深入学习微软Power BI,欢迎登录网易云课堂试听学习我们的“从Excel到Power BI数据分析可视化”系列课程。或者关注我们的公众号(PowerPivot工坊)后猛戳”在线学习”。


长按下方二维码关注“Power Pivot工坊”获取更多微软Power BI、PowerPivot相关文章、资讯,欢迎小伙伴儿们转发分享~

Power Pivot工坊