博客:www.jiaopengzi.com

焦棚子的文章目录

请点击下载附件

一、背景

这两天有朋友在交流,dax中使用时间智能函数写日环比,一个 dateadd 就可以了。但是有些业务不是每天都连续发生的,比如股票,周末就没数据,要环比上一个日期就不太好使了。诸如此类业务不连续的业务如何写日环比呢?

二、数据源

需求:

计算: test表中每天value与上一日期的变化百分比;

说明: 由于日期是非连续, 有空值;

例如: 2019/6/10需要取2019/6/6号的值做除法运算。

感谢Q友 AlbertYc 提供素材。

三、DAX

1、基础度量total

total = SUM(Test[Value]) 

2、过程度量previous_date,不连续日期的前一天,n可以控制前n天,实际操作不用写,案例演示需求写一下。

previous_date =
//计算不连续日期的前n天date
var n=1
var date1=max('Test'[Date])
var date2=filter(all('Test'[Date]),'Test'[Date]<date1)
var date3=topn(n,date2,'Test'[Date],DESC)
return
date3

3、过程度量previous_date(同上2)

previous_total =
//计算不连续日期的前n天的值
var n=1
var date1=max('Test'[Date])
var date2=filter(all('Test'[Date]),'Test'[Date]<date1)
var date3=topn(n,date2,'Test'[Date],DESC)
var pt=calculate('calendar'[total],'calendar'[Date]=date3)
return
pt

4、最终需求日环比度量previous_dod

previous_dod =
//计算不连续日期的前n天占比
var n=1
var date1=max('Test'[Date])
var date2=filter(all('Test'[Date]),'Test'[Date]<date1)
var date3=topn(n,date2,'Test'[Date],DESC)
var pt=calculate('calendar'[total],'calendar'[Date]=date3)
return
if(pt=BLANK(),BLANK(),divide('calendar'[total],pt)-1)

5、结果图

四、总结

1、世上本无时间智能函数,大家用多了特定需求才有了时间智能函数(笔者自娱,该用还得用);

2、万变不离其宗的业务需求转换为DAX上下文,有什么需求就构建什么上下文;

3、本案例中主要利用 TOPN ,虽然日期不连续,但是可排序。

by焦棚子

焦棚子的文章目录

122_Power Pivot&Power BI不连续日期的日环比的更多相关文章

  1. 数据可视化之powerBI基础(十三)熟练使用Power BI的日期切片器

    https://zhuanlan.zhihu.com/p/64416522 交互式设计可以让用户使用的过程中更具参与感,在PowerBI中经常用到的交互方式就是切片器,利用它可以从不同维度查看数据,切 ...

  2. 123_Power Pivot&Power BI DAX函数说明速查

    博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 说明 1.基于DAX Studio 2.9.2版本导出整理: 2.DAX Studio网站,及时更新下载,DAX学习利器: ...

  3. 129_Power Pivot&Power BI DAX不同维度动态展示&动态坐标轴

    博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 某天在和那还是叫我大铁吧 交流关于季度&月度同时展示的问题,感概中国式报表真的需求很微妙. 下面来看看到 ...

  4. 127_Power Pivot&Power BI DAX计算订单商品在库时间(延伸订单仓储费用)

    博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 前面已经写过一个先进先出的库龄案例,在业务发生又有这样一个需求:先进先出前提,需要按照订单计算每个商品在库时间, ...

  5. 124_Power Pivot&Power BI DAX优化计算最大连续次数

    博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 最大连续次数或者是最大连续子序列问题,在DAX中如何快速计算呢? 思路 1.N-1:按照INDEX错位 2.ST ...

  6. PowerBI开发 第十五篇:Power BI的行级安全

    Power BI支持行级安全(Row-Level Security,RLS)的权限控制,用于限制用户对Dashboard.报表和DataSet的访问.用户浏览的报表是相同的,但是看到的数据却是不同的. ...

  7. 一起学微软Power BI系列-使用技巧(5)自定义PowerBI时间日期表

    1.日期函数表作用 经常使用Excel或者PowerBI,Power Pivot做报表,时间日期是一个重要的纬度,加上做一些钻取,时间日期函数表不可避免.所以今天就给大家分享一个自定义的做日期表的方法 ...

  8. DAX和Power BI中的参考日期表

    本文使用Power BI模板描述DAX中的引用Date表,可以在Analysis Services模型中使用相同的技术.在Dax Date Template页面下载最新版本的模板. 为什么引用Date ...

  9. 数据可视化之DAX篇(一)Power BI时间智能函数如何处理2月29日的?

    https://zhuanlan.zhihu.com/p/109964336 ​今年是闰年,有星友问我,在Power BI中,2月29日的上年同期是怎么计算的? 这是个好问题,正好梳理一下,Power ...

随机推荐

  1. CSS详细解读定位

    一 前言 CSS定位是CSS布局只能够重要的一环.本篇文章带你解读定位属性,可以让你更加深入的理解定位带来的一些特性,熟练使用CSS布局. 二 正文 1.文档流布局的概念 将窗体自上而下分成一行行, ...

  2. 移动端比1px还小的border

    巧用border 在移动端 经常出现border,细边框但有的时候 产品大大1px甚至乎会觉得不够细那么要如何写出比1px还要小的border下面是代码 希望对大家有所帮助 .thinner-bord ...

  3. web前端教程《每日一题》(1-99)完结

    第1期(2016年4月6日): (1)js中关闭当前窗口的方法是:window.close(); 第2期(2016年4月7日): (1)js中使字符串中的字符变为小写的方法是:toLowerCase方 ...

  4. Vue小说阅读器(仿追书神器)

    一个vue阅读器项目,目前已升级到2.0,阅读器支持横向分页并滑动翻页(没有动画,需要动画的可以自己设置,增加transitionDuration即可) 技术栈 vue全家桶+mint-ui gith ...

  5. Unity中让Update中的方法执行一次

    Unity中让Update中的方法执行一次 Unity中,很多时候,代码需要放在Update中时刻监测状态,一旦状态符合,又只需要代码执行一次:其实可以通过设置控制量的方式,让代码只执行一次:方法:设 ...

  6. 【uniapp 开发】uni-app 技术点的链接记录

    优雅的H5下拉刷新.零依赖,高性能,多主题,易拓展 https://ask.dcloud.net.cn/article/12772 图像(头像)选择,截取,压缩,上传的分享 https://ask.d ...

  7. 拼写检查-c++

    [问题描述] 作为一个新的拼写检查程序开发团队的成员,您将编写一个模块,用已知的所有形式正确的词典来检查给定单词的正确性.        如果字典中没有这个词,那么可以用下列操作中的一个来替换正确的单 ...

  8. python的for循环基本用法

    for循环 for循环能做到的事情 while循环都可以做到 但是for循环语法更加简洁 并且在循环取值问题上更加方便 name_list = ['jason', 'tony', 'kevin', ' ...

  9. 7.Jenkins进阶之流水线pipeline语法入门学习(2)

    目录一览: (2) Declarative Pipeline Syntax 2.1) Sections - 章节 2.2) Directives - 指令 2.3) Sequential Stages ...

  10. 别像弱智一样提问 Stop-Ask-Questions-The-Stupid-Ways

    https://github.com/xcr1234/Stop-Ask-Questions-The-Stupid-Ways 你真的准备好了吗? 感谢群友 for you 提供 避免 xy-proble ...