一:数据源

模拟数据为三款奶茶销量的日销售数据源,日期是23.8.24-23.8.31。A产品为连续7天,日环比下降,B产品为连续3天,日环比下降,C产品为连续2天,日环比下降。

二:建立基础度量值

首先,我们建立两个基础度量值,计算我们的产品销量和日环比。

产品销量 = CALCULATE(SUM('数据源'[销量]))
产品销量日环比 =
VAR T1 = CALCULATE([产品销量],DATEADD('日期表'[Date],-1,DAY))
RETURN DIVIDE([产品销量]-T1,T1)  

三:建立异常下降度量值

产品销量_是否最近N天持续下降 =
VAR N='参数'[参数_值] ///控制天数,可以是一个固定的值,也可以是一个字段参数,动态的值
VAR T1 =
SUMMARIZE(FILTER('日期表','日期表'[Date]>=MAX('日期表'[Date])-N&&'日期表'[Date]<=MAX('日期表'[Date])-1),'日期表'[Date])
VAR T2 =
ADDCOLUMNS(T1,"产品日环比",[产品销量日环比])
VAR T3= FILTER(T2,[产品销量日环比]<0)
RETURN IF(COUNTROWS(T3)=N,"连续下降")

 

四:异常下降代码解释

首先,VAR N 是一个数值,可以是一个具体的值,如果是3,那么就是检测是否为连续3天下降,如果是7,那么就是检测是否为连续7天下降。这里使用的是参数表的值,也就意味着可以让报表使用者,自行选择对应的下降指标去查看数据。

然后,VAR T1 是一个表,但是他只有一个日期列,日期列是根据数据源的最大日期,往前倒退N天。这里我们用powerbi的新建表去看看这行代码,返回的是什么表。如下所示,返回的是数据源表最大日期,往前倒退7天的一个日期表。

再然后,VAR T2 是在T1日期列的基础上,新增一列,列名是"产品日环比",值是我们前面计算的基础度量值[产品销量日环比]。现在我们T2有两列了,一列是日期,一列是销量日环比

再然后,  VAR T3 是在T2表的基础上,我们用FILTER把日环比小于0的行数抓出来,也就是我们把日环比小于0,下降的天数的行给筛选出来。

最后一步,就是收尾的一步了,既然我们已经把日环比小于0的行,找出来了。我们对他的行进行计数,再和我们前面的N去进行对比,如果和N相等就意味着所有的天数均在下降,符合我们RETURN的IF语句,就输出"连续下降",如果不符合连续下降,我们就不返回值。(这里我们思考一下,以B产品为例,如果N等于3,而实际B产品日环比小于0的只有2天,所以这里返回的值就是2,那么2不等于3,所以是不会返回值的,反之如果N=2那么,2=2就会正常返回”连续下降”)

这样我们就可以灵活的查看异常指标了。

我们来看一下简单的结果展示。准确的抓到了连续2天,连续3天,以及连续7天下降的产品。

如果对前面讲的东西不太理解,可能是咱们基础比较弱,可以补充补充基础知识再来看。

有了这个模块的知识,我们就可以根据自己的思路,去构建异常指标的看板了,有了思路,剩下的就请交给DAX吧。

ENJOY DAX -SIMONE

POWERBI_1分钟学会_连续上升或下降指标监控的更多相关文章

  1. PHP学习过程_Symfony_(3)_整理_十分钟学会Symfony

    这篇文章主要介绍了Symfony学习十分钟入门教程,详细介绍了Symfony的安装配置,项目初始化,建立Bundle,设计实体,添加约束,增删改查等基本操作技巧,需要的朋友可以参考下 (此文章已被多人 ...

  2. 【grunt第二弹】30分钟学会使用grunt打包前端代码(02)

    前言 上一篇博客,我们简单的介绍了grunt的使用,一些基础点没能覆盖,我们今天有必要看看一些基础知识 [grunt第一弹]30分钟学会使用grunt打包前端代码 配置任务/grunt.initCon ...

  3. 5分钟学会使用Less预编译器

    5分钟学会使用Less预编译器 Less是什么? LESS CSS是一种动态样式语言,属于CSS预处理语言的一种,它使用类似CSS的语法为CSS赋予了动态语言的特性,如变量.继承.运算.函数等,更方便 ...

  4. 【公众号系列】两分钟学会SAP F1技巧

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[公众号系列]两分钟学会SAP F1技巧   写 ...

  5. 10分钟学会搭建Android开发环境 Eclipse: The import android.support cannot be resolved

    10分钟学会搭建Android开发环境_隋雨辰 http://v.youku.com/v_show/id_XNTE2OTI5Njg0.html?from=s1.8-1-1.2 The import a ...

  6. 《量化投资:以MATLAB为工具》连载(2)基础篇-N分钟学会MATLAB(中)

    http://www.matlabsky.com/thread-43937-1-1.html   <量化投资:以MATLAB为工具>连载(3)基础篇-N分钟学会MATLAB(下)     ...

  7. 《量化投资:以MATLAB为工具》连载(1)基础篇-N分钟学会MATLAB(上)

    http://blog.sina.com.cn/s/blog_4cf8aad30102uylf.html <量化投资:以MATLAB为工具>连载(1)基础篇-N分钟学会MATLAB(上) ...

  8. [分享] 史上最简单的封装教程,五分钟学会封装系统(以封装Windows 7为例)

    [分享] 史上最简单的封装教程,五分钟学会封装系统(以封装Windows 7为例) 踏雁寻花 发表于 2015-8-23 23:31:28 https://www.itsk.com/thread-35 ...

  9. 50分钟学会Laravel 50个小技巧

    50分钟学会Laravel 50个小技巧 时间 2015-12-09 17:13:45  Yuansir-web菜鸟 原文  http://www.yuansir-web.com/2015/12/09 ...

  10. 10分钟学会Linux

    10分钟学会Linux有点夸张,可是能够让一个新手初步熟悉Linux中最重要最主要的知识,本文翻译的英文网页在众多Linux入门学习的资料中还是很不错的. 英文地址:http://freeengine ...

随机推荐

  1. Swift4 入门到精通(第二章基本数据类型与量值)

    第二章 量值和基本数据类型 Swift 支持的基本数据类型, 整型,浮点型,布尔型,元组,可选类型. 学习的目标: 常量与变量的意义.声明.命名规范.类型 数据进制与计算机存储原理 整型数据.浮点型数 ...

  2. instance norm

    与Batch Norm加快计算收敛不同, IN是在[1]中提出的,目的是提高style transfer的表现. 计算如下: \[IN(x)=\gamma (\frac{x-\mu(x)}{\sigm ...

  3. [ARM 汇编]高级部分—ARM汇编编程实战—3.3.1 嵌入式系统的基本概念

    嵌入式系统是一种特殊的计算机系统,通常用于执行特定的任务.它通常包含一个或多个微处理器.存储器和外围设备.与通用计算机系统相比,嵌入式系统具有体积小.功耗低.成本低和实时性强等特点.在这一部分,我们将 ...

  4. 【题解】ABC293E Sol

    题目大意 给定整数 \(A,X,M\),求 \(\sum\limits^{X-1}_{i=0} A^i\) 对 \(M\) 取模的值. 数据范围:\(1 \le A,M \le 10^9\),\(1 ...

  5. Hexo、Typecho博客添加旅行足迹网页

    本文部署的足迹地图,地址如下: http://www.aomanhao.top/index.php/archives/183/ jVectorMap JVectorMap 是一个优秀的.兼容性强的 j ...

  6. 面试官:一个 SpringBoot 项目能处理多少请求?(小心有坑)

    你好呀,我是歪歪. 这篇文章带大家盘一个读者遇到的面试题哈. 根据读者转述,面试官的原问题就是:一个 SpringBoot 项目能同时处理多少请求? 不知道你听到这个问题之后的第一反应是什么. 我大概 ...

  7. 微服务探索之路06篇k8s配置文件Yaml部署Redis使用Helm部署MongoDB和kafka

    1 安装Redis 1.1创建配置文件redis.conf 切换到自己的目录下如本文是放在/home/ubuntu下 cd /home/ubuntu vim redis.conf bind 0.0.0 ...

  8. 如何在 Windows Server 2022 阿里云服务器上搭建自己的 MQTT 服务器之二Mosquitto服务器

    一.介绍 最近几天都在搭建MQTT服务器,几天前搭建好了一个 Apache-Apollo的 MQTT 服务器,当我们在管理我们的主题的时候,发现主题的名称的斜杠(/)变成了点号(.),正好我在调试程序 ...

  9. NativeBuferring&mdash;&mdash;一种零分配的数据类型[上篇]

    之前一个项目涉及到针对海量(千万级)实时变化数据的计算,由于对性能要求非常高,我们不得不将参与计算的数据存放到内存中,并通过检测数据存储的变化实时更新内存的数据.存量的数据几乎耗用了上百G的内存,再加 ...

  10. 大二暑期实习记录(一):处理组件绑定数据错误(数组解构,map()方法)

    好家伙,搬砖   今天在做组件迁移(从一个旧平台迁移到一个新平台)的时候,发现了一些小小的问题: 1.错误描述: 在穿梭框组件中,使用"节点配置"方法添加数据的时候,左测数据选择框 ...