首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

学习CALCULATE函数(五)

[1240] 白茶最近思考了一下,就是CALCULATE函数,为什么它是最灵活的,也是使用频率最高的函数?...因为在实际情况中,我们经常能遇到不同要求的聚合模式,这就导致了很难在短期内将CALCULATE学的透彻,微软一共200多个DAX函数,这就代表了有无数种可能。...比如说销售额,我昨天卖了15元,今天16元,那么求我的总营业额就是无限的累计。 二、不可累计度量值: 这个度量值类型有点类似于文本,就是文字大部分时候(不是全部)是不可以累计的,就是为了区分作用。...看我们的示例文件就知道了,比如我想知道所有客户1月份的库存余额汇总,那么将一月份最后一天三个客户的库存余额相加就可以了,这个之前提到过,CALCULATE+FILTER+MAX就可以搞定了。...编写代码如下: 月末库存余额= CALCULATE(SUM('表'[求和项]),LASTDATE('表'[DATE])//这里要替换成自己的数据 如图: [1240] 这个怎么说呢,LASTDATE的判定是返回最后一个非空白日期

67420

你真的知道你有多少家门店吗?让专家帮你用 PowerBI 算

店铺数 一张典型的店铺表的结构如下: 用 PowerBI DAX 计算如下: 门店数 = VAR MaxDate = MAX ( 'Model-Dimdates'[Date] ) RETURN...开关店明细-按月份,示例如下: 开关店明细-按部门,示例如下: 避免错误 这里有一点需要注意,在计算 [门店数 年初始] 时,使用的是上年末日期,PREVIOUSDAY ( STARTOFYEAR (...主要是因为如果门店开业日期是1月1日,则使用本年初日期 STARTOFYEAR ( 'Model-Dimdates'[Date] ) 会把该店也算入初始门店中,而再计算新增门店时,这个店又重复计算,这样就会导致年初始门店数...1 月末的 148 家。...剔除装修 以上度量值计算了当前上下文中事实存在的门店数,这其中包含了营业中和装修中两种状态。

1.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    《DAX进阶指南》-第6章 动态可视化

    3.最后一个基本度量值是计算12个月滚动销售额,使用 DAX 筛选器函数 CALCULATE 和时间智能函数 DATESINPERIOD 的组合。...从历史概况角度,参考日期是所选时间段的最后一天或MAX('Date'[Date])。例如,2020年4月的12个月滚动销售额是截至2020年4月30日的12个月的销售额。...例如,如果今天的日期为2022年1月13日,并且计算的上下文选择2022年1月,则它将返回2021年2月1日至2022年1月31日期间的销售额。...6.2.4动态选择计算值和日期列 在上一节中,我们开发了一个 DAX 度量值,用于按销售时段、年初至今销售额和12个月的滚动销售额之间动态切换。...由于SelectAxis=1,在 Cities[Country] 上使用TREATAS的虚拟关系。 作为对比,按零售类型划分的基于交货日期的12个月滚动销售额的选项使用以下DAX代码。

    5.7K50

    函数周期表丨时间智能丨值丨CLOSINGBALANCEMONTHQUARTERYEAR

    分别表示月末最后一天/季度末最后一天/年度末最后一天。还记得白茶之前曾经写过关于半累加的文章么?如果对于CALCULATE函数使用不习惯,那么可以尝试使用本期这三个函数。...本期的这三个函数都是半累加函数。语法,结构,用途基本上是类似的,统一打包带走! 用途:计算月末/季度末/年度末/最后一天的数据值。...语法 语法1: DAX= CLOSINGBALANCEMONTH(计算表达式>,日期>[,]) 语法2: DAX= CLOSINGBALANCEQUARTER(计算表达式>,日期...>[,]) 语法3: DAX= CLOSINGBALANCEYEAR(计算表达式>,日期>[,][,日期]) 参数 计算表达式:这个没啥说的,通常就是可以返回标量的表达式...日期:日期列。 筛选器:(可选项)应用于当前上下文的筛选器,限定条件。 结束日期:(可选项)定义年末最后一天,不填默认为12月31日,这个参数只有第三个有,前两者没有。

    44400

    一步一步教你制作销售目标分析报告

    这个表中有销售日期和销售额,我们可以使用DAX函数来将销售目标处理到该表的汇总数据表中。接下就一起来处理数据吧。在PowerQuery中手动输入销售目标表 ?...2、新建年,月,星期,年月,月周等列,方便后面计算指标   年 = YEAR('销售汇总'[销售日期])   月 = MONTH('销售汇总'[销售日期])   周 = WEEKDAY('销售汇总...'[销售日期],2)   年月 = '销售汇总'[年]&'销售汇总'[月]   月周 = '销售汇总'[月]&'销售汇总'[周] 二、计算平均销售额构建销售系数   ...SUMX计算星期一销售额的和,COUNTAX用来对星期一的个数进行计数,FILTER与EARLIER配合,只筛选表格中的9月份星期一的值进行求和与计数。   ...五、总结   通过本文我们通过构建销售系数实现对销售目标的细化处理,同时我们也可以学习DAX函数的使用方法:   1、SUMMARIZE函数对数据进行透视和汇总   2、SUMX,COUNTAX

    1.9K20

    PowerBI DAX 递归问题如何解 - 比例型

    有很多小伙伴常常问到含有递归特性的 Power BI DAX 计算问题,这在 DAX 中应该如何解呢? 本文来阐述【比例型】的解决方案。...; 对于 2020 年,要想求该年的预计销售额,就需要先知道 2019 年的预计销售额,再乘以预计增长率; … 进而,可以归纳为这样的规律: 对于任意所求的元素 X (n),依赖于对 X (n-1) 的计算...DAX 的递归限制 DAX 并不提供对递归计算的天然支持,导致一些问题无法自然得解。Excel 中可以轻松解决的问题,在 DAX 中变得很复杂。...DAX 合并模式 首先,来合并一个待预测的序列,使用标准的 DAX 设计模式,如下: Year.Combine = SUMMARIZE( FILTER( UNION(...总结 虽然 DAX 并不支持递归,但对一部分具有特点的递归计算,可以化解成数列聚合运算模式,本文给出了这方面的探索和示范。在滚动预测,存货,库存,余额等场景中均可以使用。

    1.1K21

    PowerBI 致敬 Tableau 10大表计算

    自参考日期开始的百分比变化 在 Tableau 中,利用表计算,可以计算从任意值开始的百分比变化。假设您对某个股票组合感兴趣,并且想评估它们从某个时间点开始的相对表现。...为此,需要设置一个“投资日期”,并将这些股票标准化到同一个时间点,用线条显示百分比变化。可使用滑块调整参考日期。...整理时保持排序 这里我们需要了解产品在一个月和一年内的排名,然后显示排名随时间的变化。为此,我们创建一个凹凸图,其中以折线图形式显示随时间的变化。...这里,我们使用 Superstore 销售数据进行加权平均: 在 PowerBI 中,模拟类似的需求,实现按子类别销售额利润率加权来计算类别的平均销售额,效果如下: PowerBI DAX 表达式可以直接由快速度量值给出...可变时段的移动平均 您已使用 Tableau 中的快速表计算功能,计算了所有月份的销售额移动平均,但现在希望进行扩展,以便选择要计算多少个时段的平均值。

    4.1K20

    Power BI: 根据最新销售日期计算上一年的销售额

    文章背景: DAX权威指南第16章讲的是DAX中的高级计算。最后一个例子提到,为了准确地计算出年同比(YOY),需要忽略上一年中发生在设定日期之后的任何销售数据。...示例:有个销售数据的数据源,删除了2009年8月15日之后的销售数据。下图显示了2009年8月之后的销售数据为空值。...对于去年同期销售额,合理的计算是只统计历史月份在8月15日之前的销售额,这样才能得出有意义的增长百分比。下面介绍两种方法。...计算结果如下图所示: 2 添加计算列 每次在需要时计算销售数据的最后日期,然后把它往后平移一年(或其他偏移量),都是一个繁琐而容易出错的任务。...更好的解决方案时预先计算出每个日期是否应该包含在比较中,并将这个值直接合并到日期表中。 在日期表中创建一个新的计算列,指出是否应该将某一日期包含在与上一年的比较中。

    93310

    如何巧妙的使用Power BI计算同比增长

    (表1-2) 但是我们不建议使用这个系统自动生成的日期维度,具体缘由,我们会单独分享文章来阐述需要自建一个日期维度表的重要性以及如何创建日期维度表。...(表1-5) 通过上述的简单计算,我们算出了去年的同期数字,这样就大功告成了吗? 还没有!DAX计算引擎依照2019年的整个日期为基础,算出了2018整年的数字。...如果这里我解释的不是很清楚的话,那么请允许我把月份的这个时间维度加入到这里来。可以看到,2019年的数据是刚从7月份开始的,但是依照上面的DAX计算出了去年整年的数字。 ?...我们不能用日期维度表里面来计算,否则我们就会得到的日期是2019年12月31日。...,可以帮我们算出两个日期区间的销售额。

    8.3K91

    一步一步教你制作销售业绩分析报告

    2、使用DAX函数创建日期表   DAX函数创建日期表的方式网上有很多种,这里我就介绍最简单的两种方式:CALENDARTAUTO和CALENDAR函数构建日期表。   ...小结:使用DAX函数创建日期表最大的好处不用外置表格,不用担心文件路径发生改变。这里只是展现了PowerBI DAX函数创建日期表的两种方式。...在可视化面板中拖放日期表中年,月字段和销售明细表中的本期销售业绩和去年同期的销售业绩,来展现效果查看验证度量值是否取数准确。 ? 计算好本期销售业绩和去年同期销售业绩后,开始新建同比度量值。...累计销售额是指从某年的1月1日到当前的销售额,累计销售额和年度销售目标或者去年累计销售额做对比查看销售情况。...前面我们也提到过按月进行计算同比数据有时候我们需要查看累计同比数据,举个例子:业务部门需要将1-6月半年的数据和去年的1-6月累计数据进行对比分析,这个时候我们只需要将销售相关度量值替换为累计销售额。

    5.4K21

    PowerBI: 使用计算组功能计算不同度量值的同比、环比

    文章背景: 在进行商业数据分析时,经常需要给不同的度量值(如销售额、销量等)计算同比、环比、YTD(年初至今)等指标,如果给每个指标都写一个以上的时间智能函数,那么会写很多重复的度量值,这些度量值的唯一不同就在于引用的基础度量值...PowerBI 版本:2.109.782.0 64-bit (2022年9月) 假定有一份PowerBI文件,内有一张销售明细表,目前需要统计每月销售额、人均销售额等的同比、环比。...(9)将更改保存至DAX引擎。 点击上图中的图标,将更改保存至已经连接的数据库(也就是DAX引擎)。 (10)回到PowerBI desktop界面,对所创建的计算组进行数据刷新。...(11)计算组已经创建完毕。按照下图拖拽出需要的矩阵图,效果如下: 对于矩阵的值,这里只放置了一个度量值(人均销售额)。而计算组按照事先定义的两个计算逻辑(环比和同比)进行了计算。...参考资料: [1] Power BI计算组应用(https://www.jianshu.com/p/0f309922c469) [2] PowerBI DAX 计算组 基础篇 [3] [通过计算组动态切换指标格式

    3.9K22

    PowerBI 基于移动平均及最小二乘法的动态趋势预测

    其 DAX 公式如下: KPI.RA.7 = // Rolling average CALCULATE( [KPI] , DATESINPERIOD( 'Calendar'[日期] ,...最小二乘法 我们发现趋势线的计算在 Power BI 中其实是采用了最小二乘法,那么如果我们可以实现最小二乘法,我们就可以绘制这个趋势线,进而自行去延长了。 下面来详细说明最小二乘法的实现。...感兴趣的伙伴可以自行搜索关于最小二乘法的的求解过程以及更一般化内容,这是一项非常重要的数学发现以及有很强的实用价值。它大致在高中和大学一年级时是标准的教学内容。...DAX 实现 假设随着年份,销售额呈现上升态势,且存在这种线性的增长趋势,我们如何通过前4年的销售额来推测未来3年的预测值就可以使用最小二乘法。 效果如下: ?...:动态挂载的非侵入式设计 以及 DAX 驱动可视化 的思想。

    2.7K22

    Extreme DAX-第4章 上下文和筛选

    图4.9 一个展示年初至今销售额的图表 根据年初至今的定义,您在 August(八月)这一列中看到的是 2021 年 1 月 1 日至 2021 年 8 月 31 日期间的总销售额。...这是计算滚动总计所需的函数。例如,使用以下公式计算12个月的滚动销售总额(即回溯12个月)。此处,MAX('Date' [Date]) 用于检索上下文中的最后一天作为参考日期。...例如,如果您的日期表开始于 2020 年,并且您在 2020 年 2 月的日期上下文中使用 SAMEPERIODLASTYEAR 函数,则上下文结果一定为空。...:我们可以在不使用 SalesAmount 列的情况下计算销售额吗?...4.6.2 使用虚拟表 在上一节中,我们阐述过一个计算每个城市平均销售额的公式。现在,假设我们要计算每个州的平均销售额。

    5.8K21

    Extreme DAX-第3章 DAX 的用法

    在本章中,我们将简要介绍 DAX 在 Power BI 中的不同用法。 计算列 计算表 度量值 安全筛选器 DAX 查询 除此之外,我们还将讨论如何使用 DAX 创建日期表。...举个简单的例子:通过将销售的产品数(Quantity)乘以每个产品的价格(Price)来计算销售额(Amount)。注意,在 DAX 中列名要写在方括号内。...正确的做法是:将总销售额除以销售的产品总数,并且计算过程根本用不到 [Price] 列。 计算列中的计算结果是静态的:仅在创建列或者刷新 Power BI 模型时这些值才会被计算。...建议以模型中的最小年份作为日期表的开端,并以最大年份结束[2]。日期表必须具有日期列,该列是日期表的唯一键(您也可以自己设置此列的名称)。表中的其他列是每天的属性,如年、月、季度、工作日等。...↑ 1 译者注:例如,假设事实表中包含的最小日期和最大日期分别为2019年2月14日和2022年5月20日,则该日期表的日期范围最好设定为2019年1月1日至2022年12月31日。↑

    7.2K20

    函数周期表丨时间智能丨值丨DATEADD

    对于上下文理解很吃力的小伙伴,使用DATEADD函数不失为一种过渡的手段。...语法 DAX= DATEADD(日期列>,,) 参数 日期列:可以是一个具体的日期,可以是一列日期,也可以是一个日期的表达式。 整数:正数向后平移,负数向前,小数四舍五入。...粒度:表示平移的单位。年、季度、月、日。 返回结果 可以是一个具体的值,也可以是一列日期。...], DATEADD ( '例子'[日期], -1, DAY ) ) 结果: [1240] 这里第四种结果白茶单独拿出来说一下,可以很明显的看出来DAX表达式写的没有问题,但是结果却是空值,那么问题出在哪呢...其实这就是我们实际写DAX使用时间智能函数经常遇到的问题,就是日期"空值"现象,也就是特殊情况无营业。记得有很多小伙伴经常发消息给白茶说,你给我看看这个代码,明明没啥问题,但是为啥结果是错误的?

    63800

    【致知篇57】DAX CALCULATE vs. Tableau LOD:从SUM+IF条件计算到SUMIF

    指标因计算的复杂度 不同而有了抽象度差异,常见的几个类型如下: 销售额总和:直接聚合 利润率(利润总和/销售额总和):聚合的二次计算 MTD销售额:包含计算条件的聚合 MTD销售额同比:包含多个计算条件的聚合及其计算...在没有学习PBI的 DAX之前,我误以为只有一种条件计算的逻辑,就是SUM+IF,殊不知在Excel及其体系中,还有一个性能优化plus方案——SUMIF方案。...先说最易于理解的方案:SUM+IF,对符合IF条件的数据行聚合相加。以“本年的销售额总和”为例,初学者使用Excel、SQL和Tableau会用如下的计算实现。...我在2021年5月写过一篇博客,题名“【高级】Tableau性能优化之关键:两种计算对性能的影响实证”(见于yupengwu.com),介绍过不同的筛选方法对性能的巨大影响。...2022年,各个类别、子类别 的 YTD销售额(总和)、MTD销售额、利润率 可以如下实现(MTD简化为2022年12月): SELECT SUM( a.

    12000

    PowerBI 时间智能终极奥义,用 WTD 练手

    问题三】如果订单表有订单日期和发货日期,需要按不同日期计算销售额,应该建立几个日期表: A 一个 B 两个 【问题四】NEXTDAY 是日期智能函数吗?...(将在直播中一起分析) 实践 WTD 计算 在默认的日期智能的计算中,并不包括 WTD 的计算,虽然有很多种实现方法,这里给出最简单的一种,如下: KPI.WTD = CALCULATE( [KPI...周和月,周和年的结构都不同,周是有固定的 7 天的,因此,通过本文的学习,我们可以这样构建逻辑结构如下: 选择日期区间的最后日期作为参考点日期 计算该日期的星期几 缩放该日期到周一 有的伙伴可能会问:MAX...( ‘日期’[Date] ) 用了两次,如果使用 VAR 建立一个变量就可以节省一次计算。...从学习 DAX 到超越 DAX,达到更加逻辑的状态,再回到 DAX 来进行运用就会有一种豁然开朗的感觉。

    1.4K20

    时间维度计算与分析专题-01-理解结构

    问题三】如果订单表有订单日期和发货日期,需要按不同日期计算销售额,应该建立几个日期表: A 一个 B 两个 【问题四】NEXTDAY 是日期智能函数吗?...(将在直播中一起分析) 实践 WTD 计算 在默认的日期智能的计算中,并不包括 WTD 的计算,虽然有很多种实现方法,这里给出最简单的一种,如下: KPI.WTD = CALCULATE( [KPI...周和月,周和年的结构都不同,周是有固定的 7 天的,因此,通过本文的学习,我们可以这样构建逻辑结构如下: 选择日期区间的最后日期作为参考点日期 计算该日期的星期几 缩放该日期到周一 有的伙伴可能会问:MAX...( ‘日期’[Date] ) 用了两次,如果使用 VAR 建立一个变量就可以节省一次计算。...从学习 DAX 到超越 DAX,达到更加逻辑的状态,再回到 DAX 来进行运用就会有一种豁然开朗的感觉。

    79810

    函数周期表丨时间智能丨表丨FIRSTNONBLANKLASTNONBLANK

    严格来说,这两个函数的用途是非常重要的,适用于很多类型的数据,白茶有点搞不懂为什么微软把这两个函数划分为“时间智能函数”。 用途1:可以用来计算数据的非空日期。...语法 语法1: DAX= FIRSTNONBLANK(,) 语法2: DAX= LASTNONBLANK(,) 参数 列:任何列,或者具有单列的表,也可以是表达式。...FIRSTNONBLANK ( '示例'[DATE], CALCULATE ( SUM ( '示例'[销售] ) ) ) 结果: [922e27b4ab01f8946c734a455c0982a3.png] 求出产生第一笔销售额的日期...如果这里不嵌套CALCULATE函数的话,会导致计算忽略计算上下文,只考虑行上下文,那么呈现的结果将是2020年1月3日。...LASTNONBLANK ( '示例'[DATE], CALCULATE ( SUM ( '示例'[销售] ) ) ) 结果: [12a759563e01f5d6a33549a64b8f83a0.png] 求出最后一笔销售额不为空的日期

    51100
    领券