#Powerbi 10分钟,理解 Rankx 排名函数

powerbi,分钟,理解,rankx,排名,函数 · 浏览次数 : 256

小编点评

**思维导图和示例数据图:** **示例数据图二:度量值示例2.1** | 产品 | 销售排名 | |---|---| | A | 1 | | B | 2 | | C | 3 | | D | 4 | | E | 5 | **示例数据图一:思维导图1.1和1.2** **思维导图1.1** [产品] --> [排名] **思维导图1.2** [排名] --> [度量值] **说明:** * RANKX 函数使用第一参数的表达式来计算排名。 * 每个产品只能出现一次,因此在计算排名时会跳过重复的相同值。 * 如果只选择了一个产品,该公式将只返回该产品的排名。 * 使用 SELECTEDVALUE 函数可以只统计当前可见的产品排名。

正文

一:本文思维导图及示例数据图

1.1思维导图

1.2  示例数据图

二:度量值示例

2.1 函数简介

RANKX 首先为的每一行计值表达式,将结果临时存储为一个值列表。然后在当前筛选上下文中计值,将得到的结果与列表中的值进行比较,根据排名规则和的设置,返回最终排名。

2.2 产品排名(稠密)度量值

这个公式使用RANKX函数计算每个产品的销售排名。它使用稠密排名,这意味着当有相同值时,排名将紧密排列。
- 第一个参数`ALL('销售模拟表'[产品])`是一个表,它定义了要进行排名的数据集。在这种情况下,我们使用`ALL`函数来移除任何筛选器,以便在整个`'销售模拟表'[产品]`列中计算排名。
- 第二个参数`[产品销量]`是一个表达式,它返回每行的产品销量。RANKX函数将使用这个表达式的值来计算排名。
- 第三个参数被省略了。这意味着RANKX函数将使用第二个参数`[产品销量]`的值作为要查找排名的值。
- 第四个参数`DESC`指定排名的顺序。在这种情况下,我们使用降序排名。
- 第五个参数`DENSE`定义了当有相同值时如何确定排名。在这种情况下,我们使用稠密排名。
整个公式被包含在一个`IF`函数中,它检查是否只选择了一个产品。如果只选择了一个产品,那么公式将返回该产品的排名。否则,整个公式的结果为空。

产品排名(稠密) = 
IF (
    HASONEVALUE ( '销售模拟表'[产品] ),
    RANKX (
        ALL ( '销售模拟表'[产品] ),   ---第一参数,table,表或者返回表的表达式
        [产品销量],   ---第二参数,expression,沿着table每行计值的表达式
        ,   ---value,标量值,指单一的数值,可以是数字、数量、文本、日期或者布尔值
        DESC,   ---排序依据,
        DENSE   ---处理同排名的依据,skip,稀疏排名,sense,稠密排名
    )
)

2.3  产品排名(稀疏)(HASONEVALUE)

 同上,只是这里没有选择 TIES 参数,所以默认为SKIP参数

产品排名(稀疏)(HASONEVALUE) = 
IF (
    HASONEVALUE ( '销售模拟表'[产品] ),
    RANKX (
        ALL ( '销售模拟表'[产品] ),
        [产品销量],
        ,
        DESC
    )
)

 2.4  产品排名(稀疏)(SELECTEDVALUE)

这个公式使用RANKX函数计算每个产品的销售排名。它使用跳过排名,这意味着当有相同值时,排名将跳过相同值的数量。

  • 第一个参数ALL('销售模拟表'[产品])是一个表,它定义了要进行排名的数据集。在这种情况下,我们使用ALL函数来移除任何筛选器,以便在整个'销售模拟表'[产品]列中计算排名。
  • 第二个参数[产品销量]是一个表达式,它返回每行的产品销量。RANKX函数将使用这个表达式的值来计算排名。
  • 第三个参数被省略了。这意味着RANKX函数将使用第二个参数[产品销量]的值作为要查找排名的值。
  • 第四个参数DESC指定排名的顺序。在这种情况下,我们使用降序排名。
  • 第五个参数SKIP定义了当有相同值时如何确定排名。在这种情况下,我们使用跳过排名。

整个公式被包含在一个IF函数中,它检查是否只选择了一个产品。如果只选择了一个产品,那么公式将返回该产品的排名。否则,整个公式的结果为空。

与我们上面的公式不同,这个公式使用SELECTEDVALUE函数来检查是否只选择了一个产品。如果只选择了一个产品,SELECTEDVALUE函数将返回该产品的值。否则,它将返回空值。

我们使用ISBLANK函数来检查SELECTEDVALUE函数的返回值是否为空。如果返回值为空,那么整个公式的结果也为空。否则,我们使用RANKX函数计算产品的排名。

产品排名(稀疏)(SELECTEDVALUE) = 
IF (
    ISBLANK (
        SELECTEDVALUE ( '销售模拟表'[产品] )
    ),
    BLANK (),
    RANKX (
        ALL ( '销售模拟表'[产品] ),
        [产品销量],
        ,
        DESC,
        SKIP
    )
)

2.5  可见排名

有时我需要只统计当前可见的产品排名,那么,只需要将上方的ALL更改为ALLSELECTED即可

产品排名(稀疏)_只统计可见排名 = 
IF (
    ISBLANK (
        SELECTEDVALUE ( '销售模拟表'[产品] )
    ),
    BLANK (),
    RANKX (
        ALLSELECTED ( '销售模拟表'[产品] ),
        [产品销量],
        ,
        DESC,
        SKIP
    )
)

 比如,这里,我们只选择了A,B,C,F四个产品,那么排名逻辑就会只排名现在已经被选择的产品,而前面的度量值会按所有产品进行排名。

 

三:注意事项

不要忘记ALL函数以及第二参数CALCULATE。

其他注意事项,后续博主使用中如有问题,会单独开文罗列。

 

以上,如果本文有帮到你,希望点赞支持一下。感谢!

与#Powerbi 10分钟,理解 Rankx 排名函数相似的内容:

#Powerbi 10分钟,理解 Rankx 排名函数

一:本文思维导图及示例数据图 1.1思维导图 1.2 示例数据图 二:度量值示例 2.1 函数简介 RANKX 首先为的每一行计值表达式,将结果临时存储为一个值列表。然后在当前筛选上下文中计值,将得到的结果与列表中的值进行比较,根据排名规则和的设置,返回最终排名。 2.2 产品排名(稠密)度量值 这

#PowerBi 10分钟学会,以X为结尾的聚合函数

前言 在Power BI中,我们经常需要对数据进行聚合计算,比如求和、求平均、求最大值等。 Power BI提供了一系列的聚合函数,可以用来对表中列的值进行聚合然后返回一个值。这些函数通常只需要一个参数,就是要聚合的列名。如SUM(‘销售表’[销量]),就是求销售表里的销量总和。 但是有时候,我们需

PowerBI_一分钟了解POWERBI计算组_基础运用篇(一)

在第一篇计算组的文章中,给大家介绍了,POWERBI的计算组功能的基本概念和作用。 本文,旨在通过简单案例,介绍计算组功能的具体应用场景。 没有看过第一篇的同学,可以先简单过一下第一篇,补齐一下概念和打开计算组功能。 https://www.cnblogs.com/simone331/p/18146

#Powerbi 季度时间进度计算

上一篇我们学习了月度时间进度的计算方法,今天我们学习季度时间进度的测算。 思路:找出目前共计消耗了多少天(季度),目前日期所在的季度共有多少天,两者相除即是季度的时间进度 首先列出DAX函数: 本季度第一天 = STARTOFQUARTER(TREATAS({TODAY()},'日期表'[日期]))

#Powerbi 利用视觉对象着色地图,制作数据地图

日常工作中,有时我们会遇到需要地图来展示我们的数据场景,利用POWERBI,我们可以快速的制作自己的业务地图。 Powerbi自带了三大地图,今天我们用到的是形状地图。 步骤讲解: 第一步:下载对应的地图资源,可以是全国的,也可以是具体省市的,这个根据我们的具体业务来进行选择。 http://dat

#Powerbi 理解VAR函数

VAR意思即为变量,在编程语言中,变量是一个重要概念,DAX作为一种语言也有变量概念,利用VAR,我们可以缩短我们一些DAX语句的长度,更清晰的表达我们的度量值计算逻辑。 举例说明: 我们要计算一个产品的同比增长率 如果不用VAR 第一步:需要计算今年的销售额 [Sales]=SUM(销售表[销售额

#Powerbi 利用时间智能函数,进行周度分析

在实际工作中,我们往往需要同比分析,月度和年度的分析都有对应的时间智能函数,分别是MTD和YTD,但是缺少了周度的时间智能函数,而 恰恰日常工作中,我们又需要以周度来进行对应的分析,今天我们来学习一下,如何使用Powerbi来进行周度分析。 我们这里假设要进行流量的周度分析,流量表里包含了日期、曝光

#Powerbi函数学习 SELECTEDVALUE与ISFILTERED

Power BI中的DAX函数ISFILTERED可以用来判断一个表或者一个列是否被筛选器所影响。 这个函数的语法很简单,就是ISFILTERED(),返回值是TRUE或者FALSE。那么,这个函数有什么用呢?我们来看一个例子。 第一步:数据源和基础度量值

#Powerbi 利用动态格式字符串功能,实现百分数智能缩位(powerbi4月重磅更新功能.)

以下内容(基于POWERBI 23年4月更新的最新版本) 实际业务中,日常报表一般都有一个较为规范的百分数缩位要求,如果统一要求保留一位小数,那么在有些时候,我们会面临被缩成0.0%的尴尬,例如原有的百分比为"0.02%",如果保留一位的话,powerbi会返回一个值为"0.0%"。 这时候如果我们

#PowerBI 1分钟学会,利用format函数,自定义格式显示

PowerBI是一款强大的数据分析和可视化工具,它可以帮助我们快速地创建各种报表和仪表盘,展示数据的洞察和价值。 在PowerBI中,有许多内置的函数可以帮助我们处理和转换数据,其中一个常用的函数就是Format函数。 Format函数的作用是将一个值按照指定的格式进行显示,例如日期、时间、货币、百