博客: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. 全面系统讲解CSS工作应用+面试一步搞定

    [TOC] 一.课程介绍 二.HTML基础强化 html常见元素和理解 html常见元素分类 head区元素:(不会在页面上留下元素) * meta * title * style * link * ...

  2. 前端性能优化(JavaScript篇)

    正巧看到在送书,于是乎找了找自己博客上记录过的一些东西来及其无耻的蹭书了~~~ 小广告:更多内容可以看我的博客 优化循环 如果现在有个一个data[]数组,需要对其进行遍历,应当怎么做?最简单的代码是 ...

  3. 关于mysql使用utf8编码在cmd窗口无法添加中文数据的问题以及解决 方法二

    如果非要用cmd窗口的话,那么可以加这句话,set names gbk:

  4. spring-基于xml的aop开发-快速入门

    1.导入aop的相关坐标 <dependency> <groupId>org.springframework</groupId> <artifactId> ...

  5. 用户USER_HZ与内核HZ的值

    HZ和Jiffies系统定时器timer能够以可编程的方式设定频率,来中断cpu处理器.此频率即hz,为每秒的定时器节拍(tick)数, 对应着内核变量HZ.选择合适的HZ值需要权衡. tick为两个 ...

  6. switch 用法

    1.语法格式和规则 switch case 语句语法格式如下: switch(expression){ case value : //语句 break; //可选 case value : //语句 ...

  7. 挖矿病毒分析(centos7)

    因为我在工作的时候被各种挖矿病毒搞过几次,所以在这里整理下我遇到的病毒以及大神们的解决方案. 服务器中挖矿病毒后,最基本的一个特征就是CPU使用率瞬间飙升,此时可以通过top命令进行查看,确认是否有异 ...

  8. Codeforces Round #703 (Div. 2)__ B. Eastern Exhibition__ 纯纯的思维

    原题链接https://codeforces.com/contest/1486/problem/B 题目 解题思路 这是个思维题,  算是货仓选址的变式, 想要到达各个点距离最小,我们的目标可以化为先 ...

  9. python中的嵌套

    嵌套:将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套.既可以在列表中嵌套字典,也可以在字典中嵌套列表,甚至在字典中嵌套字典. 一.列表中嵌套字典 1)一般创建方式: student_ ...

  10. C# 11 的这个新特性,我愿称之最强!

    前言 在日常开发中我们经常会将JSON.XML.HTML.SQL.Regex等字符串拷贝粘贴到我们的代码中,而这些字符串往往包含很多的引号",我们就必须将所有引号逐个添加转义符\进行转义.这 ...