Power BI RANKX函数之计算列

2023-11-13

转载自:知乎

在实际做报表时,有时会遇到需要对某些指标(例如销售额等)进行排名,所以今天跟大家讨论一下可以实现排名的DAX函数-RANKX函数。

—————————————————————————————————————————————————————
首先看下RANKX函数的参数:

RANKX(<table>, <expression>[, <value>[, <order>[, <ties>]]])

其中
table:表,或者能返回表的DAX表达式。
expression: 任何返回单一标量值的DAX 表达式,此表达式将针对 table 的每一行进行计算,以生成所有用于排名的可能值。
value:(可选)任何返回要找到其排名的单个标量值的 DAX 表达式。
order:(可选)指定如何对 value 排名的值,从低到高或从高到低。
ties:(可选)一个枚举,它定义如何在具有等同值时确定排名。
函数返回值:针对为表中每一行计算的表达式,返回值列表中当前表达式的排名。
—————————————————————————————————————————————————————
下图为我们此次讨论用到的数据,为方便起见,我们将数据做了简化,分别为’销售记录’表和’产品’表。现在,我们需要对各类产品的销售额进行排名。 在这里插入图片描述
在这里插入图片描述
要实现排名,我们可以在表中创建计算列,也可以写度量值。此次我们先来看下相对简单的计算列。因为要对各产品的销售额进行排名,所以我们先写出[销售额]的公式:

销售额 = sum('销售记录'[销售])
接着在’产品’表中新建列,命名为[排名1],然后使用RANKX函数写出[排名1]列的公式:
排名1 = rankx('产品',[销售额])

结果如下:在这里插入图片描述
但是有人可能会无意发现这个问题,若排名的公式不完全按上文那样写,不预先写出度量值[销售额],而是将其直接嵌套入RANKX函数中,如下,结果怎么不对了呢?

排名2 = rankx('产品',SUM('销售记录'[销售]))

在这里插入图片描述
这是因为,RANKX是一个迭代函数,它对’产品’表中的每一行都计算了该函数第二个参数处的表达式,然后再根据计算结果进行排名。也就是说,如果公式写成:

排名1 = rankx(‘产品’,[销售额]),那就是对’产品’表的每行进行了[销售额]计算,如果公式写成 排名2 = rankx(‘产品’,SUM(‘销售记录’[销售])), 那就是对’产品’表的每行进行了SUM(‘销售记录’[销售]计算。这时肯定会有人问,[销售额]和SUM(‘销售记录’[销售]不是等价的吗?[销售额]就是用SUM(‘销售记录’[销售])计算出来的啊~ 那我们就将这两个的结果在列中都呈现出来,看它们的结果是否相同,如下图:
在这里插入图片描述
在这里插入图片描述
如此看来,在计算列中,[销售额]和SUM(‘销售记录’[销售])得出的结果并不相同,一个结果是每行得到不同的值,而另一个结果是每行的值都相同,都是销售总额,所以导致以下两个公式的出来的排名不相同,

排名1 = rankx('产品',[销售额])
排名2 = rankx('产品',SUM('销售记录'[销售]))

并且,显而易见,第二个公式得出的结果是错的,那么这是为什么呢?这就涉及到上下文的概念了,因为聚合函数,例如SUM,MIN和MAX只能感知筛选上下文,而忽略行上下文,所以得到每行相同的值,而 [销售额]中存在隐性的CALCULATE函数引发了上下文转换,将现有的行上下文转化成了等价的筛选上下文。所以,如果我们还想在排名公式中使用SUM函数的话,需要在其外面加一个CALCULATE函数。如下:
排名3 = RANKX(‘产品’,CALCULATE(SUM(‘销售记录’[销售])))
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Power BI RANKX函数之计算列 的相关文章

  • 数据分析Power BI数据可视化教程(四)——创建瀑布、漏点图以及修改图表颜色

    Power BI 是基于云的商业数据分析和共享工具 它能帮您把复杂的数据转化成最简洁的视图 通过它 您可以快速创建丰富的可视化交互式报告 即使在外也能用手机端 APP 随时查看 甚至检测公司各项业务的运行状况 只需它仪表板的一个界面就够了
  • BI数据分析方法小结

    author skate time 2011 04 06 对于电子商务网站 我们该如何对数据分析呢 当我们拿到数据的时候该做些什么 要回答这几个问题前 先回答如下问题 1 数据是给谁看的 2 看数据的人 想从数据中得到什么 或者用数据证明什
  • ETL工具

    这些年 几乎都与ETL打交道 接触过多种ETL工具 现将这些工具做个整理 与大家分享 一 ETL工具 国外 1 datastage 点评 最专业的ETL工具 价格不菲 使用难度一般 下载地址 ftp ftp seu edu cn Pub D
  • Power BI 矩阵总计放表第一列

    Power BI 矩阵总计放表第一列 思路 让总计序号比其他产品的序号都小 做法 1 在建个维表下方增加一行为 Total 加Total的维表 var table1 SUMMARIZE 订单表 MODEL NAME return UNION
  • Power BI 数据模型及核心概念介绍

    可视化图表的背后 数据模型 在Power BI中 每一个可视化图表背后 都是一个由许多数据表格组成的数据模型 这些框中包含数据表 且框内的每个行项都是一列 连接框的线表示表之间的关系 只有正确地将表格关联起来 才能实现各种可视化的效果 比如
  • 数据仓库基本概念

    什么是数据仓库 数据仓库 英文名称为Data Warehouse 数据仓库 Data Warehouse 是一个面向主题的 Subject Oriented 集成的 Integrated 相对稳定的 Non Volatile 反映历史变化
  • 一次数据库的选型,FireBird胜出

    做了n多年的J2EE应用以后 如何做客户端的BI确实让我一下子摸不到门路 近期的一个客户要求我们给他做基于客户端的BI分析 客户是对外提供重要数据的单位 有很多的客户每年购买他的数据 可以说人家的数据库 每行每列都是钱 在这种情况下 他们非
  • kettle中判断输入的数据是不是 偶然错误

    参照表一个常见的用途就是做数据的查询和检验 提供一个输入字段 如果输入字段里的值没有匹配上 就给对应的数据行做一个错误标志 下面使用城市和邮政编码查询做个例子 演示如何使用计算器步骤和查询步骤来判断地址和邮政编码是否匹配 完整的转换如下图
  • 原子指标和衍生/派生指标

    按照个人的理解 不加任何修饰词的指标就是原子指标 也叫度量 一般存在于olap表中 例如订单量 用户量的等等 而在原子指标上进行加减乘除或者修饰词的限定等等都是派生指标 衍生 派生指标 原子指标 时间周期 修饰词 例如 近7天订单量 近7天
  • Tableau Prep 数据处理工具使用入门

    1 什么是Tableau Prep 2018 04 Tableau 推出全新的数据准备产品 Tableau Prep 主要用户定位于如何帮助人们以快速可靠的方式对数据进行合并 组织和清理 进一步缩短从数据获取见解所需的时间 简而言之 Pre
  • GB2312 汉字拼音对照表(6727字)

    http zh transwiki org wiki index php GB2312 E6 B1 89 E5 AD 97 E6 8B BC E9 9F B3 E5 AF B9 E7 85 A7 E8 A1 A8 啊 a 阿 a e 埃 a
  • Datart使用说明

    Datart使用说明 Datart安装记录 Refer 安装问题 前端源码编译 java 程序包datart data provider calcite parser impl不存在 启动基础步骤 Datart安装记录 Refer 最近在学
  • Slow Changing Dimension

    Type 4 Mini Dimension 解决维度中的某些属性变化频繁的问题 例如Cusotmer中的年龄 收入 购买频率等属性 优点 1 节省存储空间 2 不需要频繁的对维度的属性进行更改 实例 摘自Kimball的书 Note 在插入
  • 做事变通

    author skatetime 2010 05 21 做事变通 昨天同事找我 说bi系统的有一个递归树形查询的sql非常慢 已经让使用人员无法忍受 sql如下 SELECT SYS CONNECT BY PATH BB FULL NAME
  • 帆软 finereport FCRA 考试 题库+答案,共收录561题,大部分有答案

    帆软 finereport FCRA 考试 题库 答案 共收录561题 大部分有答案 入门基础 11 多选题 以下方式中属于FineReport中预览模式的有 分页预览 填报预览 新填报预览 数据分析 移动端预览 16 判断题 FineRe
  • 数据可视化平台理论与实践

    前面说完了大数据开发平台的核心组件 作业调度系统 接下来讨论一下大数据开发平台的脸面之一 数据可视化平台 和调度系统一样 这又是一个很多公司可能想要自己造一个轮子的系统 数据可视化平台是什么 不过 慢着 先等一下 什么是数据可视化平台 我们
  • 2014年总结

    总结的意义在于认清未来的方向 2014年工作 1 ETL Data Warehouse Data Mining 数据挖掘内容很多 如何与企业需求相结合是重点 2 简单的工作流系统开发 3 体会ArgGIS在物流运输企业中的应用 无论云计算以
  • Power BI:切片器联动的一些问题

    问题1 联动切片器选中子项后父项未能显示全部 如下所示 切片器原始状态为 Province和City来源同一张表 当选中了City中的某一项时 变为 父项也发生了变化 但我们希望无论子项选择什么 父项应该始终显示全部 解决办法 City切片
  • 数据ETL面临的问题----数据缺失

    数据缺失的类型有 完全随机缺失 Missing Completely at Random MCAR 数据的缺失与不完全变量以及完全变量都是无关的 随机缺失 Missing at Random MAR 数据的缺失不是完全随机的 数据的缺失只依
  • 智能数据分析系统:揭秘最强AI助力企业腾飞的秘密武器

    现代企业离不开数据 而数据的分析与应用更是成为企业走向成功的关键之一 然而 随着数据量的不断增长 传统的数据分析方法已经无法满足企业的需求 这时 智能数据分析系统应运而生 成为企业决策的得力助手 那么 智能数据分析系统究竟是如何帮助企业实现

随机推荐