102_Power Pivot DAX 排名后加上总排名数
1、背景
每次写rank的时候,有了排名就可以了,排名1,2,3,4,5这样不是很清晰吗?但是中国式报表的老板们说你能不能在排名后面加一个总排名数呢,就像1/5,2/5,3/5,4/5,5/5。谁叫是老板呢,于是就有了报表加工出来后各种组合,比如vlookup。既然都用了dax,为什么不能dax呢。
那就dax写一写咯,
2、数据源(上图)
``````````

3、效果未切片 (再上图)

4、效果加上切片 请注意R1和R2的变化,很重要。(接着上图)

5、接下来一如既往的贴上dax咯。
total:=SUM(data[value])
R1:=IF (
HASONEVALUE ( data[部门] ),
VAR P =
SUMMARIZE ( ALL ( 'data' ), 'data'[部门], "P", 'data'[total] )
RETURN
RANKX ( P, 'data'[total], 'data'[total], DESC, DENSE ),
BLANK ()
)

R1/M:=IF (
HASONEVALUE ( data[部门] ),
VAR P =
SUMMARIZE ( ALL ( 'data' ), 'data'[部门], "P", 'data'[total] )
VAR M =
CALCULATE ( DISTINCTCOUNT ( data[部门] ), ALL ( data[部门] ) )
VAR R =
RANKX ( P, 'data'[total], 'data'[total], DESC, DENSE )
RETURN
CONCATENATE ( R, "/" & M ),
BLANK ()
)

R2:=IF (
HASONEVALUE ( data[部门] ),
VAR P =
SUMMARIZE ( ALLSELECTED ( 'data' ), 'data'[部门], "P", 'data'[total] )
RETURN
RANKX ( P, 'data'[total], 'data'[total], DESC, DENSE ),
BLANK ()
)

R2/M:=IF (
HASONEVALUE ( data[部门] ),
VAR P =
SUMMARIZE ( ALLSELECTED ( 'data' ), 'data'[部门], "P", 'data'[total] )
VAR M =
CALCULATE ( DISTINCTCOUNT ( data[部门] ), ALLSELECTED ( data[部门] ) )
VAR R =
RANKX ( P, 'data'[total], 'data'[total], DESC, DENSE )
RETURN
CONCATENATE ( R, "/" & M ),
BLANK ()
)

6、小结下
请注意观察R1和R2的变化,其实就是all和allselected的变化。
在不同的上下文的筛选下,会得到不同的结果,all则排名始终在所有排名中作排名,allselected则是选择的排名中排名。
关于allselected请移步官方文档:
by 焦棚子
焦棚子的文章目录
102_Power Pivot DAX 排名后加上总排名数的更多相关文章
- Linux shell中运行命令后加上字符“&”的作用
上午登录服务器编译运行服务端程序的时候,学到了在命令后加上字符“&”后,退出shell,运行的命令可以继续运行.不解原因,并到网上搜索了以下,明白了点! 以下是搜索到的片段: & 放在 ...
- go语言中在变量后加上接口是什么意思?
如题刚刚开始学习go 语言有些不懂: a.Data = make(map[string]interface{}) 我认为它是在申请a.Data map为字符串类型的空间,那么它后面接一个空的inter ...
- 排序(分组后排序&整排)
一.整排 要求:根据score进行排名,分数相同,名次相同,且连续 表如下图: sql语句: 方法一:select a.score, (select count(distinct b.score) f ...
- MySQL 排名、分组后组内排名、取各组的前几名 及排名后更新插入数据表中
一.排名 /*普通排名:从1开始,顺序往下排*/ AS rank ) r ORDER BY score; /*并列排名:相同的值是相同的排名*/ SELECT cs.* , CASE WHEN @p= ...
- webstorm启动后右下角总有进程在扫描
启动webstorm后,右下角有一个扫描的任务总在执行,其他操作很卡. 搜索后找到一个办法:在node-modules右键,选择Mark Directory As选择exclude 具体原因没找到.
- 2020年的六种编程语言排名中,java排第几只有不到1%的人知道
前言 编程语言是开发的基础.有不同的类型和特征,并且开发人员针对不同的场景选择正确的语言,但是您知道使用哪种语言吗?中国和世界各地有多少开发人员正在使用它?他们的排名是多少?快来看看您知道多少个列表! ...
- 101_Power Pivot DAX 累计至今,历史累计至今
焦棚子的文章目录 一.背景 DAX中已经有诸如YTD,QTD,MTD时间智能函数.用起来也比较方便. 但很多时候需要看历史累计至今的数据,需要自己根据实际情况写dax. 今天抛砖引玉,写一个示例. 二 ...
- mysql 怎么查询出,分组后的总条数。。。也就是有多少组数。。。。怎么写
SELECT COUNT(*) AS 多少组数FROM( SELECT id FROM 表 GROUP BY id) subQuery;Mysql,有一个表含有以下字段,uid 发帖人id,title ...
- 关于wordpress在修改固定链接后,总显示Not Found的问题
参考来源: http://chinablog.blog.51cto.com/276793/280278 一.问题背景 使用wordpress搭建网站,为了让文章URL看起来漂亮一点,wordpress ...
随机推荐
- chrome插件one-read开发1:准备
阅读我的博客文章:chrome插件one-read开发:准备 前言 为啥要做这个,因为我原本想用chrome做一个书签管理的东西,但是很久没有碰过chrome的插件开发了.所以先做一个简单的,来熟悉下 ...
- Android.mk文件如何打日志信息
1. 在mk文件中添加:$(warning "xxx="$(变量名)) 2. 执行lunch,选一个分支,此过程中可以打出添加的log.
- Centos搭建 LAMP 服务器教程
搭建 LAMP 服务 搭建 MySQL 数据库 安装 MySQL 使用 yum 安装 MySQL: yum install mysql-server -y 安装完成后,启动 MySQL 服务: ser ...
- 在 Mac 上开发 .NET MAUI
.NET 多平台应用程序 UI (.NET MAUI) 是一个跨平台框架,用于使用 C# 和 XAML 创建本机移动和桌面应用程序,这些应用程序可以从单个共享代码库在 Android.iOS.macO ...
- IDEA出现Error during artifact deployment. See server log for details.
第一步查看配置 然后点击Web Application Exploded->from Module, 如果以上问题都不存在,则要检查lib下是否缺少相应的jar包,是否导入,是否jar包过多产生 ...
- javap命令反编译
javap命令反编译生成的是程序员可以认识的字节码文件 -help --help -? 输出此用法消息 -version 版本信息,其实是当前javap所在jdk的版本信息,不是class在哪个jdk ...
- MVC:开发模式&&三层架构:软件设计架构
MVC:开发模式 jsp演变历史 早期只有servlet,只能使用response输出标签数据,非常麻烦 后来又jsp,简化了Servlet的开发,如果过度使用jsp,在jsp中即写大量的java代码 ...
- 2021.08.16 P1363 幻象迷宫(dfs,我感受到了出题人浓浓的恶意)
2021.08.16 P1363 幻象迷宫(dfs,我感受到了出题人浓浓的恶意) P1363 幻象迷宫 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 幻象迷宫可以认为是无限 ...
- ASP.NET Core 6.0 添加 JWT 认证和授权
序言 本文将分别介绍 Authentication(认证) 和 Authorization(授权). 并以简单的例子在 ASP.NET Core 6.0 的 WebAPI 中分别实现这两个功能. 相关 ...
- Promise的then和catch如何影响状态的变化
记住两句话: 1.then正常返回resolved,里面有报错返回reject 1 const p1 = Promise.resolve().then(()=>{ 2 console.log(1 ...