![b1e363a7f5353599658affa89bbd7563.png](https://img-blog.csdnimg.cn/img_convert/b1e363a7f5353599658affa89bbd7563.png)
![74e79b7bbd5c705bab4fcc34c9d42c4f.png](https://img-blog.csdnimg.cn/img_convert/74e79b7bbd5c705bab4fcc34c9d42c4f.png)
本文使用Power BI模板描述DAX中的引用Date表,可以在Analysis Services模型中使用相同的技术。在Dax Date Template页面下载最新版本的模板。
为什么引用Date表
Power BI中提供的自动日期/时间功能存在以下几个限制:
- 它有一组固定的行。
- 它没有处理财政年度。
- 它不包括周。
- 它不能在同一数据模型中的不同表之间共享。
通常,必须禁用该功能并创建自定义日期表。此任务重复且耗时。从包含功能齐全的Date表的Power BI模板开始创建新的Power BI模型使用户免于编写所需的DAX表达式 - 以及设置必要的属性以定义显示格式,层次结构和所需列的可见性。报告和计算。
什么是Power BI模板文件(PBIT)
扩展名为.PBIT的文件是Power BI模板文件,该文件不包含数据,并在打开时导入/生成数据。任何Power BI文件都可以保存为模板文件。数据模型中包含的所有表都保存为空表。它们在打开模板时填充,从数据源读取数据。
Power BI模板文件的一个常见用途是分发可以使用特定参数连接到数据源的标准数据模型,从而更改内存中加载的数据的过滤器。对于引用日期表,Power BI模板包含在打开文件时填充的计算表。这样,模板文件较小,可以用作“空”文件在Power BI中创建新的数据模型 - 从标准Date表开始,该表将连接到包含日期列的其他表。
![08a65e099174410634c3a99c2c3a0133.png](https://img-blog.csdnimg.cn/img_convert/08a65e099174410634c3a99c2c3a0133.png)
如何使用引用Date表模板
打开“Date template.pbit”文件以创建新的Power BI项目。该模型包含一个名为Date的计算表。日期包含由两个配置参数(FirstYear和LastYear)定义的年份范围内存在的所有日期。
![e446b109f75db452826c7634c3520d42.png](https://img-blog.csdnimg.cn/img_convert/e446b109f75db452826c7634c3520d42.png)
计算表的初始部分包含几个控制Date表生成方式的参数。这些列分为几个部分:
基准日期列
- 包括基本信息,如日期,星期几,月中的某天
太阳能日历(前缀日历)
- 标准月历1月至12月的列
财政月度日历(前缀财政)
- 财务月度(公历)日历的列,其中会计年度从非月份的月份的第一天开始(参见参数)
财政周报(前缀FW)
- 财务周历的列,其中年份从特定日期开始,遵循其中一个受支持的规则(请参阅参数)
- 支持ISO,4-4-5,4-5-4,5-4-4周历
假期和工作日
假期和工作日的列,根据参数中定义的国家/地区的假期
列选择
DAX表达式的最后一部分是SELECTCOLUMN语句,其中包含模板中使用的所有列。可以通过从SELECTCOLUMNS语句中删除或注释不需要的列来自定义Date表。从DAX计算表中删除的列也将从Date表中删除,同时删除相关的层次结构。 建议仅在最后一步中删除列。已注释然后取消注释的列将显示在Date表中,但已丢失先前应用的任何其他设置(层次结构,可见性,格式)。
![ab88b753113fed43feaa01d84bdad825.png](https://img-blog.csdnimg.cn/img_convert/ab88b753113fed43feaa01d84bdad825.png)
Power BI在其编辑器中显示有限数量的行。使用DAX Editor之类的工具修改Date表的DAX表达式。使用复制和粘贴在Power BI和外部编辑器之间移动代码。
![1467fea46ef5e74da83cbf8a219156c3.png](https://img-blog.csdnimg.cn/img_convert/1467fea46ef5e74da83cbf8a219156c3.png)
列参考
用于列名的命名约定如下:
- 带空格的完整名称(例如“Day of Month”)是可见列。如果该列被隐藏,则通过层次结构级别可见。
- Pascal大小写中的名称(例如“WeekDayNumber”)是用于内部计算的隐藏列,或用于对其他列进行排序。
基准日期列
使用2018年3月21日作为参考获得和描述以下实施例。
- 日期:2008年3月21日(日期) - 这是日期数据类型中的日期
- DateKey:20180321 (整数) - 整数格式的日期YYYYMMDD
- 月份日期:21 (整数)- 月中的某天
- WeekDayNumber:3 (整数)- 数字格式的星期几,其中1是一周的第一天(取决于配置参数)
- 周日:星期二&#x