111_Power Pivot 24小时维度:累计、同比、环比相关
博客:www.jiaopengzi.com
一、背景
今天有朋友讨论怎么做每天24小时维度的工作量计算(运营类企业,每天24小时都在运营)需求如下:
1、从0时到23时每小时工作量;
2、从0时到23时每小时工作量占比全天工作量的百分比;
3、从0时到23时每小时累计工作量;
4、从0时到23时每小时累计工作量占比全天工作量的百分比;
5、从0时到23时每小时的环比;
6、从0时到23时昨日每小时工作量及同比。
动态结果(只有功能,美化不会)
由于demo中就11月7日及8日两天的数据,所以切片11月7日时,昨日total,同比%,0时环比%为空。
[video width="1340" height="896" mp4="https://jiaopengzi.com/wp-content/uploads/2020/03/111_1.mp4"][/video]
二、数据源

为了方便写demo,就不用加入日期表了,数据量大的时候还是日期表管理会更好。


关系建立

三、上DAX
1、total
total:=SUM('data'[value])
2、占比%:
从0时到23时每小时工作量占比全天工作量的百分比
占比%:=DIVIDE('data'[total],CALCULATE('data'[total],ALL(h[hour])))
3、htd:
从0时到23时每小时累计工作量
htd:=
VAR HMAX =
MAX ( 'h'[hour] )
VAR HMIN =
CALCULATE ( MIN ( 'h'[hour] ), ALL ( h[hour] ) )
VAR T =
CALCULATETABLE ( VALUES ( h[hour] ), 'h'[hour] >= HMIN && 'h'[hour] <= HMAX )
RETURN
CALCULATE ( 'data'[total], T )
4、累计%:
从0时到23时每小时累计工作量占比全天工作量的百分比
累计%:=DIVIDE('data'[htd],CALCULATE('data'[total],ALL(h[hour])))
5、环比%:
从0时到23时每小时的环比(注意环比中,0时的上一小时是前一天的23时【注意黄色单元格】)
环比%:=
VAR HMAX =
MAX ( 'h'[hour] )
VAR PH =
IF (
HMAX = 0,
CALCULATE ( 'data'[total], 'h'[hour] = 23, DATEADD ( 'data'[date], -1, DAY ) ),
CALCULATE ( 'data'[total], 'h'[hour] = HMAX - 1 )
)
RETURN
IF ( ISFILTERED ( h[hour] ), DIVIDE ( 'data'[total] - PH, PH ) )
6、昨日total:
从0时到23时昨日每小时工作量
昨日total:=CALCULATE('data'[total],DATEADD('data'[date],-1,DAY))
7、同比%:
从0时到23时昨日每小时工作量的同比
同比%:=
VAR HMAX =
MAX ( 'h'[hour] )
VAR YH =
IF (
ISFILTERED ( 'h'[hour] ),
CALCULATE ( 'data'[total], 'h'[hour] = HMAX, DATEADD ( 'data'[date], -1, DAY ) ),
'data'[昨日total]
)
RETURN
DIVIDE ( 'data'[total] - YH, YH )
四、总结
1、建立适当的模型及关系;
2、构建需求的上下文;
3、特殊维度的度量值,特殊处理(如0时的环比)
by 焦棚子
111_Power Pivot 24小时维度:累计、同比、环比相关的更多相关文章
- 24小时学通Linux内核--内核探索工具类
寒假闲下来了,可以尽情的做自己喜欢的事情,专心待在实验室里燥起来了,因为大二的时候接触过Linux,只是关于内核方面确实是不好懂,所以十天的时间里还是希望能够补充一下Linux内核相关知识,接下来继续 ...
- 反恐24小时第一季/全集24 Live Another Day迅雷下载
反恐24小时 第一至九季 24 Season 1-9 (2001-2014) 本季看点:<24小时>第8季将在拥有美国的象征自由女神像的纽约开始,在新的一天,CTU重新开张,新的领导为从M ...
- 再谈Cognos利用FM模型来做同比环比
很早之前已经讲过 <Cognos利用DMR模型开发同比环比>这篇文章里说的是不利用过滤器,而是采用 except (lastPeriods (-9000,[订单数据分析].[日期维度].[ ...
- 用python+selenium抓取微博24小时热门话题的前15个并保存到txt中
抓取微博24小时热门话题的前15个,抓取的内容请保存至txt文件中,需要抓取排行.话题和阅读数 #coding=utf-8 from selenium import webdriver import ...
- #CSDN刷票门# 有没有人在恶意刷票?CSDN请告诉我!用24小时监控数据说话!
特别声明: 此次并非针对其他参与2013中国十大优秀开源项目的同行,体系有漏洞要谴责的是制定规则并从中获益但不作为的权贵,草根们制定不了规则但可发现和利用漏洞,这是程序员应有反叛精神没错.但被作为道具 ...
- SimpleDateFormat 12小时制以及24小时制的写法
有些代码按了复制键没有效果,但是其实已经复制到剪贴板上面了,大家请注意哦! 我的文章有时会稍有修改,转载请注明出处哦! 原文地址:SimpleDateFormat 12小时制以及24小时制的写法 去代 ...
- ios 在中国地区,24小时时间格式 系统设定下 获得12小时制时间的方法
如题,在中国地区,24小时时间格式 系统设定下,如果单单使用 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 之后,无论用hh ...
- C# 时间现实问题(12小时制与24小时制)
最近在修改项目中遇到时间问题,12小时制与24小时制的问题,想再次跟各位同仁提个醒. yyyy-MM-dd HH:mm:ss------大写的HH为24小时制 yyyy-MM-dd hh:mm:ss- ...
- 清除Cookie、获取指定Cookie的值、添加一个Cookie(24小时过期)、添加一个Cookie
MXS&Vincene ─╄OvЁ &0000007 ─╄OvЁ MXS&Vincene MXS&Vincene ─╄OvЁ:今天很残酷,明天更残酷,后天很美好 ...
随机推荐
- C语言形参和实参的区别(非常详细)
如果把函数比喻成一台机器,那么参数就是原材料,返回值就是最终产品:从一定程度上讲,函数的作用就是根据不同的参数产生不同的返回值.这一节我们先来讲解C语言函数的参数,下一节再讲解C语言函数的返回值.C语 ...
- Cloud Design Patterns & Architecture Styles
Cloud Design Patterns Categories Data Management Design and Implementation Messaging Patterns Ambass ...
- 18个基于 HTML5 Canvas 开发的图表库
如今,HTML5 可谓如众星捧月一般,受到许多业内巨头的青睐.很多Web开发者也尝试着用 HTML 5 来制作各种各样的富 Web 应用.HTML 5 规范引进了很多新特性,其中之一就是 Canvas ...
- 使用css完成引导用户按照流程完成任务的进度导航条
首先先看设计稿 图中的12345便是主角进度条. 分析需求如下:线的长度不固定,适应移动端和pc端点平均地分布在一条线上点的个数不固定,可能会改变激活的点之间线的颜色是绿色的 两种种方式 百分比宽度切 ...
- Vue-cli的打包初体验
前言:我司是一个教育公司,最近要做一个入学诊断的项目,领导让我开始搭建一套基于vue的H5的开发环境.在网上搜集很多的适配方案,最终还是选定flexible方案.选择它的原因很简单: 它的github ...
- AS的不同布局
AndroidStudio里面支持的布局有挺多种的,但是最最重要的是RelativeLayout(相对布局)和LinearLayout(线性布局),熟练掌握这两种布局也非常够用了,当然还有FrameL ...
- 【Android开发】控件外边框自定义
1.在drawable里面新建自定义的资源文件shape <?xml version="1.0" encoding="utf-8"?> <sh ...
- 【MarkDown】使用
1. 插入代码 在代码前后加上三个点样式的标识符: ``` 效果: 我是代码 1-1 换行 &符号加上 "ensp;" 2. 标题样式定制 # 一级标题 ## 二级标题 ...
- java中如何按一定的格式输出时间, 必须给出例子
题目2: 按一定的格式输出时间 import java.util.*;import java.text.SimpleDateFormat;public class Test { public s ...
- Linux环境下Eclipse中快捷键不起作用
在window->Preferences->general->keys中, 找到 content asist 修改下边值 Binding 改成 Alt+/ When 改为 Editi ...