前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >函数周期表丨信息丨值丨ISONORAFTER

函数周期表丨信息丨值丨ISONORAFTER

原创
作者头像
PowerBI丨白茶
修改2021-08-31 11:15:12
5490
修改2021-08-31 11:15:12
举报
文章被收录于专栏:PowerBI

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的初学者。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档