美文网首页PowerBI专栏PL/SQL
Calculate的最佳搭档:Filter | PowerBI星

Calculate的最佳搭档:Filter | PowerBI星

作者: PowerBI星球 | 来源:发表于2018-03-15 09:28 被阅读204次

介绍过CALCULATE函数之后,有必要再介绍它的最佳搭档:FILTER函数。

CALCULATE函数的第二个及之后的参数是筛选条件,而FILTER函数正是为筛选而生。

FILTER语法

FILTER(,)

第一个参数是要筛选的表

第二个参数是筛选条件

返回的是一张表,不能单独使用,需要与其他函数结合使用

FILTER应用

前一篇文章中介绍CALCULATE的时候,没有使用FILTER函数也实现了筛选,你可能会问,既然不用FILTER函数也可以,为什么还要使用FILTER呢?

那是因为前文中的筛选条件都是最简单的筛选,没有必要使用强大的FILTER,其实用FILTER也是可以实现的,比如这个度量值[产品数量2],

= CALCULATE([产品数量],'产品明细'[品牌]="苹果")

等同于:

= CALCULATE([产品数量],

                         FILTER(ALL('产品明细'[品牌]),

                                      '产品明细'[品牌]="苹果"))

这两种方式返回的结果完全一致。

在这个简单的例子里看起来好像用FILTER写起来更复杂,不用FILTER的情况下显得更简洁,但是如果我们要做更复杂的运算,通过简单的布尔表达式根本无法实现,必须借助FILTER。

依然用介绍度量值的那篇文章中的案例数据(可点击阅读原文查看),有这6张表,

现在想找出年销售额超过2000万的城市销售金额,这个利用简单的表达式已无法解决,来看FILTER如何实现。

第一个度量值还是之间建好的,

销售总额 = sum('销售明细'[销售额])

再建一个度量值[大于2000万的城市销售金额],

= CALCULATE([销售总额],

                        FILTER(ALL('门店城市'),

                                     [销售总额]>20000000))

这个度量值先利用FILTER函数,筛选出销售大于2000万的城市有哪几个,然后再汇总这些城市的销售额,返回结果如下,

超过2000万销售额的城市的销售额总计等于451026000,但发现上面明细的两个数字之和并不等于总计,这正是PowerBI中数据模型的特点,在这个表格中,每个数据都是独立运算的,和其他数字没有关系。

上面两个数字代表的是,在销售额超过2000万的城市中,单个产品的销售额也大于2000万的只有苹果电脑和苹果手机。

为什么会有产品的销售额也大于2000万这个筛选条件呢,不要忘了还有外部的筛选上下文,在这个表中即是行标签,这两个数字正是内部上下文和外部上下文相结合,筛选计算的结果。

这就是FILTER的一个简单应用,这里要特别记住这个函数嵌套组合,

CALCULATE(…,FILTER(ALL(…),…))

做各种分析时会经常用到这个组合。

关于上面例子中合计金额不等于上面数据之和,虽然在PowerBI中很正常,但按通常理解的习惯,容易引起误导,这也有解决的办法,下篇文章介绍两个新函数来解决它。

微信公众号:PowerBI星球

相关文章

  • Calculate的最佳搭档:Filter | PowerBI星

    介绍过CALCULATE函数之后,有必要再介绍它的最佳搭档:FILTER函数。 CALCULATE函数的第二个及之...

  • Power BI |DAX函数のCALCULATE函数和Filt

    CALCULATE 语法结构: CALCULATE(,,

  • DAX--CALCULATE函数的运行机制

    一.CALCULATE语法如下:CALCULATE( , ,

  • Power BI 的第一性原理

    Power BI = 筛子 + 计算器 典型应用组合:CALCULATE + FILTER

  • PowerBI DAX CALCULATE/SUM/COUNT/

    SUM CALCULATE(SUM...) COUNT 4.COUNTROWS COUNTBLANK 计算空值的个数

  • 最佳搭档

    和文友聊天,谈论起了婚姻问题,颇多感慨。 …… 友:你那孩子爸娶了你,可真是赚了 我:是拣了个便宜 友:也许是他们...

  • 最佳搭档

    和文友聊天,谈论起了婚姻问题,颇多感慨。 …… 友:你那孩子爸娶了你,可真是赚了 我:应该是 友:也许是他们祖上积...

  • 最佳搭档

    “感觉你们这边的班上得有点欢乐哈”,路过我值班病区的同事开玩笑地说出了这句话。听完之后,我与搭班的同事哈哈一笑,算...

  • 最佳搭档

    昨日下午与两个朋友带着孩子到海边玩水、烧烤。 按照惯例,食材还是由G准备。于是,她一大早就上市场张罗,采购...

  • PowerBI DAX函数学习:CALCULATE

    周末分享:DAX函数卡片 DAX中最常用也是重要的函数,没有之一:CALCULATE,语法如下: 想用好Power...

网友评论

    本文标题:Calculate的最佳搭档:Filter | PowerBI星

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