RANKX 按表中某一列排序
时间: 2025-01-10 21:34:09 浏览: 42
### DAX RANKX 函数按列排序
#### 创建排名度量值
为了基于特定列创建排名,可以定义一个新的度量值来应用 `RANKX` 函数。此函数允许指定用于排序的数据表以及表达式,该表达式通常是对某列执行聚合操作的结果。
```dax
排名度量值 =
RANKX(
ALL('销售数据'[产品ID]), -- 表示忽略任何筛选器并考虑整个'产品ID' 列
SUM('销售数据'[销售额]), -- 对‘销售额’进行汇总作为排序依据
, -- 可选参数,默认为空表示使用当前上下文中的值参与排序
DESC, -- 按降序排列
Skip -- 处理平局的方式:跳过相同排名后的下一个编号
)
```
上述代码片段展示了如何利用 `ALL()` 来移除可能存在的过滤影响,并通过 `SUM()` 计算每种产品的总销售额来进行排名[^1]。
当仅需针对单一字段实施简单排序时,可采用简化形式:
```dax
简易排名 =
RANKX(
ALL('员工绩效'[部门]),
AVERAGE('员工绩效'[KPI得分]),
,
ASC,
Dense
)
```
这里选择了平均 KPI 得分最高的部门给予较低(即更优)的排名;而 `Dense` 参数确保即使存在多个相同的最高分数也不会造成后续名次跳跃[^4]。
#### 结合查询展示结果
一旦建立了这样的度量值,在 Power BI 或 Excel 的报表视图里就可以轻松地将其与其他可视化组件一起运用了。不过,假如希望直接查看生成的排名列表,则可以通过编写如下所示的 DAX 查询实现:
```dax
EVALUATE
ADDCOLUMNS(
FILTER(
'销售数据',
NOT(ISBLANK([排名度量值]))
),
"Rank", [排名度量值],
"Product ID", '销售数据'[产品ID],
"Total Sales", [总销售额]
)
ORDER BY [排名度量值] ASC
```
这段脚本会返回一张包含各商品及其对应销量排行的新表格[^2]。
阅读全文
相关推荐




















