ISONORAFTER函数
ISONORAFTER函数隶属于“信息”类函数。这个函数的出场率并不是特别高,其效果类似于Start At的行为,属于冷门函数之一。
用途:可以用来划定范围。
语法
代码语言:txt复制DAX=
ISONORAFTER(<值1>, <值2>[, 排序 [, <值1>, <值2>[, 排序]]…)
参数
值1:(可重复)与第二参数进行对比的表达式;
值2:(可重复)与第一参数进行对比的表达式;
排序:(可选项可重复)用来排序使用,DESC表示降序,ASC表示升序。
返回结果
TRUE或者FALSE
例子
输入如下代码作为模拟数据:
代码语言:txt复制日期表 =
GENERATE (
CALENDAR ( DATE ( 2018, 1, 1 ), DATE ( 2020, 12, 31 ) ),
VAR DA = [Date]
VAR YEAR =
FORMAT ( DA, "YYYY" )
VAR QUARTER =
"季度" & FORMAT ( DA, "Q" )
VAR MONTE =
FORMAT ( DA, "MM" ) & "月"
VAR DAY =
DAY ( DA )
VAR WEEKID =
WEEKDAY ( DA, 2 )
VAR YOU =
YEAR ( DA )
VAR TOL =
FORMAT ( DA, "MM" )
VAR TPO =
FORMAT ( DA, "DD" )
VAR YEARR =
FORMAT ( DA, "YYYYMM" )
RETURN
ROW (
"年度", YEAR,
"季度", QUARTER,
"月份", MONTE,
"日", DAY,
"年度季度", YEAR & QUARTER,
"年度月份", YEAR & MONTE,
"星期", WEEKID,
"索引", YOU & TOL & TPO,
"年月", VALUE ( YEARR )
)
)
如图:
例子1:
代码语言:txt复制ISONORAFTER例子1 =
FILTER ( '日期表', ISONORAFTER ( '日期表'[年度], "2019", DESC ) )
结果:
按照降序的结果,返回为2018年到2019年的所有数据。
其实,白茶不太喜欢官方的描述,因为不好理解,按照白茶个人的理解就是寻找一个点,降序就是取这个点前半部分的值,升序就是取后半部分的值。
微软官方解释:
升序是筛选第一参数大于等于第二参数的值;
降序是筛选第一参数小于等于第二参数的值。
例子2:
代码1:
代码语言:txt复制ISONORAFTER例子2 =
VAR TL =
SUMMARIZE ( '日期表', '日期表'[年度], '日期表'[月份], '日期表'[日], '日期表'[索引] )
RETURN
FILTER ( TL, ISONORAFTER ( [年度], "2019", ASC, [月份], "04月", ASC ) )
结果:
当出现两组比较值的情况下,这个结果看起来比较迷,别急,我们再输入一组代码。
代码2:
代码语言:txt复制ISONORAFTER例子3 =
VAR TL =
SUMMARIZE ( '日期表', '日期表'[年度], '日期表'[月份], '日期表'[日], '日期表'[索引] )
RETURN
FILTER ( TL, ISONORAFTER ( [年度], "2019", ASC, [月份], "04月", DESC ) )
结果:
这段代码返回结果是2019年1-4月,以及2020年的数据。
看到这,小伙伴们是不是很迷?
别急,听白茶慢慢叨叨。
可能小伙伴们觉得返回结果应该是只有2019年1-4月的数据,而不是包含2020年的数据;
这样和白茶最初的理解差不多,觉得这个函数是类似于AND的效果,当二者都正确时返回TRUE,但是这个函数不是这样的。
先来看看例子2中的代码1:
白茶将这段代码拆分成两部分:
在1这段代码中,返回结果应该是按照升序排列的结果,也就是2019年到2020年的数据;
2这段代码返回的结果是按照升序的结果,返回的是4月之后的数据;
先排序,再查找,在2019年至2020年这个时间段中,2019年四月份为节点,那么返回结果就是2019年4月至2020年的所有数据。
再来看例子2中的代码:
依旧将其拆分成两部分:
1的结果返回为2019年至2020年的数据;
2的结果返回为2019年4月至2018年1月的数据,不包含2019年4月之后的数据;
粉色和白色的线代表1的结果,黄线代表2的结果。
当1和2有交集的时候,那么这段数据算在内,也就是2019年1月至2019年4月的数据,即正 正=正;
在1部分中,包含2019年4月至2019年12月,而2不包含这个时间段这部分数据,正 负=负,结果为负,因此这段时间省略不计;
从2020年1月开始的这段时间,包含在1中,而2的结果没有计算这一部分,因此只有正,所以2020年计算在内,因此返回结果为2019年1月到4月加上2020年全年的这部分数据。
小伙伴们❤GET了么?
白茶会不定期的分享一些函数卡片
(文件在知识星球PowerBI丨需求圈)
这里是白茶,一个PowerBI的初学者。