PowerBI_一分钟学会计算门店开业前3天销售金额_计算列及度量值方法

news/2025/3/17 13:30:18/文章来源:https://www.cnblogs.com/simone331/p/18329117

在某些特殊场景,我们往往需要去计算一些特定的组别的聚合数据

今天,就以计算门店开业前3天的销售情况,来学习一下,利用计算列和DAX度量值,两种快捷计算此类问题的方案。

一:XMIND

二:示例数据

2.1 示例数据列说明

 为了方便验证和更清晰的检查结果,数据源只用了三列,分别是3个门店,分别为A,B,C,日期列,以及一列模拟的营业额数据。

2.2 计算目标

目标就是利用DAX或者计算列,计算出,每一家门店实际产生销售的前三天的营业额之和

三:计算列方案

首先,我们用计算列方案来解决。

遇到此类问题,最快捷或者说最直接的方式就是通过计算列给我们的每行数据进行数据标注,再通过CALCULATE计算器的筛选器,去筛选我们想要的标签,再得到结果

下方的计算列方案,第一步就是通过MIN函数求得最小得日期,由于我们是计算每个门店单独得最小日期得销售之和,所以这里使用了ALLEXCEPT,去除门店列得筛选,总而得到了每一个门店得开业前三天得数据标签。

最后,通过CALCULATE函数,对符合我们要求的数据,进行求和,便得出我们的结果。

具体DAX代码如下:

第一步,新增营业表的计算列IsFirst3Days = VAR MinDate = CALCULATE(MIN('示例表'[日期]), ALLEXCEPT('示例表', '示例表'[门店]))RETURNIF('示例表'[日期] >= MinDate && '示例表'[日期] <= MinDate + 2,"开业前三天门店日期","其他")     第二步,度量值计算营业额,利用第一步的标签来筛选并计算IsFirst3Days_营业额= CALCULATE(SUM('示例表'[营业额]),'示例表'[IsFirst3Days]="开业前三天门店日期")

  

四:DAX方案

 那么有没有更加方便,或者说一步解决问题的方案呢?

当然有,我们来看看纯DAX的解决思路。

首先,思路和计算列方案是一样的,我们也是利用标签的形式去筛选表,然后直接对符合条件的行进行求和,即可得到目标值

下方DAX中,首先利用FILTER函数,对示例表进行筛选,配合ALLEXCEPT函数,去除表筛选条件,最后直接用CALCULATE函数进行聚合。

有一点不一样的是,计算列方案时,我们用了IF去进行判断,DAX方案中,我们用了并列条件,即同时满足这两个条件的行我们保留,小知识点,在DAX中我们会使用  "&&"  去表达我们的 "且" 这个概念。

最后,我们可以看到,两种方案的结果是一样的。

纯DAX方案:TotalSalesFirst3Days = CALCULATE(SUM('示例表'[营业额]),FILTER('示例表','示例表'[日期] >= CALCULATE(MIN('示例表'[日期]), ALLEXCEPT('示例表', '示例表'[门店])) &&'示例表'[日期] <= CALCULATE(MIN('示例表'[日期]), ALLEXCEPT('示例表', '示例表'[门店])) + 2))

看到这里,有些朋友可能会问,为什么会在这里介绍两种方案,而不只介绍DAX呢,明明DAX一步就可以解决问题?

因为,即便计算组,会浪费内存,在大的数据集表中有相当大的性能限制,但是,在某些紧急情况(来不及构思DAX)或者某些特殊场景下,我们首先需要解决问题,我们是鼓励多一些的解决问题思路。

所以,在性能充足时,不必纠结解决方式,解决问题就好,性能优化的事情,我们放在后面解决也不迟。

五:关键DAX-ALLEXCEPT函数

5.1 语法

ALLEXCEPT(<table>, <column1>, <column2>, ...)

5.2 作用

ALLEXCEPT函数会返回一个表,该表删除了所有筛选器,除了那些应用于指定列的筛选器。这在需要对某些列进行聚合计算时非常有用,而不受其他列的筛选条件影响。

5.3 使用场景

计算占比:例如,你想计算某个城市在省份中的销售占比,可以使用ALLEXCEPT函数保留省份的筛选条件,移除其他筛选条件。

复杂的聚合计算:在进行复杂的聚合计算时,ALLEXCEPT可以帮助你控制哪些列的筛选条件被保留,哪些被移除,从而更灵活地进行数据分析。

5.4 其他类似函数

ALL:移除所有筛选器,返回整个表或列

ALL('销售数据')

ALLSELECTED:移除所有筛选器,但保留用户在视觉对象中选择的筛选器

ALLSELECTED('销售数据')

REMOVEFILTERS:移除指定列或表的筛选器。

REMOVEFILTERS('销售数据'[省份])

KEEPFILTERS:保留现有筛选器,并在此基础上添加新的筛选器。

CALCULATE([销售量], KEEPFILTERS('销售数据'[城市] = "成都"))

六:总结

实际业务中,这类根据特定分组,如小组,商品品类,具体门店等,进行统计的场景是很常见的,而今天讲到的ALLEXCEPT函数的灵活使用,恰恰可以帮助我们解决这类问题

这类问题,一般包含了日期,分组占比,分组排名等等一系列的场景,值得我们花时间去研究,后续如果有实际案例发生,我会做补充的案例说明。

ENJOY DAX 

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

雷达气象学(6)——径向速度图分析

目录6.1 速度场分析基础6.1.1 速度图分析的基本方法6.1.2 练习:整层为均匀西风6.1.3 练习:风向随高度顺转6.2 水平均匀风场的典型图像6.3 典型天气系统的判别6.3.1 锋面(切变线)系统6.3.1.1 冷锋(冷式切变线)6.3.1.2 暖锋(暖式切变线)6.3.2 逆风区6.3.3 中 \(\gamma\) …

wsl docker里运行ollama并使用nvidia gpu的一些记录

1、安装wsl2 具体过程网上一搜一把,这里就先略过了,只有wsl2能用哈 2、wsl里装docker,及相关配置 装dockerwget https://download.docker.com/linux/static/stable/aarch64/docker-23.0.6.tgz cd /mydata/tmp/ tar -zxvf docker-23.0.6.tgz mv docker/* /usr/bin/ mv dock…

程序员副业探索之电商

在腾讯广告工作期间,我主要负责小程序电商与广告业务,见证了互联网电商行业的剧变,特别是众多电商公司纷纷拥抱私域流量,直播带货成为新风尚,广告投入也在持续增加。通过这些经历,我积累了不少关于互联网电商的经验,并萌生了尝试电商副业的想法。 在小红书上,女装博主们…

mysql 为什么很多互联网公司选择了读可提交

前言 在默认环境下,mysql 是可重复读,为什么默认可重复读呢? 一般情况下感觉读可提交就行,可重复读解决幻读的问题,但是大多情况下没有幻读的问题,所以也没有必要可重复读。 那么为什么mysql 要把默认配置设置为可重复读呢? 正文 历史原因:这种图,如果是在可提交读的情…

day2-admin管理后台

admin管理后台 1.基于django初始化一个项目 1.conda activate 虚拟名字#进入虚拟环境 2.django-admin startproject blog#创建一个项目blog 3.cd blog #进入blog项目文件夹中 4.python manage.py startapp app的名字#创建一个app初始化数据库(django自带的sqlite)1.python ma…

1-初始前端基本标签

目录初始html –超文本标记语言1.超文本:2.标记语言:3.标签4.html基本框架5.拓展插件6.文字标签7.转义字符8.语义化与SEO 初始html –超文本标记语言 1.超文本:比普通的文本更厉害。可以插入图片/音乐/视频/超链接,对立面的内容进行排版,样式设计2.标记语言:可以吧html当做…

WIN10使用记录

一、win10任务栏任务缩略图变列表 运行中输入regedit,打开注册表编辑器。HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Taskband在右侧窗口中找到NumThumbnails,如果没有的话也要手工新建一个Dword(32位)值,把其命名为NumThumbnails, 双击NumT…

「Day 1—递归问题」

递归问题 定义 简洁来说就是一个函数不断调用自身的一个过程。 习题 汉诺塔问题 思路 对于这个经典的问题,我们考虑了使用递归的做法,由于盘子是在三个底座上来回辗转的,所以我们要确定起始座,辅助座,和目标座。我们专注于最下面的最大的那个盘子,先将盘子都放到辅助座上…

集合类关系

每天坚持,终会抵达!

人工智能的虚拟世界:源码和制作方法

源码和制作方法:人工智能的三维虚拟世界,完全免费、完全开源、完整无缺,一步步教你怎么制作这个游戏。8月4日修复学校场景输入框无法输入的故障,并增加教室外的楼道场景。 源码和制作方法:人工智能的三维虚拟世界,完全免费、完全开源、完整无缺,一步步教你怎么制作这个游…

各种变量

1.局部变量2.实例变量相当于把Hello拿了出来,作为一个变量类型来使用 布尔值的默认值是false 3.类变量4.常量

【LCA 树上两点的距离 判定点是否在某条边中】洛谷P3398 仓鼠找sugar

题目链接:P3398 仓鼠找 sugar - 洛谷 | (luogu.com.cn) 题目大意:判定一棵树上的两条边是否相交 Tag: [LCA] [树上两点间距离的计算] [如何判断与点在某条路径上] 思路: \[\begin{align} &1.建图\\ &2.\text{dfs}然后\ 计算出每个点的深度 和计\text{anc}(i,j)\\ &…