博客: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

二、数据源

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


新建hour列,用于小时维度建立关系,在pq中处理会更好。

实际项目中是用日期表管理,为了方便起见就新建date列用于切片器

关系建立

三、上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小时维度:累计、同比、环比相关的更多相关文章

  1. 24小时学通Linux内核--内核探索工具类

    寒假闲下来了,可以尽情的做自己喜欢的事情,专心待在实验室里燥起来了,因为大二的时候接触过Linux,只是关于内核方面确实是不好懂,所以十天的时间里还是希望能够补充一下Linux内核相关知识,接下来继续 ...

  2. 反恐24小时第一季/全集24 Live Another Day迅雷下载

    反恐24小时 第一至九季 24 Season 1-9 (2001-2014) 本季看点:<24小时>第8季将在拥有美国的象征自由女神像的纽约开始,在新的一天,CTU重新开张,新的领导为从M ...

  3. 再谈Cognos利用FM模型来做同比环比

    很早之前已经讲过 <Cognos利用DMR模型开发同比环比>这篇文章里说的是不利用过滤器,而是采用 except (lastPeriods (-9000,[订单数据分析].[日期维度].[ ...

  4. 用python+selenium抓取微博24小时热门话题的前15个并保存到txt中

    抓取微博24小时热门话题的前15个,抓取的内容请保存至txt文件中,需要抓取排行.话题和阅读数 #coding=utf-8 from selenium import webdriver import ...

  5. #CSDN刷票门# 有没有人在恶意刷票?CSDN请告诉我!用24小时监控数据说话!

    特别声明: 此次并非针对其他参与2013中国十大优秀开源项目的同行,体系有漏洞要谴责的是制定规则并从中获益但不作为的权贵,草根们制定不了规则但可发现和利用漏洞,这是程序员应有反叛精神没错.但被作为道具 ...

  6. SimpleDateFormat 12小时制以及24小时制的写法

    有些代码按了复制键没有效果,但是其实已经复制到剪贴板上面了,大家请注意哦! 我的文章有时会稍有修改,转载请注明出处哦! 原文地址:SimpleDateFormat 12小时制以及24小时制的写法 去代 ...

  7. ios 在中国地区,24小时时间格式 系统设定下 获得12小时制时间的方法

    如题,在中国地区,24小时时间格式 系统设定下,如果单单使用 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 之后,无论用hh ...

  8. C# 时间现实问题(12小时制与24小时制)

    最近在修改项目中遇到时间问题,12小时制与24小时制的问题,想再次跟各位同仁提个醒. yyyy-MM-dd HH:mm:ss------大写的HH为24小时制 yyyy-MM-dd hh:mm:ss- ...

  9. 清除Cookie、获取指定Cookie的值、添加一个Cookie(24小时过期)、添加一个Cookie

    MXS&Vincene  ─╄OvЁ  &0000007 ─╄OvЁ  MXS&Vincene MXS&Vincene  ─╄OvЁ:今天很残酷,明天更残酷,后天很美好 ...

随机推荐

  1. (stm32f103学习总结)—GPIO结构

    一.GPIO基本结构 二.GPIO工作模式 输入模式 输入浮空 输入上拉 输入下拉 模拟输入 输出模式 开漏输出 开漏复用功能 推挽式输出 推挽式复用功能 库函数中所对应的代码 1 typedef e ...

  2. Altium Designer 设置多层方法及各层介绍

    因为PCB板子的层分类有很多,所以通过帮助大家能更好地理解PCB的结构,所以把我所知道的跟大家分享一下 1.PCB各层简介 1. Top Layer顶层布线层(顶层的走线) 2. Bottom Lay ...

  3. STM32 HAL库与标准库的区别_浅谈句柄、MSP函数、Callback函数

    最近笔者开始学习STM32的HAL库,由于以前一直用标准库进行开发,于是发现了HAL库几点好玩的地方,在此分享. 1.句柄在STM32的标准库中,假设我们要初始化一个外设(这里以USART为例)我们首 ...

  4. H5复制粘贴双端适配的解决方案(终极版)

    前言 最终适配所有机型的方案基于clipboardjs官网https://clipboardjs.com/ 这个库由几个不同的CDN提供商托管.选择你最喜欢的:) jsDelivr <scrip ...

  5. MyEclipse如何刷新项目

    第一种:选中项目,点右键Refresh即可, 第二种:选择project->clean,选中所要编译得项目,点ok即可

  6. response.setHeader("Cache-Control","no-cache");的作用

      1. response.setHeader("Cache-Control","no-cache"); This is used to prevent the ...

  7. Supervisor学习笔记

    请点击我 >  supervisor笔记

  8. js知识梳理6:关于函数的要点梳理(2)(作用域链和闭包)

    写在前面 注:这个系列是本人对js知识的一些梳理,其中不少内容来自书籍:Javascript高级程序设计第三版和JavaScript权威指南第六版,感谢它们的作者和译者.有发现什么问题的,欢迎留言指出 ...

  9. ubuntu创建pycharm快捷方式或不显示图标

    ubuntu创建pycharm快捷方式或不显示图标 删除之前残留的pycharm快捷方式文件. sudo rm /usr/share/applications/jetbrains-pycahrm.de ...

  10. redis5.0.0集群搭建【实战经历】

    redis集群搭建 作者:陈土锋 时间:2020年6月2日 目录 一.环境介绍... 1 1.机器准备... 1 2.关闭防护墙和selinux. 1 3.时间同步... 1 二.Redis Clus ...