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

​PowerBI中,有三个地方可以使用DAX,分别是度量值、新建列和新建表,这三个功能并成一排摆放在这里,如图所示,

之前的文章中曾介绍了度量值和计算列的异同(收藏 | Power BI计算列和度量值,一文帮你搞清楚),这篇文章再来带你认识度量值和新表的异同。

度量值和计算列容易混淆,但和新表好像并不会搞混,毕竟一个是值,一个是表,区别还是很大的。
但在实现特定的业务需求上,他们又都可以实现,下面以一个案例来介绍。


该案例来自知识星球中星友的提问,模拟一个订单表,包含客户名称、产品名称以及产品类目等,如下图:

需求:

仅购买过一个产品类目的客户有哪些?

购买过多个产品类目的客户有哪些?分别购买了哪些类目?

下面以新建表和度量值两种方式来实现。

新建表

因为这个需求返回的客户肯定不止一个,所以很自然的想到用新表的方式。

这个问题的关键是先统计出每个客户购买了几个类目,然后分别返回购买了一个和多个类目的客户列表就行了。

用DAX处理很简单,如下图,

先使用SUMMARIZE进行统计,然后FILTER返回等于1的表,只有B和C两个客户仅购买过一个类目的产品。

同理,购买了多个类目产品的客户可以这样写,

对于购买了多个类目的客户,还要列出来购买了哪些类目,可以在上面这个代码的基础上优化一下:

返回的表正好是需要的效果。

但是通过这种方式返回的客户列表是固定的,因为它的上下文已经被固化了,无法根据外部的筛选器返回不同的列表。

如果想要动态的实现需求,比如按照日期切片器,计算不同时间段的客户列表,怎么办呢?

动态的效果还是要靠度量值。

度量值

这种方式比较直接,只需要建两个简单度量值:

类目数量 = DISTINCTCOUNT('订单表'[产品类目])

类目列表 =
CONCATENATEX(SUMMARIZE('订单表','客户表'[客户],'订单表'[产品类目]),'订单表'[产品类目],"、")

这两个度量值的代码是不是要比新建表的DAX简单的多?你可以先思考一下是为什么?

把这两个度量值放入到矩阵中,客户名称作为行标题,就是我们要的效果,

想查看购买过一个类目或者多个类目的客户列表,使用筛选器就可以了,

并且它也可以动态响应外部筛选器,返回不同的结果,

就是这么简单。

总结

通过上面的示例,应该可以看出二者的区别,虽然都能返回一个特定的结果,但度量值更有优势:

代码更加简短,因为无需在代码中指明上下文;

计算更加灵活,因为它可以根据不同的上下文,实现动态的计算。

最根本的区别还是在于上下文,包括之前介绍过的计算列,三者比较,同样如此。

所以当你有了一个分析需求,想用PowerBI实现时,不要一上来就想DAX怎么写,用什么函数,而是先梳理自己的需求,审视自己的数据:

  • 想要静态还是动态的效果?
  • 是用新建表、计算列还是度量值来实现?
  • 不同方式下,能提供的上下文是什么?
  • 这个上下文是否有对应的维度表?
  • 维度表与事实表是否已经建立了正确的关系?

最终的落脚点还是数据建模!

数据可视化之powerBI基础(二十)Power BI度量值和新建表,有什么异同?的更多相关文章

  1. 数据可视化之powerBI基础(十)快速度量值,帮你更快的进行数据分析

    https://zhuanlan.zhihu.com/p/64414831 刚开始学习PowerBI,最头疼的可能就是度量值了,毕竟用了Excel这么多年,只相信自己眼睛看到的,对于这个"虚 ...

  2. 数据可视化之powerBI基础(十二)PowerBI导入Excel数据有哪几种方式?

    https://zhuanlan.zhihu.com/p/64999937 Excel作为使用最频繁.应用最广泛.用户最庞大的数据处理工具,当然也应该是PowerBI最常用的数据获取方式,本文介绍一下 ...

  3. 数据可视化之powerBI基础(十四)Power BI中创建联动切片器

    https://zhuanlan.zhihu.com/p/67564062 进行数据分析时,每个分析维度并不总是独立的,比如省份是一个维度,城市也是一个维度,而这两个维度之间是有逻辑关系的,那么在进行 ...

  4. 数据可视化之powerBI基础(十九)学会使用Power BI的参数,轻松搞定动态分析

    https://zhuanlan.zhihu.com/p/55295072 静态的分析经常不能满足实际分析的需要,还需要引入动态分析,通过调节某个维度的增减变化来观察对分析结果的影响.在PowerBI ...

  5. 数据可视化之powerBI基础(十八)Power BI度量值的格式如何修改?这里有三种方式

    https://zhuanlan.zhihu.com/p/99818030 ​在知识星球遇到的问题中,有不少朋友问如何修改数值型度量值的格式,比如,新建的度量值如何显示为百分比或者千分位等等,这篇文章 ...

  6. 数据可视化之powerBI技巧(十)利用度量值,轻松进行动态指标分析

    在一个图表中,可以将多项指标数据放进去同时显示,如果不想同时显示在一起,可以根据需要动态显示数据吗?在 PowerBI 中当然是可以的. 下面就看看如何利用度量值进行动态分析. 假如要分析的指标有销售 ...

  7. 数据可视化之powerBI基础(十五)Power BI同步切片器,你知道怎么用吗?

    https://zhuanlan.zhihu.com/p/67932754 在PowerBI报表中,切片器绝对是最常用的控件了,利用它可以进行各种维度的动态切换,同一个页面中的所有图表可以同步响应:利 ...

  8. 数据可视化之powerBI基础(十六)PowerQuery的这个小功能,让你轻松发现数据质量问题

    https://zhuanlan.zhihu.com/p/64418072 源数据常常包含各种差错值,为了进行下一步的分析,我们必须先找出并更正这些差错,做这些工作几乎不会有什么快乐感可言,但却往往需 ...

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

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

随机推荐

  1. 关于thinkphp5下URL附加参数,无法获取到(?参数)

    nginx 配置问题: 修改配置后:

  2. Nested Report_FR

    设置好下面的关系(Mar 18做,copy from MyQ): 1) Customer.Orders.Items 的 MasterSouce.MasterField2) 后面2个的 DataSour ...

  3. java特性 JDK JRE JVM

    1简单性 2可移植性性(跨平台) 3面向对象 4高性能 5分布式 6动态性 7多线程 8安全性JDK:java开发工具 . JRE:JDK:java运行环境 . JVM:JDK:java虚拟机

  4. 【Java】错误: 需要class, interface或enum

    今天在用cmd实现mvn package操作时跳出来的报错! 网上搜索到的结论是因为编码问题而产生的,具体原因就不深究了 要详细了解可以查看以下链接https://blog.csdn.net/qq_3 ...

  5. vue 生成二维码+截图

    链接生成二维码 1.npm安装 npm install --save qrcodejs2 2.引入 import QRCode from 'qrcodejs2' 3.生成二维码 new QRCode( ...

  6. 一对多分页的SQL到底应该怎么写?

    1. 前言 MySQL一对多的数据分页是非常常见的需求,比如我们要查询商品和商品的图片信息.但是很多人会在这里遇到分页的误区,得到不正确的结果.今天就来分析并解决这个问题. 2. 问题分析 我们先创建 ...

  7. android屏幕适配的全攻略--支持不同的屏幕尺寸适配平板和手机

    一. 核心概念与单位详解 1. 什么是屏幕尺寸.屏幕分辨率.屏幕像素密度? 屏幕分辨率越大,手机越清晰 dpi就是dot per inch dot意思是点,就是每英寸上面的像素点数 android原始 ...

  8. springboot自动装配原理

    最近开始学习spring源码,看各种文章的时候看到了springboot自动装配实现原理.用自己的话简单概括下. 首先打开一个基本的springboot项目,点进去@SpringBootApplica ...

  9. Selenium+Python调Chrome浏览器时报Traceback (most recent call last): File "C:/Users/EDZ/Desktop/selenium_demo/demo001.py", line 12, in <module>

    上次使用Selenium+Python还是好几个月前了 今天想再用一下,结果写个打开网站的小demo报错,报错如下: 检查了一下,查看报错日志,应该是chrome版本和driver版本不一致导致的. ...

  10. Halcon斑点分析官方示例讲解

    官方示例中有许多很好的例子可以帮助大家理解和学习Halcon,下面举几个经典的斑点分析例子讲解一下 Crystals 图中显示了在高层大气中采集到的晶体样本的图像.任务是分析对象以确定特定形状的频率. ...