Power Pivot 时间序列处理

Posted Excel为工具的数据分析

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Power Pivot 时间序列处理相关的知识,希望对你有一定的参考价值。

Excel Power Pivot在做时间序列数据处理时,提供了更多的时间智能函数 (DAX):

        这些时间智能函数通过使您能够使用时间段(包括日、月、季度和年)对数据进行操作,然后生成和比较针对这些时段的计算,支持商业智能分析的需要。

        在使用这些函数之前要做些准备工作:

第一步:建立日历表

第二步:业务数据建立外键,与日历表链接

第三步:在Power Pivot 或是Power BI Desktop中创建新度量值


第一步:建立日历表

Power Pivot 时间序列处理

这个日历表有现成的模板,它是一份独立的含有每一天的一份日历。

他和你的业务数据中的日期列没有关系,就是单纯的日历

当然为了能使这个日历与业务数据中的日期关联起来,就要通过DateKey来建立链接。

1、Full date:是2015年1月1日至2017年12月31日的序列表

2、DateKey:=[@Year]*10000+[@MonthNumber]*100+[@Day]

3、Year:=YEAR([@FullDate])

4、Quarter:="Q"&ROUNDUP([@MonthNumber]/3,0)

5、Month:=TEXT([@FullDate],"mmmm")

6、MonthNumber:=MONTH([@FullDate])

7、Day:=DAY([@FullDate])

8、WeekDay:=TEXT([@FullDate],"dddd")

上面是各个字段的公式,当然有很多种方法和不同的公式可以做出这个日历表

把这个表链接到Power Pivot,并标记为时间表

Power Pivot 时间序列处理

这一步千万不能忘记,只有标记为时间表

上面的时间只能函数才能生效。

第二步:业务数据建立外键,与日历表链接

Power Pivot 时间序列处理

用时间列生成DateKey

要注意的是数量级别搞错了。

我就因为这个key走了弯路:

第一次:做日历,年*1000,结果总是提示Date Key不唯一,

第二次:日历改好了,业务数据还是*1000,怎么也计算不出结果。

将业务数据表也链接到Power Pivot并与日历表建立关系

Power Pivot 时间序列处理

第三步:建立度量值,来测试函数

Power Pivot 时间序列处理

这里的YTD/QTD/MTD:指的是年/季/月,截止到某一天的数据。

PY:去年同期数据

YOY:与去年同期数据差额

YOYP:同比

YTD/QTD/MTD:可以用下面三个函数来计算

TOTALMTD 函数

TOTALQTD 函数

TOTALYTD 函数

也可以用CALCULATE+

DATESMTD 函数

DATESQTD 函数

DATESYTD 函数

来实现。

TOTALYTD 函数:

Power Pivot 时间序列处理

CALCULATE+DATESYTD 函数:

Power Pivot 时间序列处理

PY:

Power Pivot 时间序列处理

YOY:

YOYP:

好了以上是基本的几个函数的测试。

以上是关于Power Pivot 时间序列处理的主要内容,如果未能解决你的问题,请参考以下文章

Power BI-Power Pivot-客户最后下单时间

POWER PIVOT 进阶篇

为啥使用 Power Pivot 在 Excel 中删除数据模型?

无法将 Power Query 的文件错误加载到 Power Pivot 中……不是程序员,但之前这样做没有问题

计算 Power Pivot 模型中总计的百分比

SQL Server 2014 上的表格模式和 Power Pivot 模式有啥区别?