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

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

作者头像
大海Power
发布于 2024-07-02 08:31:57
发布于 2024-07-02 08:31:57
3790
举报

小勤: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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
PP-DAX入门:行上下文,先来了解一下简单的概念
大海:这个是简单,但你有没有想过一个问题?你看看其他单元格里的公式——这一列里每一个公式都是一样的,但出来的结果却是不一样的,为什么呢?
大海Power
2021/08/30
4990
DAX 2 - 第一章 什么是 DAX
本文来自社区伙伴对《DAX 权威指南(第二版)》的学习笔记,有问题可以留言或联系BI佐罗修改,感谢你的支持。
BI佐罗
2020/04/27
5K0
用DAX做查询,模型中的数据任你取
小勤:上次说可以通过对逆向连接表编辑DAX公式按需要返回模型中的数据(具体见文章《链接回表,让Power Pivot和Excel的互动更加精彩》),具体是怎么弄的?
大海Power
2021/08/30
1.1K0
PQ-批量汇总多Excel表格:标题都从第n行起怎么办?
标准Excel表格批量汇总过程及基础方法请参考文章:《PQ批量汇总Excel文件就是这么简单》,所有特殊情况处理都是在该基础方法之上加以适当的处理而已。
大海Power
2021/08/30
8810
Extreme DAX-第4章 上下文和筛选
编写 DAX 公式时要掌握的核心概念是上下文。DAX 作为一门动态数据分析语言,与 Excel 函数、SQL 查询 和 Power Query 脚本有着根本不同的原因就在于上下文的概念。以上所述的所有其他语言的公式只会在数据发生变化时才会返回不同的结果(除了一些例外情况,例如使用参数时),但是单个 DAX 公式就可以同时提供多个不同的结果,具体取决于您使用它的位置和方式,也就是:上下文。
陈学谦
2022/05/24
6.1K1
Extreme DAX-第4章 上下文和筛选
PQ批量汇总多Excel表格之特殊处理:标题不在第1行
小勤:我有一批从某个系统导出来的表,主体数据表格式完全一样,但标题行在第2行(第1行通常是空的),为什么通过Power Query合并时,有的会忽略掉第1行空行,有的又不会忽略掉?
大海Power
2021/08/30
1.7K0
批量导入并整合pdf数据做分析,用Power BI小意思啦!
小勤:我们每天都能收到供应商推送的pdf格式的燃油价格文件,怎么能方便地整合到一起做数据分析啊?
大海Power
2021/08/30
2.7K0
PP-DAX入门:无动态,不智能——谈谈DAX函数的计算环境(筛选上下文)问题
小勤:BI(商务智能)到底有什么不一样啊?倒来倒去到最后不也是出一堆的图或表吗?Excel里不也可以弄吗?
大海Power
2021/08/30
1.1K0
PQ-M及函数:如何统计一行里有多少个特定数据?
小勤:在PowerQuery里,想统计一行中有多少个某个值,该怎么统计啊?比如说,我想计算一下某个商品一个月有多少天没有库存:
大海Power
2021/08/31
1.2K0
学习用Excel数据分析?恐怕还缺一本圣经。
以下内容节选自《DAX权威指南:运用Power BI、SQL Server Analysis Services和Excel实现商业智能分析》一书!
朱小五
2021/06/08
2.6K0
学习用Excel数据分析?恐怕还缺一本圣经。
PBI-基础入门:通过一个简单的案例体会Power BI的数据分析过程
大海:好吧,Power Query你学了那么多,Power Pivot也基本入门了,Power BI也可以同步开始学了,反正PQ和PP的知识除了操作上有一点点儿区别外,都是能在Power BI里直接用的。
大海Power
2021/08/30
3.8K0
快速合并多Excel表格 | 标题不在第1行?没关系!
小勤:我有一批从某个系统导出来的表,主体数据表格式完全一样,但标题行在第2行(第1行通常是空的),为什么通过Power Query合并时,有的会忽略掉第1行空行,有的又不会忽略掉?
大海Power
2021/08/31
1.1K0
PQ技巧:这个Excel表头里的日期怎么放到下面明细里的每一行?
小勤:很多Excel表里都将日期放到表头里,比如很多登记表之类的,怎么把这个日期放到下面明细表里的每一行啊?
大海Power
2021/08/31
9840
一个度量,是怎样炼成的? | DAX重要思路
前面,我在文章《DAX的核心,其实只有4个字!》里提到,DAX核心思想,就是“筛选、计算”四个字,当然,这个总结非常抽象,接下来,我会用一个又一个的例子来给大家具体讲,大家将慢慢体会到,几乎所有的度量都紧紧围绕这个思想而展开。
大海Power
2022/04/11
7080
一个度量,是怎样炼成的? | DAX重要思路
行上下文筛选函数Earlier的含义及用法
我们要添加一列上一天的金额。在Excel里面我们很容易,直接相对引用上一行的金额单元格就可以。当然因为第一天没有数值我们直接从第2个数值开始输入B2往下拖曳即可。
逍遥之
2020/03/24
1.8K0
行上下文筛选函数Earlier的含义及用法
pdf里的表格数据也能轻松汇总了!
小勤:我们每天都能收到供应商推送的pdf格式的燃油价格文件,怎么能方便地整合到一起做数据分析啊?
大海Power
2021/08/31
2.2K0
科目余额表,只取最明细一级数据?Power Query和Power Pivot两种解法!
小勤:下面这个表里是从财务系统里导出来的科目表,怎么能只保留本币里的最底层明细数据?最终本币列结果如右侧所示:
大海Power
2021/08/30
1.2K0
出现错误很抓虾?一个视频讲清楚怎么找到错误的位置、原因以及处理方式 | Power BI实战
大海:其实很简单啊,提示有错误的时候,还直接给了你链接,可以查看错误出现在哪里了:
大海Power
2023/09/09
5180
出现错误很抓虾?一个视频讲清楚怎么找到错误的位置、原因以及处理方式 | Power BI实战
如何将多项内容动态合并成一个单元格内换行显示?为什么上传到Excel却没有换行?
小勤:我有很多个人的沟通记录,怎么能够针对每个人将他们的沟通日期和沟通记录分别动态合并到一个单元格里面,并且换行显示?
大海Power
2021/08/31
1.1K0
重要!很重要!非常重要!理解PQ里的数据结构(三、跨行引用)
大海:嗯,这在Excel里处理数据的时候的确是个常见的内容,比如当前行和上一行内容的比较等,经常出现。这里我们举个例子来说明一下怎么灵活地实现引用其他行来与当前行的内容进行比较。我们先把数据放进PQ里。
大海Power
2021/08/31
8050
推荐阅读
相关推荐
PP-DAX入门:行上下文,先来了解一下简单的概念
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档