有一张订单表:
利用 EARLIER 做以下几种分析:
1.求两个订单的时间间隔:下一个订单的日期减去当前订单的日期
步骤1:新建列[下个订单日期],先把下一行的订单日期提取过来,输入 DAX 公式:
= SUMX(FILTER(‘订单表’,‘订单表’[序号]=
EARLIER(‘订单表’[序号])+1),
‘订单表’[订单日期])
理解:利用 EARLIER 获取当前行的序号,然后找到当前序号+1 的那一行的订单日期,先获得本行的记录,然后做各种聚合预算,本行的记录可以称为行上下文
结果:
步骤2:新建一列,用两列日期相减得到间隔的天数:
间隔 = IF([下个订单日期]=BLANK(),
BLANK(),
[下个订单日期]-[订单日期])
理解:这里用 IF 判断主要因为最后一列为空值,避免出现不合理的数值
结果:
2.求每个订单日期的累计销售金额:
步骤1:新建列[累计销售额],
= SUMX (FILTER(‘订单表’,‘订单表’[序号]<=EARLIER(‘订单表’[序号])),
‘订单表’[销售金额])
理解:利用 EARLIER 求当前行的序号,然后把小于等于当前序号的所有行的销售额累加,先获得本行的记录,然后做各种聚合预算,本行的记录可以称为行上下文
结果:
3.求截至目前订单,每种产品的销量:
步骤1:新建列[产品累计销量],
= SUMX(FILTER(
‘订单表’,‘订单表’[序号]<=EARLIER(‘订单表’[序号])
&&‘订单表’[产品名称]=EARLIER(‘订单表’[产品名称])),
‘订单表’[销售数量])
理解:不仅利用 EARLIER 筛选小于当前行的序号,还利用它求得当前行的产品名称,然后同时符合这两个条件的销量才累加,先获得本行的记录,然后做各种聚合预算,本行的记录可以称为行上下文
本课程是
Power
BI
系列课程之DAX
函数
专题讲解,包含以下内容 1. DAX
函数
基础知识什么是DAX
函数
数学
函数
:ABS、DIVIDE、MOD、RAND、ROUND、FIXED等日期和时间
函数
: CALENDAR、CALENDARAUTO、MONTH、Y
EAR
、DATE、DT等信息
函数
:USERNAME、USERPRINCIPALNAME、HASONEFILTER、HASONEVALUE、ISFILTERED、ISCROSSFILTERED、ISINSCOPE、ISBLANK、SELECTEDMEASURE、SELECTEDMEASURENAME等逻辑
函数
:AND、OR、IF、IFERROR、SWITCH、TRUE、FALSE、COALESCE(官方文档含糊不清-结合实例)等关系
函数
:CROSSFILTER、RELATED、RELATEDTABLE等筛选器
函数
:FILTER、CALCULATE、ALL、ALLEXCEPT、ALLSELECTED、
EAR
LIER
、KEEPFILTERS、REMOVEFILTERS、SELECTEDVALUE、LOOKUPVALUE等父子
函数
:PATH、PATHCONTAINS、PATHITEM、PATHLENGTH等统计
函数
:AVERAGE、COUNT、MAX、MIN、SUM等迭代统计
函数
:AVERAGEX、COUNTX、MAXX、MINX、SUMX、RANKX等表
函数
: FILTERS 、ADDCOLUMNS、 SELECTCOLUMNS、 CROSSJOIN、 EXCEPT、 GENERATE、 GROUPBY、 SUMMARIZE、 SUMMARIZECOLUMNS、 TOPN、 TREATAS、 UNION、 VALUES、DISTINCT、DATATABLE、NATUALINNERJOIN、NATRUALLEFTOUTERJOIN等文本
函数
: EXACT、MID、 FIND、 LEN、 REPT、 LOWER、 UPPER、 UNICHAR等时间智能
函数
:DATEADD、DATESMTD、FIRSTDATE、LASTDATE、SAMEPERIODLASTY
EAR
等财务
函数
:2020.7之后发布的,和Excel中财务
函数
相似,网页和demo p
bi
x简单介绍其他
函数
:BLANK、ERROR、IFERROR等 DAX
函数
初体验:Max、Sum、Divide、if、Values等值
函数
表
函数
以及表和列的概念DAX
函数
术语、语法、运算符DAX运算符和引擎中字母大小写问题DAX编程注释和快捷键DAX与Excel
函数
的共同点和区别(PPT)DAX、xmSQL与SQL表达式的区别(PPT)DAX
函数
的自学途径 2.
Power
BI
中数据建模知识维度建模关系传递和交叉筛选器方向-理解表关系(1v1, 1vM, Mv1,MvM)两个方向上应用安全筛选器关闭关系自动检测新建计算列新建度量值新建计算表:辅助表(五种方式)、日历表数据类型讲解数据格式控制:%、$、千位分隔符、小数位、日期格式Format
函数
自定义数据格式Convert
函数
做数据类型转换解决中文数字单位 万 的显示问题Date和DT
函数
定义固定日期值显示和隐藏列DAX代码分析器阅读DAX表达式方法:从上至下、由内到外(注意Calculate的计算顺序)调试DAX表达式方法:分布输出或VAR输出3. DAX
函数
原理 Vertipaq列式数据库原理理解度量值和计算列理解行上下文和筛选上下文:Calculate示意图行上下文中使用VAR替代
EAR
LIER
VAR变量在定义时的上下文中计算VAR变量是采用惰性计算(使用时计算)理解扩展表和RELATED
函数
理解数据沿袭Lineage 4. 开始感知DAX
函数
的强大DAX
函数
实现特殊符号的使用DAX
函数
实现切片器默认当前月或天DAX
函数
使切片器默认代表无任何选择DAX
函数
使切片器仅显示有数据的选项DAX
函数
使切片器反向筛选和计算DAX
函数
使切片器之间取并集DAX
函数
使关系中多端的切片器筛选一端的切片器 DAX
函数
实现年月共同决定数据排序DAX
函数
实现动态图表标题DAX
函数
实现动态图表配色和图标DAX
函数
实现动态纵坐标DAX
函数
实现动态横坐标5. 理解重点DAX
函数
重中之重FILTER 和 CALCULATE和CALCULATETABLE详解调节器REMOVEFILTERS和ALL、ALLEXCEPT
函数
调节器ALL、ALLSELECTED和ISINSCOPE占比分析调节器AllSELECTED和KEEPFILTERS的比较调节器USERELATIONSHIP激活关系调节器TREATAS动态建立关系调节器CROSSFILTER改变筛选器方向重点之ISFILTERED和ISCROSSFILTERED重点之HASONEVALUE和ISINSCOPE的区别重点之表
函数
SELECTEDCOLUMNS和ADDCOLUMNS重点之表
函数
NATUALINNERJOIN和NATRUALLEFTOUTERJOIN重点之表
函数
FILTERS和VALUES比较重点之VALUES和DISTINCT的区别重点之分组
函数
SUMMARIZECOLUMNS详解重点之
函数
LOOKUPVALUE vs RELATED vs VLOOKUP 重点之集合
函数
UNION、INTERSECT、EXCEPT重点之集合
函数
CROSSJOIN和GENERATE 笛卡尔积重点之值合并、列合并、表合并CONCATENATEX重点之BLANK行产生的原因和BLANK相关
函数
重点之COALESCE
函数
处理空重点之FIRSTNOBLANK和FIRSTNOBLANKVALUE
函数
重点之使用VAR变量表中的列重点之Error和IfError
函数
6. 实际案例-日期时间和时间智能相关关键点-日期表和事实表关联问题时间智能-同比环比分析时间智能-累计聚合、滚动聚合、移动平均时间智能-期初期末库存分析日期分析-计算任意所选月份的环比日期分析-周的同比环比和周聚合日期分析-指定月份的同比环比和季度环比日期分析-计算季末或季末月份的数据日期分析-趋势图中根据最近月份取TopN日期分析-动态指定某个日期区间分析日期分析-动态任意区间段做数据对比日期分析-实现两个日期列的范围筛选日期分析-按工作日计算日期差日期分析-计算最近两次购买日期差日期分析-根据历史数据做销售预测日期时间
函数
和时间智能
函数
使用总结7. 实际案例-DAX
函数
进阶进阶-解决列排序对计算的影响进阶-实现切片器筛选之间的OR逻辑进阶-矩阵Matrix中高亮显示最大值最小值进阶-DAX列转行 vs 矩阵列转行和逆透视进阶-非日期类型的累计聚合进阶-排名逻辑的4种实现-RANKX详解进阶-分组内排名的实现和理解迭代
函数
进阶-TopN/BottomN和Others的实现进阶-TopN中实现动态指标进阶-TopN中实现N的动态进阶-分组内动态TopN和Others 进阶-商品折上折-迭代
函数
SUMX详解 进阶-分析客户购买行为进阶-找出无购买行为的客户进阶-客户购买商品关联度分析 进阶-新客户分析进阶-流失客户分析进阶-回流客户分析进阶-客户购买频次和区间分析进阶-RFM客户价值分析进阶-帕累托分析进阶-盈亏平衡分析报表性能优化思路(PPT)
度量值概念
度量值就是对表中数据求和、最大、平均等。如果想获取所有销售数量的最大、最小,在Excel中也非常方便来做,但是如果想获取某天销售额的最大、最小,就不是很方便了,可以使用
Power
BI
。
创建度量值
度量值一般都放到一张表中。
点击【输入数据】,将表名称修改为度量值,则在字段菜单可以看到有一
函数
作用:返回提及的列的外部计算传递中指定列的当前值,能够定位每个当前的单元格。
应用场景:在想要使用某个值作为输入并且基于该输入进行计算的嵌套计算中,
EAR
LIER
会很有用。简单来说,
EAR
LIER
函数
与FLITER
函数
组合可以实现类似于循环计算的功能。
特别注意点:
EAR
LIER
()
函数
一般用于生成新的列,而非用于度量值的建立。
示例1:用来确定表一中每个人的分数排在第几。表格如下,新建列,
感谢微信公众号:
power
bi
星球.本文的案例来源于
power
bi
星球,我在这里结合
power
bi
星球对于
ear
lier
函数
的讲解,融合了我自己对于
ear
lier
函数
的理解,希望用更傻瓜的方式来讲解
ear
lier
函数
.
Ear
lier
函数
之累计求和、累计百分比
帕累托法则往往称为二八原理,即百分之八十的问题是百分之二十的原因所造成的。在帕累托图中,不同类别的数据根据其频率降序排列的,并在同一张图中画出累积百分比图。帕累托图可以体现帕累托原则:数据的绝大部分存在于很少类别中,极少剩下的数据分散在大部分类别中。这两组经常被...
想知道某一段时间内某产品或者某类别的销售贡献。
品类的管理
等等,这些的分析维度里都可以涉及到累计销售这一概念,那么再
power
bi
里如何求得累计销售呢?以下为常用到的两个方法利用
ear
lier
函数
和dax计算得出
初学
power
bi
的同学可以考虑使用方法一,简单并且容易理解。
方法一
利用
ear
lier
函数
利用行上下文嵌套做出相互对应的筛选
引用@
Power
Query的例子并给予个人理解
X1= SUMX(FILTER('Data','Data'[订单日期]>
EAR
LIER
('Data'[订单日期])),[金额])---WRONG
X2=CALCULATE(SUM(Data[金额]),FILTER(Data,SUMX(FILTER('Data','Data'[订单日期]>
EAR
LIER
('Data'[订单日期])),[金额])))---RIGHT
X1报错原因:表被扫描前没有创建行上下文。当
EAR
LIER
/
EAR
LIEST
函数
前面利用
Power
BI
做
数据分析
的时候都是对整列的字段进行
操作
,并没有做更细化的分析,比如分析数据的每一行、提取某一行的数据,这在Excel中很容易实现,因为Excel公式是对单元格
操作
。那么在
Power
BI
中能不能按行分析呢,答案当然是肯定的,并且比Excel更加灵活,借助这个
函数
:
EAR
LIER
.
EAR
LIER
语法
EAR
LIER
(<column>, <number>)第...