https://zhuanlan.zhihu.com/p/64383000

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

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


FILTER语法

FILTER(<table>,<filter>)

  • 第一个参数<table>是要筛选的表
  • 第二个参数<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的更多相关文章

  1. 数据可视化之powerBI入门(十二)PowerBI中最重要的函数:CALCULATE

    https://zhuanlan.zhihu.com/p/64382849 介绍DAX的时候,特别强调过一个重要的函数:CALCULATE,本文就来揭秘这个函数的计算原理以及它是如何影响上下文的. C ...

  2. 数据可视化之powerBI入门(四)Power BI与PowerQuery、PowerPivot有什么关系

    https://zhuanlan.zhihu.com/p/64146209 Power BI与PowerQuery.PowerPivot有什么关系? 刚开始学习PowerBI的时候,总是能碰到Powe ...

  3. 数据可视化之powerBI入门 (一)认识PowerBI

    来自  https://zhuanlan.zhihu.com/p/64144024 Power BI是什么? Power BI是微软推出的数据分析和可视化工具,我们先来看看微软官方是怎么介绍的: Po ...

  4. 数据可视化之powerBI入门(八)PowerQuery学习:认识M函数

    https://zhuanlan.zhihu.com/p/64148928 前面我们学习PQ的时候都是用鼠标操作,虽然通过这些操作能完成大部分的数据处理,但是毕竟还有些复杂的工作是处理不了的,如果想彻 ...

  5. 数据可视化之powerBI入门(七)数据清洗中最常使用的十三招

    https://mp.weixin.qq.com/s?__biz=MzA4MzQwMjY4MA==&mid=2484067158&idx=1&sn=4ad955112df2f4 ...

  6. 数据可视化之powerBI入门(五)PowerQuery,支持从多种源导入数据

    PowerBI的强大绝不仅是最后生成炫酷的可视化报告,她在第一步数据获取上就显示出了强大的威力,利用Power Query 的强大数据处理功能,几乎可以从任何来源.任何结构.任何形式上获取数据 htt ...

  7. 数据可视化之powerBI入门(三)财务人员必学,使用Powerquery是一种什么体验?

    https://zhuanlan.zhihu.com/p/54700574 财务人员必学,使用Powerquery是一种什么体验? 你和Excel高手的距离只差了一个Power Query!!! 先思 ...

  8. 数据可视化之powerBI入门(十)认识Power BI的核心概念:度量值

    https://zhuanlan.zhihu.com/p/64150720 本文学习PowerBI最重要的概念:度量值 初学Power BI一般都会对度量值比较困惑,毕竟对长期接触Excel的人来说, ...

  9. 数据可视化之powerBI入门(九)PowerBI数据建模:其实一点都不高深

    https://zhuanlan.zhihu.com/p/64149834 数据建模并没有那么高深,你同样可以学会!这篇文章通过一个实例创建一个简单的数据建模,并引出两个重要的概念:度量值和DAX. ...

随机推荐

  1. SpringBoot与(Security)安全

    1.简介 应用程序的两个主要区域 认证(Authentication): 是建立一个它声明的主体的过程(一个"主体" 一般是指用户,设备或一些可以在你的应用程序中执行动作的其他系统 ...

  2. @bzoj - 3724@ PA2014Final Krolestwo

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 你有一个无向连通图,边的总数为偶数. 设图中有k个奇点(度数为奇 ...

  3. Pyinstaller 打包python 到exe 在windows下免python环境运行python

    在创建了独立应用(自包含该应用的依赖包)之后,还可以使用 PyInstaller 将 Python 程序生成可直接运行的程序,这个程序就可以被分发到对应的 Windows 或 Mac OS X 平台上 ...

  4. Selenium和ChromeDriver的安装与配置

    安装安装selenium: win: pip install seleniumliunx: pip3 install selenium12安装ChromeDriver, 该工具供selenium使用C ...

  5. 对于Python的GIL锁理解

    GIL是什么 首先需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念.就好比C++是一套语言(语法)标准,但是可以用不同的编译器来编译成可 ...

  6. 华为海思搞定4K60fps!Vmate掌上云台相机国内首发

    目录 Snoppa Vmate Snoppa Vmate Snoppa Vmate是一款掌上型的高性能4K摄像机,集成了微型机械三轴增稳云台,一体化机身集成可操控式触摸屏,既可以独立使用,也可以无线连 ...

  7. 解决Mac上打开txt文件乱码问题

    出处:https://www.jianshu.com/p/f55ddf1e9839 经常会在Mac上打开一个txt文件,发现里面的中文都是乱码,问题是在Windows和手机上看都完全是正常的,这就十分 ...

  8. Ubuntu16.06常见服务搭建

    摘要 系统环境Ubuntu 16.04 amd64 隔一段时间要配一次服务记不住,记录在这里方便以后安装. 目前更新了以下服务: ssh samba vimrc // 20200126更新 ssh 安 ...

  9. opencv C++ Mat构造函数

    cv::Scalar scalar1(v); cv::Mat mat3(size,CV_8UC1,scalar1); std::cout<<mat3<<std::endl; s ...

  10. 技术干货丨卷积神经网络之LeNet-5迁移实践案例

    摘要:LeNet-5是Yann LeCun在1998年设计的用于手写数字识别的卷积神经网络,当年美国大多数银行就是用它来识别支票上面的手写数字的,它是早期卷积神经网络中最有代表性的实验系统之一.可以说 ...