Power BI中如何实现移动平均功能

news2025/3/12 10:06:34

一、移动平均

 移动平均,是一种常用的统计分析方法,它是指将一定时间范围内的数据,按一定的时间间间隔进行计算平均,然后将平均值形成一条折线。常用的时间间隔有10天、20天、30天、60天等。

当原数据折线图波动比较大时,通过移动平均可以使折线图变得趋于平缓,更有利于发现变化趋势。

二、问题描述

已知2022年7月1日至2022年12月31日日销售金额和需求计算的不同偏移量,见下表。

表:销售记录

表:偏移量

问题:在Power BI中计算不同偏移量下的移动平均值

三、分析

有关移动平均值的计算,这里我们分成两种情况呈现,一种是在Power BI数据模式下,通过新建列来计算移动平均值;二种是Power BI报表模式下,通过新建度量值来计算移动平均值。

(一)Power BI数据模式下,通过新建列来计算移动平均值

新建列,10日移动平均值1 = AVERAGEX(FILTER(ALL('销售记录'),'销售记录'[日期]<=EARLIER('销售记录'[日期]) && '销售记录'[日期]>EARLIER('销售记录'[日期])-10),'销售记录'[销售金额])

上图中7月1日~7月9日也显示了平均值,习惯做法由于7月1日~7月9日不满10天,应显示为空,所以对对上面的公式进行如下优化:

新建列,10日移动平均值2 = AVERAGEX(FILTER(ALL('销售记录'),'销售记录'[日期]<=EARLIER('销售记录'[日期]) && '销售记录'[日期]>EARLIER('销售记录'[日期])-10 && EARLIER('销售记录'[日期])>=MIN('销售记录'[日期])+9),'销售记录'[销售金额])

通过筛选条件EARLIER('销售记录'[日期])>=MIN('销售记录'[日期])+9),将前9天筛选掉。

(二)Power BI报表模式下,通过新建度量值来计算移动平均值

1、静态移动平均

新建度量值,10日移动平均 = CALCULATE(AVERAGE('销售记录'[销售金额]),FILTER(ALL('销售记录'),'销售记录'[日期]<=SELECTEDVALUE('销售记录'[日期]) && '销售记录'[日期]>SELECTEDVALUE('销售记录'[日期])-10 && SELECTEDVALUE('销售记录'[日期])>=MINX(ALL('销售记录'),'销售记录'[日期])+9))

2、动态移动平均

新建度量值,移动平均 = CALCULATE(AVERAGE('销售记录'[销售金额]),FILTER(ALL('销售记录'),'销售记录'[日期]<=SELECTEDVALUE('销售记录'[日期]) && '销售记录'[日期]>SELECTEDVALUE('销售记录'[日期])-SELECTEDVALUE('偏移量'[移动平均天数]) && SELECTEDVALUE('销售记录'[日期])>=MINX(ALL('销售记录'),'销售记录'[日期])+SELECTEDVALUE('偏移量'[移动平均天数])-1))

注意:

(1)新建度量值时用的是SELECTEDVALUE('销售记录'[日期]),而新建列时用的是EARLIER('销售记录'[日期])

(2)通过SELECTEDVALUE('偏移量'[移动平均天数]),与切片器“移动平均天数”动态关联,实现动态移动平均

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/196776.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

利用GPAC生成MP4文件

GPAC主要针对学生和内容创作者&#xff0c;代表了一个跨平台的多媒体框架&#xff0c;开发人员可以使用它在 LGPL 许可下制作开源媒体。GPAC多媒体框架兼容范围广泛的流行文件类型&#xff0c;从常见格式(如 AVI、MPEG 和 MOV)到复杂格式(如 MPEG-4 系统或 VRML/X3D)和 360 电影…

哈工大机器学习复习笔记(二)

本篇文章是在参考西瓜书、PPT课件、网络上相关博客等资料的基础上整理出的机器学习复习笔记&#xff0c;希望能给大家的机器学习复习提供帮助。这篇笔记只是复习的一个参考&#xff0c;大家一定要结合书本、PPT来进行复习&#xff0c;有些公式的推导最好能够自己演算一遍。由于…

JVM结构 类加载

类加载 类加载子系统 类加载器子系统负责从文件系统或者网络中加载class文件。classLoadr只负责class文件的加载&#xff0c;至于它是否可以运行&#xff0c;则由Exception Engine&#xff08;执行引擎&#xff09;决定。加载类的信息存放于一块成为方法区的内存空间 class fi…

【GPLT 二阶题目集】L2-007 家庭房产

给定每个人的家庭成员和其自己名下的房产&#xff0c;请你统计出每个家庭的人口数、人均房产面积及房产套数。 输入格式&#xff1a; 输入第一行给出一个正整数N&#xff08;≤1000&#xff09;&#xff0c;随后N行&#xff0c;每行按下列格式给出一个人的房产&#xff1a; 编号…

Java创建线程的七种方法,全网最全面总结~

目录 前言 一、继承Thread&#xff0c;重写run方法 二、实现Runnable接口&#xff0c;重写run方法 三、使用匿名内部类创建 Thread 子类对象 四、使用匿名内部类&#xff0c;实现Runnable接口 五、lambda表达式 六、实现Callable接口 七、使用线程池创建线程 前言 属于基…

末端工具重力辨识

辨识工具重力 法一&#xff1a;6点标定 已知&#xff0c;工件重力在世界坐标系的大小为{0,0,−G}\{0,0,-G\}{0,0,−G},假设工件重心在工具坐标系下的坐标为 {Lx,Ly,Lz}\{L_x,L_y,L_z\}{Lx​,Ly​,Lz​}&#xff0c;重力在工件的三个坐标轴分量为 {Gx,Gy,Gz}\{G_x,G_y,G_z\}{G…

Docker安装MySQL8数据库

&#x1f388; 作者&#xff1a;互联网-小啊宇 &#x1f388; 简介&#xff1a; CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作&#xff0c;擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护…

为什么要拒绝嵌套代码?

linux 内核的最早作者 linus torvalds 在 linux 内核样式指南 第一节中提到&#xff1a; if you need more than 3 levels of indentation, you’re screwed anyway, and should fix your program. 如果你需要超过3级的缩进&#xff0c;你无论如何都搞砸了&#xff0c;应该修复…

ABBYY15免费照片识别文字识别软件

照片识别文字的软件有哪些&#xff1f;在日常的工作的时候&#xff0c;小伙伴们是不是经常会借助拍摄照片记录一些比较重要的事情或者是一些比较重要的笔记&#xff0c;等回头空闲出来的时候在去整理&#xff0c;那么这时候&#xff0c;如果我们运用好图片识别文字这项技术&…

线性代数篇

主线为花书第二章-线性代数&#xff0c;但其上面一些表述属实费解&#xff0c;于是参考B站3Blue1Brown线性代数和B站同济子豪兄的视频讲解。 先放一句3B1B的话共勉&#xff0c;伙计们不要被数学公式吓到&#xff0c;慢慢钻研&#xff0c;慢慢推肯定能学懂。线性代数这一部分相信…

cannot redeclare block-scoped variable

使用 Vue3.0 的时在模块类中声明方法的时候抛出了如下的异常:cannot redeclare block-scoped variable解决办法检查是否集成了 Vetur 插件,若存在禁用或卸载即可,该插件Vue3.0 的时候会冲突;Vue3.0 集成如下两款即可:名称: TypeScript Vue Plugin (Volar)ID: Vue.vscode-typesc…

Qt 自定义控件 带UI 不带 UI

一般自定义控件原因 有时Qt 现有控件不能满足我们的开发需求&#xff0c;这时候就需要我们进行自定义控件的使用&#xff0c;自定义控件,这大大提高了设计UI的通用性,程序利用&#xff0c;封装&#xff1b; Part1 easy one 继续 Lab 自定义Label控件&#xff1a;文本太长省略…

机械设备管理系统如何帮助企业做好成本核算管理?

随着多元化市场经济的深入发展&#xff0c;机械设备制造企业面临的竞争压力也越来越大&#xff0c;企业要想在激烈的市场环境中生存下去&#xff0c;就得不断提高竞争力。企业提高自身竞争能力最为重要一个途径便是不断提高企业的成本核算及管控能力&#xff0c;降低企业经营成…

java使用导出百万级别数据

用过POI的人都知道&#xff0c;在POI以前的版本中并不支持大数据量的处理&#xff0c;如果数据量过多还会常报OOM错误&#xff0c; 这时候调整JVM的配置参数也不是一个好对策&#xff08;注&#xff1a;jdk在32位系统中支持的内存不能超过2个G&#xff0c;而在64位中没有限制&a…

栈、堆、全局区/静态存储区、常量区、代码段、到底是什么?

一、程序运行内存分布图 我们知道一个由我们编写好的程序&#xff0c;运行时&#xff0c;我们的程序中写的代码&#xff0c;定义的变量&#xff0c;写的函数、for 循环等等&#xff0c;这些运行时都分布在内存中的哪里吗&#xff1f; 一下是一个程序运行时 内存的各个区域的分…

C语言字符串指针(指向字符串的指针)详解

C语言中没有特定的字符串类型&#xff0c;我们通常是将字符串放在一个字符数组中&#xff0c;这里演示一下&#xff1a;#include<stdio.h> #include<string.h>intmain(){ char str[]"http://csdn.net"; int len strlen(str), i; //直接输出字符串 printf…

一套完全开源,支持多租户,界面配置单点的后端框架JVS,赶紧收藏

今天推荐的这个项目是「JVS数据全家桶中的 JVS微服务框架」—— 是一个免费开源的中后台模版&#xff0c;使用了最新的 vuespring cloud 主流技术开发&#xff0c;开箱即用的中后台前端解决方案&#xff0c;可以直接商用&#xff0c;并且这个脚手架上做了很多商业上的扩展&…

day19 二叉树 | 654、最大二叉树 617、合并二叉树 700、二叉搜索树中的搜索 98、验证二叉搜索树

题目 654、最大二叉树 给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下&#xff1a; 二叉树的根是数组中的最大元素。左子树是通过数组中最大值左边部分构造出的最大二叉树。右子树是通过数组中最大值右边部分构造出的最大二叉树。 通过给定的数组构…

数据中心转型利润中心:数据如何赋能零售行业营销升级?

通过大数据来提升营销效果已经是零售行业不同业态都绕不过去的话题。以往&#xff0c;市场团队在进行投放时需要依靠营销团队和销售团队的经验来判断&#xff0c;这样的营销策略较为粗放&#xff0c;对用户的感知也不精准&#xff0c;一般都是在海量投放后被动的等待营销反馈。…

C++代码优化(2):条款5~12

"然后自然老去吧&#xff0c;别再依依惜别了"条款5:了解C默默编写并调用了哪些函数(1)小试牛刀地回顾C编译器为类提供的默认函数很多人知道是有6个的。默认构造、拷贝构造、赋值重载、析构函数、重载取地址运算符&#xff0c;但是在C11更新后&#xff0c;又为类对象增…