PowerBI 不同日期区间的活动逐日对比分析
时间:2022-07-23
本文章向大家介绍PowerBI 不同日期区间的活动逐日对比分析,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
小伙伴说在运营中有很多促销活动,甚至包括双十一之类的。但每次活动的区间和长短都可能不同,希望可以对比不同日期区间的逐日对比活动细节。但在 PowerBI 中很难实现,是否可以实现呢。
今天我们就来看这个问题。
实现效果
对于这种有意义的问题,我们会提供尽量优质的解决方案的。如下:
用户选择两个活动各自的活动区间,可能是完全不同的,然后按照逐日对比每日的效果。
实现方法
这个问题其实并不复杂,首先我们先看一个更加简洁的表示,如下:
这个效果更加简洁而不改变问题的实质。这里就要考虑两个重要问题:
- 两个日期区间的选择如何提供?
- 如何和原始数据模型进行联立?
设计实现
我们知道一个数据模型里都会有一个日期表,而在这里场景中,必须至少需要两个日期表来提供两个日期区间的选择。问题是:
- 一个默认数据模型日期表可以做到吗?
- 那用两个日期表可以吗?
- 还是用三个日期表呢?
一个默认的日期表是无法在一个页面分别扮演两个角色的。
这里为了让这个设计更加独立,所以选择根本不去实现默认日期表,而是分别为此案例场景分别创建两个日期表,如下:
Calendar.Left =
SELECTCOLUMNS( 'Calendar' , "Date" , [Date] )
Calendar.Right =
SELECTCOLUMNS( 'Calendar' , "Date" , [Date] )
接着,我们用通用的 X 轴滑杆作为序号即可,如下:
Option.X = GENERATESERIES(0, 100, 1)
这在我们的万能初学者模板里已经内置。
接着我们将需要展示的所有内容,用 DAX 计算的方式给出即可。
先给出日期的计算,如下:
Activity.Left.Date =
VAR DateBeginOfPeriod = MIN( 'Calendar.Left'[Date] )
VAR DateEndOfPeriod = MAX( 'Calendar.Left'[Date] )
VAR Offset = SELECTEDVALUE( 'Option.X'[Option.X] )
VAR Result = DateBeginOfPeriod + Offset
RETURN IF( Result <= DateEndOfPeriod , Result )
非常简单。
再给出对应日期的值的计算,如下:
Activity.Left.Value =
CALCULATE( [Start:KPI] , TREATAS( { [Activity.Left.Date] } , 'Calendar'[Date] ) )
更简单。
用已经计算的日期,动态挂载回数据模型计算即可。
由于左右是完全对称的结果,类似给出右边的计算即可。
完毕。
总结
很多有意义的业务场景,通过数据模型的合理布局,以及计算逻辑的精巧设计,很快就可以得到不错的方法。
值得一提的是,这里默认将非侵入式设计作为了原则,两个日期表都是为了作图存在,所以独立创建。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法