在我们做 Power BI 项目的时候,几乎都要和时间智能打交道的。我们常规的业务度量值写好了后,就面对要写各个时间维度的度量值了,而且时间表达的维度非常多,同比、环比、周累计、月累计、年累计,还有季度累计、半年度累计等等。
各个基本业务度量值对于时间维度来说都是一样的,一个基本业务的时间维度写好了还要写下一个时间维度的度量值,在这个环节上是费时费力。
时间对于所有都是公平的。我们总结了常见的 51 个时间状态(见下文),基本覆盖了所有业务场景;通过 Tabular Editor 一键生成所有的时间维度的度量值。
附件下载地址:https://jiaopengzi.com/2653.html
二、时间维度 1、时间维度说明 2、时间维度分类说明- DAY:指标分类按照所选日期计算的单日的分类。
- XTD:按照所选日期对应计算的累计的分类。
- B:base 的简写,按照基期分类。
- P:previous 的简写,按照 base 对应的上一期分类。
- Δ:大写的希腊字母:德尔塔(音),按照差异 base - previous 分类。
- %:百分号,按照百分比分类。
- D:day 的简写,按照天分类。
- W:week 的简写,按照周分类。
- M:month 的简写,按照月分类。
- Q:quarter 的简写,按照季度分类。
- H:half year 的简写,按照半年度分类。
- Y:year 的简写,按照年度分类。
1、首先是需要一张符合要求日期表,在上一期的文章中我们已经介绍(https://jiaopengzi.com/2635.html),这里就不在赘述,日期表会在本案例附件中。
日期表必须按照我们的要求来,时间智能函数依赖日期表,这很重要。
2、对需要建立时间维度的度量值提前打标,如下图:
3、使用我们提供的 C# 脚本(附件中),在 Tabular Editor 中一键生成所需要的时间智能度量值。
Tabular Editor 下载地址:https://jiaopengzi.com/tools
Tabular Editor 安装教程:https://jiaopengzi.com/video/video-102?rkvid=74
3、参数说明
-
digitsN:新建的度量值的小数位数,只能填写大于等于 0 的整数。
-
digitsP:新建的百分数度量值的小数位数,只能填写大于等于 0 的整数。
-
measureTableN:度量值所在的表的名称。
-
measureMark0:需要使用时间智能函数的标识,一般可以在度量名称后面加:"_D_",当然标识可以自定义。
-
folder0:批量建立的时间智能函数的度量值文件夹,由于度量值比较多需使用文件夹来管理。
-
uselist:当前度量值需要建立的索引,如有部分不需要刻意移除对应索引即可,如下:
// uselist 如下设置表示只需要新建上述 ID 从 0 到 5 的时间维度度量值。
var uselist = new List<int>
{
0,1,2,3,4,5
};
// uselist 如下设置表示只需要新建上述 ID 从 0 到 50 的时间维度度量值。
var uselist = new List<int>
{
0,1,2,3,4,5,6,7,8,9,10
,11,12,13,14,15,16,17,18,19,20
,21,22,23,24,25,26,27,28,29,30
,31,32,33,34,35,36,37,38,39,40
,41,42,43,44,45,46,47,48,49,50
};
四、总结
1、要想很好的操作时间维度的度量值来表达业务,那么就需要一张设计好日期表。
2、究其原因,维度表的建立对于业务表达很重要,也就是我们经常说的你要懂业务。
3、对 “重复” 度量值建立要多思考。
by 焦棚子