数据可视化之powerBI入门(十三)CALCULATE函数的最佳搭档:FILTER
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的更多相关文章
- 数据可视化之powerBI入门(十二)PowerBI中最重要的函数:CALCULATE
https://zhuanlan.zhihu.com/p/64382849 介绍DAX的时候,特别强调过一个重要的函数:CALCULATE,本文就来揭秘这个函数的计算原理以及它是如何影响上下文的. C ...
- 数据可视化之powerBI入门(四)Power BI与PowerQuery、PowerPivot有什么关系
https://zhuanlan.zhihu.com/p/64146209 Power BI与PowerQuery.PowerPivot有什么关系? 刚开始学习PowerBI的时候,总是能碰到Powe ...
- 数据可视化之powerBI入门 (一)认识PowerBI
来自 https://zhuanlan.zhihu.com/p/64144024 Power BI是什么? Power BI是微软推出的数据分析和可视化工具,我们先来看看微软官方是怎么介绍的: Po ...
- 数据可视化之powerBI入门(八)PowerQuery学习:认识M函数
https://zhuanlan.zhihu.com/p/64148928 前面我们学习PQ的时候都是用鼠标操作,虽然通过这些操作能完成大部分的数据处理,但是毕竟还有些复杂的工作是处理不了的,如果想彻 ...
- 数据可视化之powerBI入门(七)数据清洗中最常使用的十三招
https://mp.weixin.qq.com/s?__biz=MzA4MzQwMjY4MA==&mid=2484067158&idx=1&sn=4ad955112df2f4 ...
- 数据可视化之powerBI入门(五)PowerQuery,支持从多种源导入数据
PowerBI的强大绝不仅是最后生成炫酷的可视化报告,她在第一步数据获取上就显示出了强大的威力,利用Power Query 的强大数据处理功能,几乎可以从任何来源.任何结构.任何形式上获取数据 htt ...
- 数据可视化之powerBI入门(三)财务人员必学,使用Powerquery是一种什么体验?
https://zhuanlan.zhihu.com/p/54700574 财务人员必学,使用Powerquery是一种什么体验? 你和Excel高手的距离只差了一个Power Query!!! 先思 ...
- 数据可视化之powerBI入门(十)认识Power BI的核心概念:度量值
https://zhuanlan.zhihu.com/p/64150720 本文学习PowerBI最重要的概念:度量值 初学Power BI一般都会对度量值比较困惑,毕竟对长期接触Excel的人来说, ...
- 数据可视化之powerBI入门(九)PowerBI数据建模:其实一点都不高深
https://zhuanlan.zhihu.com/p/64149834 数据建模并没有那么高深,你同样可以学会!这篇文章通过一个实例创建一个简单的数据建模,并引出两个重要的概念:度量值和DAX. ...
随机推荐
- 在Xcode11上开发“面向低于iOS13版本的App”时的一些注意点
相关知识: https://blog.csdn.net/BUG_delete/article/details/103699563 'AppDelegate' is only available in ...
- postman发送json数据
原文链接:https://blog.csdn.net/weixin_33387378/article/details/90721599 1.设置header Content-Type appli ...
- java并发编程系列原理篇--JDK中的通信工具类Semaphore
前言 java多线程之间进行通信时,JDK主要提供了以下几种通信工具类.主要有Semaphore.CountDownLatch.CyclicBarrier.exchanger.Phaser这几个通讯类 ...
- Python删除一个列表元素的方法
参考资料: https://www.cnblogs.com/xiaodai0/p/10564956.html https://www.cnblogs.com/huangbiquan/articles/ ...
- Appium 自动化实例代码
自动化连接 B站 开始 如果下载node.js 的话 可以检查一下appium环境 命令行: appium-doctor 如果没有 可以安装 appium-doctor :npm install ...
- Linux操作篇之配置DNS服务(一)
一.什么是DN. 域名(Domain Name)又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置).它的作用只 ...
- Linux中bash的一些命令
Linux——bash的简单使用 bash及其特性: 1.bash实质上是一个可执行的程序,一个用户的工作环境. 2.每一个shell下可以再打开一个shell,新打开的shell称为子shell,每 ...
- set dict tuple 内置方法
今日内容 * 元祖及内置方法* 字典及内置方法* 集合及内置方法* 字符编码 元祖tuple 与列表类似可以存多个值,但是不同的是元祖本身不能被修改 ```python一:基本使用:tuple 1 用 ...
- php计算两个时间段内的 工作日 工作小时
<?php class WorkTime { // 定义工作日 [1, 2, 3, 4, 5, 6, 0] public $week_workingday = [1, 2, 3, 4, 5]; ...
- Python3-paramiko模块-基于SSH的远程连接模块
Python3中的paramiko模块,基于SSH用于连接远程服务器并执行相关操作 http://docs.paramiko.org/en/2.1/ SSHClient 用于连接远程服务器并执行基本命 ...