数据可视化之DAX篇(四) 熟练使用EARLIER函数,轻松获取当前行信息
https://zhuanlan.zhihu.com/p/64400583
前面利用PowerBI做数据分析的时候都是对整列的字段进行操作,并没有做更细化的分析,比如分析数据的每一行、提取某一行的数据,这在Excel中很容易实现,因为Excel公式是对单元格操作。那么在PowerBI中能不能按行分析呢,答案当然是肯定的,并且比Excel更加灵活,借助这个函数:EARLIER
.
EARLIER语法
EARLIER(<column>, <number>)
- 第一个参数是列名
- 第二个参数一般可省略
- EARLIER函数提取本行对应的该列的值,实际上就是提取本行和参数列交叉的单元格
这个函数是指定行上下文重要工具,下面靠几个实例来理解这个函数。
EARLIER应用实例
有一张订单表:

利用EARLIER做以下几种分析:
01 | 求两个订单的时间间隔
相当于用下一个订单的日期减去当前订单的日期,为了相减的方便,新建列[下个订单日期],先把下一行的订单日期提取过来,输入DAX公式:
= SUMX(FILTER('订单表','订单表'[序号]=
EARLIER('订单表'[序号])+1),
'订单表'[订单日期])
这个公式的意思是,利用EARLIER获取当前行的序号,然后找到当前序号+1的那一行的订单日期,结果如下,

然后新建一列,用两列日期相减得到间隔的天数,
间隔 = IF([下个订单日期]=BLANK(),
BLANK(),
[下个订单日期]-[订单日期])
这里用IF判断主要因为最后一列为空值,避免出现不合理的数值,

02 | 求每个订单日期的累计销售金额
新建列[累计销售额],
= SUMX (FILTER('订单表','订单表'[序号]<=EARLIER('订单表'[序号])),
'订单表'[销售金额])

利用EARLIER求当前行的序号,然后把小于等于当前序号的所有行的销售额累加。
03 | 求截至目前订单,每种产品的销量
新建列[产品累计销量],
= SUMX(FILTER(
'订单表','订单表'[序号]<=EARLIER('订单表'[序号])
&&'订单表'[产品名称]=EARLIER('订单表'[产品名称])),
'订单表'[销售数量])
不仅利用EARLIER筛选小于当前行的序号,还利用它求得当前行的产品名称,然后同时符合这两个条件的销量才累加,结果正是我们期望的,

以上几个实例都是先获得本行的记录,然后做各种聚合预算,本行的记录可以称为行上下文,EARLIER函数正是获取行上下文的最好工具之一。
数据可视化之DAX篇(四) 熟练使用EARLIER函数,轻松获取当前行信息的更多相关文章
- 数据可视化之DAX篇(十四)DAX函数:RELATED和RELATEDTABLE
https://zhuanlan.zhihu.com/p/64421378 Excel中知名度最高的函数当属VLOOKUP,它的确很有用,可以在两个表之间进行匹配数据,使工作效率大大提升,虽然它也有很 ...
- 数据可视化之DAX篇(十九)值得你深入了解的函数:SUMMARIZE
https://zhuanlan.zhihu.com/p/66424209 SUMMARIZE函数非常强大,掌握以后表面上看也非常好用,所以我专门写篇文章介绍一下这个函数,至于是否一定要使用该函数,请 ...
- 数据可视化之DAX篇(十六)如何快速理解一个复杂的DAX?这个方法告诉你
https://zhuanlan.zhihu.com/p/64422393 经常有朋友提出一个问题,然后我给出一个DAX之后,TA又不是很理解,反复多次沟通才能把一个表达式讲清楚.或者TA自己写了一个 ...
- 数据可视化之DAX篇(十)在PowerBI中累计求和的两种方式
https://zhuanlan.zhihu.com/p/64418286 假设有一组数据, 已知每一个产品贡献的利润,如果要计算前几名产品的贡献利润总和,或者每一个产品和利润更高产品的累计贡献占总体 ...
- 数据可视化之DAX篇(八) DAX学习:使用VAR定义变量
https://zhuanlan.zhihu.com/p/64414205 前面介绍如何使用DAX生成日期表的时候,使用了VAR,有人留言问这个VAR怎么理解,那么这篇文章就来介绍VAR以及它的用法. ...
- 数据可视化之DAX篇(五) 使用PowerBI的这两个函数,灵活计算各种占比
https://zhuanlan.zhihu.com/p/57861350 计算个体占总体的比例是一个很常见的分析方式,它很简单,就是两个数字相除,但是当需要计算的维度.总体的范围发生动态变化时,如何 ...
- 数据可视化之DAX篇(十五)Power BI按表筛选的思路
https://zhuanlan.zhihu.com/p/121773967 数据分析就是筛选.分组.聚合的过程,关于筛选,可以按一个维度来筛选,也可以按多个维度筛选,还有种常见的方式是,利用几个特 ...
- 数据可视化之DAX篇(十二)掌握时间智能函数,同比环比各种比,轻松搞定!
https://zhuanlan.zhihu.com/p/55841964 时间可以说是数据分析中最常用的独立变量,工作中也常常会遇到对时间数据的对比分析.假设要计算上年同期的销量,在PowerBI中 ...
- 数据可视化之DAX篇(十八)收藏 | DAX代码格式指南
https://zhuanlan.zhihu.com/p/64422599 为什么要进行格式化? DAX 是一种函数式语言,正如我们已经学习的或者看到的,DAX 代码中总有一些函数带有几个参数,而参数 ...
随机推荐
- [CF453D]Little Pony and Elements of Harmony
题目 点这里看题目. 分析 设\(count(x)\)为\(x\)的二进制中\(1\)的个数.因此\(f(u,v)=count(u\oplus v)\) 看一看每次转移,我们发现最不友好的 ...
- @bzoj - 5104@ Fib数列
目录 @description@ @solution@ @accepted code@ @details@ @description@ Fib数列为1,1,2,3,5,8... 求在Mod10^9+9 ...
- 多线程高并发编程(10) -- ConcurrentHashMap源码分析
一.背景 前文讲了HashMap的源码分析,从中可以看到下面的问题: HashMap的put/remove方法不是线程安全的,如果在多线程并发环境下,使用synchronized进行加锁,会导致效率低 ...
- VS Code项目中通过npm包的方式共享代码片段的方案实现
VS Code项目中通过npm包的方式共享代码片段的方案实现 上周在 "VS Code项目中共享自定义的代码片段方案" 的文章中提到过一个共享代码片段的方案,上周经过调研后并没有发 ...
- python下载及安装步骤
Python安装 1.浏览器打开网址:www.python.org 2.根据电脑系统选择下载 3.确定电脑系统属性,此处我们以win10的64位操作系统为例 4.安装python 3.6.3 双击下载 ...
- Elasticsearch去重查询/过滤重复数据(聚合)
带家好,我是马儿,这次来讲一下最近遇到的一个问题 我司某个环境的es中被导入了重复数据,导致查询的时候会出现一些重复数据,所以要我们几个开发想一些解决方案,我们聊了聊,相出了下面一些方案: 1.从源头 ...
- cb24a_c++_STL算法简介
算法概述 算法部分主要由头文件<algorithm>,<numeric>和<functional>组成. <algorithm>是所有STL ...
- 基于SSM框架的新生报到可视化系统
1.本课题的目的及意义 新生报到数据一直是困扰着各大高校的管理性问题,人数多.工作量大,这无疑是一个挑战,也因此加快了高校的信息化建设步伐.随着互联网的普及与发展,日常生活中人们接触到的数据正以惊人的 ...
- ABP(ASP.NET Boilerplate Project)快速入门
前言 这两天看了一下ABP,做个简单的学习记录.记录主要有以下内容: 从官网创建并下载项目(.net core 3.x + vue) 项目在本地成功运行 新增实体并映射到数据库 完成对新增实体的基本增 ...
- fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommended.
说了原因,下面是修改方法,就是在stdafx.h文件中修改相关的定义,修改完后的效果应该如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #ifndef WINVER ...