前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >对比Excel学PBI:减去上一行,DAX公式原来是这么想出来的!|DAX实战

对比Excel学PBI:减去上一行,DAX公式原来是这么想出来的!|DAX实战

作者头像
大海Power
发布2024-07-02 16:31:57
510
发布2024-07-02 16:31:57
举报

小勤:DAX里怎么实现下图Excel里减去上一行的效果?

大海:Excel里减去上一行的公式比较简单,只要判断一下当前行的名字是否等于上一行的,如果等于,即可以用当前行的数量减去上一行的,否则等于当前行的数量。

Why?

Excel公式之所以比较简单,是因为Excel的数据是以单元格的方式存储的,并且可以通过公式对单元格的相对引用和自动填充特性来快速实现。

DAX里只有表的概念,需要通过上行索引或上下文的特性才能支持对数据进行行的定位和筛选,而不像Excel里可以直接通过动态引用到“上一行”(关于窗口函数的使用另文再讲)。

因此,在DAX里这个问题的处理就会相对复杂,所以,你得想办法通过条件筛选或索引定位的方式得到“上一行”的数据。

小勤:那要怎么筛选呢?

大海:你可以想象一下在Excel里通过筛选的方式定位到“上一行”数量过程。

小勤:嗯。通过筛选方式的话,那是不是要包括以下几个过程?

1、筛选出名字等于当前行(如 甲)且日期小于当前行(如 7月19日)的数据:

2、日期降序排列后第一行,即日期最大的行

3、选择“数量”列的内容

大海:对的,在DAX里其实就是遵循这样的思路对数据进行“筛选”然后计算得到相应的结果,最终公式如下:

小勤:

怎么公式这么长啊!

大海:DAX里很多公式显得很长,一是数据筛选的过程可能比较复杂一些,还有一个原因是为了便于公式的阅读,进行了换行和缩进,以及对中间计算过程使用了变量暂存的处理方式。

小勤:理解了。看其中的核心筛选过程【SELECTCOLUMNS(TOPN(1,FILTER(…)…)…)】,跟在Excel里筛选、排序、取数量列的过程真的是完全一致啊。

大海:对的。以后碰到DAX的问题,首先就先想一下,假如在EXCEL里(以后多表的情况下就是在模型里)怎么一步步筛选出自己需要的数据。

小勤:理解了,我先去熟悉一下SELECTCOLOUMNS、TOPN、FILTER这些基础函数的使用方法。

大海:好,后面我也继续通过类似对比Excel的方式进行更多内容的讲解,让大家可以基于自身已有的Excel知识,更好地理解Power BI的异同之处,更快地掌握Power BI的核心原理和使用方法。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Excel到PowerBI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档