博客: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. cpu指令如何读写硬盘

    我们提到cpu的主要作用之一就是控制设备之间的数据交互.这其中自然也包括了硬盘.系统的所有数据基本都在硬盘中,所以知道怎么读写硬盘,对程序来说非常重要,所以我们先来探索下传说中的pio模式. cpu要 ...

  2. Android去掉标题头

    在AndroidManifest.xml文件中定义 <application android:theme="@android:style/Theme.NoTitleBar"& ...

  3. js手机端判断滑动还是点击

    网上的代码杂七杂八,  我搞个简单明了的!!  你们直接复制粘贴,  手机上 电脑上 可以直接测试!!! 上图: 上代码: <!DOCTYPE html> <html lang=&q ...

  4. 微信小程序页面跳转参数传递

    可以使用标签直接传递 <navigator class="gotoDetail" target="self" url="../detail/de ...

  5. FastAPI(七十二)实战开发《在线课程学习系统》接口开发-- 留言列表开发

    之前我们分享了FastAPI(七十一)实战开发<在线课程学习系统>接口开发-- 查看留言,这次我们分享留言列表开发. 列表获取,也需要登录,根据登录用户来获取对应的留言.逻辑梳理如下. 1 ...

  6. 高精度减法(C++实现)

    高精度减法 简介 用于计算含有超过一般变量存放不下的非负整数 高精度加法这个过程是模拟的小学竖式减法计算 注:在本文中,我们默认输入的第一个数为被减数,且被减数大于减数 原理基本上与高精度加法相同,仅 ...

  7. JavaScript学习总结4-规范

    昨天学习了JS的严格检查模式,今天做一点补充 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 & ...

  8. Source Generator实战

    前言 最近刷B站的时候浏览到了老杨的关于Source Generator的简介视频.其实当初.Net 6刚发布时候看到过微软介绍这个东西,但并没有在意.因为粗看觉得这东西限制蛮多的,毕竟C#是强类型语 ...

  9. AndroidStudio中的模块依赖引入后用不了

    ------------恢复内容开始------------ 在Android开发中,com.android.tools.build:gradle 3.0 以下版本依赖在gradle 中的声明写法: ...

  10. 一行代码让你的项目轻松使用Dapr

    介绍 Dapr简化了云原生开发,让开发可以把焦点放在应用的业务逻辑上,从而让代码简单.可移植,那作为一个.Net开发者,我们也希望项目可以快速用上dapr,那究竟应该如何做呢? Dapr提出了Side ...