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函数,轻松获取当前行信息的更多相关文章

  1. 数据可视化之DAX篇(十四)DAX函数:RELATED和RELATEDTABLE

    https://zhuanlan.zhihu.com/p/64421378 Excel中知名度最高的函数当属VLOOKUP,它的确很有用,可以在两个表之间进行匹配数据,使工作效率大大提升,虽然它也有很 ...

  2. 数据可视化之DAX篇(十九)值得你深入了解的函数:SUMMARIZE

    https://zhuanlan.zhihu.com/p/66424209 SUMMARIZE函数非常强大,掌握以后表面上看也非常好用,所以我专门写篇文章介绍一下这个函数,至于是否一定要使用该函数,请 ...

  3. 数据可视化之DAX篇(十六)如何快速理解一个复杂的DAX?这个方法告诉你

    https://zhuanlan.zhihu.com/p/64422393 经常有朋友提出一个问题,然后我给出一个DAX之后,TA又不是很理解,反复多次沟通才能把一个表达式讲清楚.或者TA自己写了一个 ...

  4. 数据可视化之DAX篇(十)在PowerBI中累计求和的两种方式

    https://zhuanlan.zhihu.com/p/64418286 假设有一组数据, 已知每一个产品贡献的利润,如果要计算前几名产品的贡献利润总和,或者每一个产品和利润更高产品的累计贡献占总体 ...

  5. 数据可视化之DAX篇(八) DAX学习:使用VAR定义变量

    https://zhuanlan.zhihu.com/p/64414205 前面介绍如何使用DAX生成日期表的时候,使用了VAR,有人留言问这个VAR怎么理解,那么这篇文章就来介绍VAR以及它的用法. ...

  6. 数据可视化之DAX篇(五) 使用PowerBI的这两个函数,灵活计算各种占比

    https://zhuanlan.zhihu.com/p/57861350 计算个体占总体的比例是一个很常见的分析方式,它很简单,就是两个数字相除,但是当需要计算的维度.总体的范围发生动态变化时,如何 ...

  7. 数据可视化之DAX篇(十五)Power BI按表筛选的思路

    https://zhuanlan.zhihu.com/p/121773967 ​数据分析就是筛选.分组.聚合的过程,关于筛选,可以按一个维度来筛选,也可以按多个维度筛选,还有种常见的方式是,利用几个特 ...

  8. 数据可视化之DAX篇(十二)掌握时间智能函数,同比环比各种比,轻松搞定!

    https://zhuanlan.zhihu.com/p/55841964 时间可以说是数据分析中最常用的独立变量,工作中也常常会遇到对时间数据的对比分析.假设要计算上年同期的销量,在PowerBI中 ...

  9. 数据可视化之DAX篇(十八)收藏 | DAX代码格式指南

    https://zhuanlan.zhihu.com/p/64422599 为什么要进行格式化? DAX 是一种函数式语言,正如我们已经学习的或者看到的,DAX 代码中总有一些函数带有几个参数,而参数 ...

随机推荐

  1. DML_Modifying Data Through Table Expressions_UPDATE

    DML_Modifying Data Through Table Expressions_UPDATE之前也学习过使用CTE,再来泛泛的学习下,最后将会将一些书籍上或学习到的CTE来个小结 /* Mi ...

  2. SQL Beautifier & SQL2014自带的格式化工具

    格式化工具(希望有几款集成在IDE中的格式化工具)为什么要说明这些,不是为说明这个工具而发,看到那几千行或集成在一起的存储过程觉得乱七八的不爽,后面将会强力训练下自己. --下面这款SQL Beaut ...

  3. ca33a_demo_c++_新旧代码的兼容char数组与vector_string相互转换

    /*ca33a_demo_c++33_CppPrimer_新旧代码的兼容_txwtech旧代码:数组和c风格字符串新代码:vector和string相互转换:c风格字符串<- ->stri ...

  4. 认证授权方案之JwtBearer认证

    1.前言 回顾:认证方案之初步认识JWT 在现代Web应用程序中,即分为前端与后端两大部分.当前前后端的趋势日益剧增,前端设备(手机.平板.电脑.及其他设备)层出不穷.因此,为了方便满足前端设备与后端 ...

  5. class 类组件:

    ES6  中的class 类组件: // class 关键字:确定一个类型student以类的概念存在 class student{ //构造函数 是默认自动执行 // 初始化 name age 属性 ...

  6. Git配置仓库的用户名邮箱

    Git配置单个仓库的用户名邮箱 $ git config user.name "gitlab's Name" $ git config user.email "gitla ...

  7. 谈谈spring-boot-starter-data-redis序列化

    在上一篇中springboot 2.X 集成redis中提到了在spring-boot-starter-data-redis中使用JdkSerializationRedisSerializerl来实现 ...

  8. JavaScript DOM 注册事件

    一个HTML是一个DOM树,每一个节点都是DOM对象,整个HTML其实也是一个DOM对象,根节点是<html>; 在HTML页面初始化的时候,JavaScript会自动帮DOM对象注册消息 ...

  9. yum 安装JDK

    系统:CentOS 7 查看当前系统是否已安装JDK yum list installed |grep java 如果没有就选择yum库中的包进行安装,查看yum库中JDK列表 yum -y list ...

  10. SpringCloud之初识Feign

    在前面的学习中,我们使用了Ribbon的负载均衡功能,大大简化了远程调用时的代码: String baseUrl = "http://user-service/user/"; Us ...