焦棚子的文章目录

请点击下载附件

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请移步官方文档:

ALLSELECTED 函数 (DAX)​

by 焦棚子

焦棚子的文章目录

102_Power Pivot DAX 排名后加上总排名数的更多相关文章

  1. Linux shell中运行命令后加上字符“&”的作用

    上午登录服务器编译运行服务端程序的时候,学到了在命令后加上字符“&”后,退出shell,运行的命令可以继续运行.不解原因,并到网上搜索了以下,明白了点! 以下是搜索到的片段: & 放在 ...

  2. go语言中在变量后加上接口是什么意思?

    如题刚刚开始学习go 语言有些不懂: a.Data = make(map[string]interface{}) 我认为它是在申请a.Data map为字符串类型的空间,那么它后面接一个空的inter ...

  3. 排序(分组后排序&整排)

    一.整排 要求:根据score进行排名,分数相同,名次相同,且连续 表如下图: sql语句: 方法一:select a.score, (select count(distinct b.score) f ...

  4. MySQL 排名、分组后组内排名、取各组的前几名 及排名后更新插入数据表中

    一.排名 /*普通排名:从1开始,顺序往下排*/ AS rank ) r ORDER BY score; /*并列排名:相同的值是相同的排名*/ SELECT cs.* , CASE WHEN @p= ...

  5. webstorm启动后右下角总有进程在扫描

    启动webstorm后,右下角有一个扫描的任务总在执行,其他操作很卡. 搜索后找到一个办法:在node-modules右键,选择Mark Directory As选择exclude 具体原因没找到.

  6. 2020年的六种编程语言排名中,java排第几只有不到1%的人知道

    前言 编程语言是开发的基础.有不同的类型和特征,并且开发人员针对不同的场景选择正确的语言,但是您知道使用哪种语言吗?中国和世界各地有多少开发人员正在使用它?他们的排名是多少?快来看看您知道多少个列表! ...

  7. 101_Power Pivot DAX 累计至今,历史累计至今

    焦棚子的文章目录 一.背景 DAX中已经有诸如YTD,QTD,MTD时间智能函数.用起来也比较方便. 但很多时候需要看历史累计至今的数据,需要自己根据实际情况写dax. 今天抛砖引玉,写一个示例. 二 ...

  8. mysql 怎么查询出,分组后的总条数。。。也就是有多少组数。。。。怎么写

    SELECT COUNT(*) AS 多少组数FROM( SELECT id FROM 表 GROUP BY id) subQuery;Mysql,有一个表含有以下字段,uid 发帖人id,title ...

  9. 关于wordpress在修改固定链接后,总显示Not Found的问题

    参考来源: http://chinablog.blog.51cto.com/276793/280278 一.问题背景 使用wordpress搭建网站,为了让文章URL看起来漂亮一点,wordpress ...

随机推荐

  1. 13_Invariance Principle_LaSalle's Theorem_不变性原理

  2. Python:爬取全国各省疫情数据并在地图显示

    代码: import requests import pymysql import json from pyecharts import options as opts from pyecharts. ...

  3. 什么是3D建模?

    一.3D建模是什么 将所见所想用立体三维的方式通过计算机技术表现出来,这就是3D建模,比如你看到了一个可爱呆萌的卡通人物又或是华丽酷炫的变形金刚,总之就是你认为美好的立体实物 你想将它用计算机技术完美 ...

  4. An=n的前n项和的前n项和

    #include<iostream> using namespace std; int main() { int n,a=0,b=0; cin>>n; for(int i=1; ...

  5. 搭建MySQL集群-注意版本

    系统环境采样(来自其他机器,直接copy过来的,在安装的机器上,按照步骤查看即可,当然这些还不够实际,后续补充) 检查系统内是否有其他mysql rpm -qa | grep mysql 是否存在my ...

  6. Ubuntu20.04搭建web服务器

    其他Ubuntu20以及Ubuntu18系列也可以!

  7. Centos7 使用pm2快速安装创建定时任务

    Centos7 安装 pm2 一丶拿到一个动态拨号的服务器还不用使用网络得先打开: pppoe-start 如果没有wget,需要先下载安装: yum install wget 二丶环境搭建 wget ...

  8. Codeforces Round #767 (Div. 2) c d, 巧妙标记

    贪心: Problem - C - Codeforces 思维: Problem - D - Codeforces 这两个题不错, 第一个需要考虑后面,就先标记完, 从前遍历挨个除去标记 第二个需要考 ...

  9. javaScript 内存管理机制

    大家好,今天分享的主题为 JavaScript 内存管理机制,本次分享将从以下三部分进行讲述: js 内存管理与 js 垃圾 常见的 GC 算法 V8 引擎的垃圾回收 js 内存管理与 js 垃圾 关 ...

  10. Dom基础(一):attribute和properrty的区别

    properrty:修改对象属性不会体现到html结构中,针对DOM节点自带属性(id,className,style) attribute:修改html属性,会改变html结构,大多可以添加自定义属 ...