美文网首页BI学习笔记
BI技巧丨判定0与空

BI技巧丨判定0与空

作者: Fabric丨白茶 | 来源:发表于2021-10-24 13:11 被阅读0次

BOSS:那个谁!白茶啊,过来过来,有个需求和你说一下!
白茶:(黑人问号?)咋了,BOSS?
BOSS:是这样的,我们在十一期间啊,售卖了一部分商品,但是部分商品有些特殊,一部分销售金额为空,这个我们在计算毛利的时候需要让它成本乘以1.5;一部分商品的销售金额为0,这个计算毛利的时候统一显示为0.01,能处理不?
白茶:(????)BOSS,能到是能,介个是啥算法?
BOSS:别问太多,问就是公司业务!
白茶:哦,了解!

常规情况下,我们去衡量数据质量的时候,往往会在意有数值的数据,但是在实际业务中,特别是偏向于财务的算法中,0和空有些时候也是一个比较重要的计算依据。

先来看看本期的案例数据:

数据比较简单,只有6列,通过截图我们可以看到部分数据的销售金额为0,部分为空,但是却有成本,有数量。

正常情况下我们计算只需要考虑销售金额不为空的数据就可以,但是实际业务可能存在调拨库存、赠品销售的情况。

因此有些时候我们在偏向于财务场景应用的时候,就需要我们考量到这种情况,在PowerBI中如何区分0与空呢?

我们在PowerBI中通过Filter函数来筛选一下看看。

代码:

筛选0 =
FILTER ( 'Data', 'Data'[SalesAmt] = 0 )

可以看到,虽然我们通过Filter函数进行了0的筛选,但是实际出来的结果依然是包含空的情况。我们继续筛选一下空值看一下。

代码;

筛选空 =
FILTER ( 'Data', 'Data'[SalesAmt] = BLANK() )

结果同上,依然没有其他变化。

小伙伴可以思考一下,这个问题该如何解决?
3
2
1
...

解决的办法有两种:严格相等与ISBLANK。

严格相等:

通常情况下我们使用的都是相等运算符,这种情况下我们可以使用严格相等来区分0与空。

代码:

严格筛选0 =
FILTER ( 'Data', 'Data'[SalesAmt] == 0 )

代码:

严格筛选空 =
FILTER ( 'Data', 'Data'[SalesAmt] == BLANK() )

ISBLANK:

ISBLANK可以识别空。

代码:

ISBLANK筛选0 =
FILTER ( 'Data', NOT ISBLANK ( 'Data'[SalesAmt] ) && 'Data'[SalesAmt] = 0 )

代码:

ISBLANK筛选空 =
FILTER ( 'Data', ISBLANK ( 'Data'[SalesAmt] ) )

所以,我们可以通过这两种处理办法来完成BOSS最开始提到的需求。

一部分销售金额为空,这个我们在计算毛利的时候需要让它成本乘以1.5;
一部分商品的销售金额为0,这个计算毛利的时候统一显示为0.01。

毛利1:

  毛利1 =
VAR AMT =
    SUM ( 'Data'[SalesAmt] )
VAR COST =
    SUMX ( 'Data', [Cost] * [Quantity] )
VAR Result =
    SWITCH (
        TRUE (),
        AMT == BLANK (),
            AMT - COST * 1.5,
        AMT == 0, 0.01,
        AMT - COST
    )
RETURN
    Result

结果如下:

毛利2:

 毛利2 =
VAR AMT =
    SUM ( 'Data'[SalesAmt] )
VAR COST =
    SUMX ( 'Data', [Cost] * [Quantity] )
VAR Result =
    SWITCH ( TRUE (), ISBLANK ( AMT ), AMT - COST * 1.5, AMT = 0, 0.01, AMT - COST )
RETURN
    Result

结果如下:

小伙伴们❤GET了么?
(BOSS:可以可以!)

这里是白茶,一个PowerBI的初学者。


相关文章

  • BI技巧丨判定0与空

    BOSS:那个谁!白茶啊,过来过来,有个需求和你说一下!白茶:(黑人问号?)咋了,BOSS?BOSS:是这样的,我...

  • BI技巧丨RankxYoY

    群友:PowerBI可以实现两年的排名差异么?白茶:可以!安排! 本期的问题,来自于群内小伙伴的一个实际应用场景。...

  • String to Integer (atoi)

    /* 判定是否为空 trim 后是否长度为0 开始字符如果不是数字或者符号 return 0; sign = 1;...

  • BI技巧丨均值之上

    BOSS:白茶呢?!今天没来么?同事:来了啊,老板,不过你上次不是罚他扫厕所么?厕所了!BOSS:哎哟!这个时候扫...

  • BI技巧丨粒度切换

    白茶在很久之前,写过关于笛卡尔积的两个函数。 GENERATE函数与CROSSJOIN函数。 传送门:《笛卡尔积》...

  • BI技巧丨权限轴

    BOSS:(愁眉苦脸)白茶呢?同事:(推一推)醒醒,白茶,BOSS喊你!白茶:(一脸懵)咋了,老板?BOSS:(一...

  • BI技巧丨当月期初

    最近在群里,小伙伴提出了一个有意思的算法逻辑,决定分享给大家。 先来看看本期的案例数据: 如图,数据相对而言比较简...

  • BI技巧丨权限下载

    BOSS:白茶,问你个事,就是报表的下载权限,这个能控制不?白茶:可以啊,老板,工作区限制成员身份就可以啊。BOS...

  • BI技巧丨筛选重置

    在开发的过程中,用户最喜欢,最习惯看的,还是类似于Excel形式的明细表格。 执行层用户需要的,往往是一张Deta...

  • BI技巧丨财务累计

    日常使用PowerBI制作看板过程中,往往需要我们在看板的第一浏览区将用户最关注的核心指标呈现出来。白茶在之前的文...

网友评论

    本文标题:BI技巧丨判定0与空

    本文链接:https://www.haomeiwen.com/subject/aqtroltx.html