当前位置: 首页 > news >正文

PowerBi实现Top N和Bottom N的简单示例

假设我们有一张销售表

在PowerBi里我们用一个表格来展示它

如果想要显示Top N,可以直接在筛选器里设置:

但是这样的方式很不灵活,如果我们想用切片器控制怎么做呢?

我们新建一个Rank表,用于筛选Top N

新建两个度量值,一个求销量总和,一个生成排名:

总销售量 = SUM('销售表'[销量])排名 = RANKX(ALL('销售表'[产品]), [总销售量],,DESC,Dense)

我们把排名拖入表格,看看结果是什么

可以看到,Powerbi已经按照销量做了降序的排名了

销量越高的,排名数越小

接着我们写一个度量值用于筛选

TopN = 
VAR N = SELECTEDVALUE('Rank'[Value],3)
RETURN IF([排名] <= N, //判断排名是否在切片器选择范围内"显示","隐藏"
)

然后把度量值放入表格的筛选器,选择“显示”,就可以根据切片器来动态显示Top N啦

把排名列拿到,也是能显示的

那么,要显示Bottom N (销量倒数N名,即排名数大的N个) 怎么做呢?

这里要注意一个问题,就是Rankx生成的排名,是计算出来的,不是物理表里的字段,所以我们无法通过DAX获得最大的排名数 (示例中是5)

因此,我们无法用  min < [排名] < max来设定范围去取bottom。(大家可以思考下怎么实现)

换个思路,让排名按照升序排列,

排名 = RANKX(ALL('销售表'[产品]), [总销售量],,ASC,Dense)

其他保持不变,就能显示Bottom N了

http://www.dtcms.com/a/286985.html

相关文章:

  • 番茄项目1:定了一个新的目标——做一个番茄工作法的web项目!
  • 光伏财务管理:在阳光与资本的精密计算中前行
  • VSCode - VSCode 快速跳转标签页
  • Web攻防-访问控制篇水平越权垂直越权未授权访问级别架构项目插件SRC复盘
  • pytest + requests 接口自动化测试框架
  • [特殊字符] Spring Boot 常用注解全解析:20 个高频注解 + 使用场景实例
  • Anime.js 超级炫酷的网页动画库之SVG路径动画
  • 双指针(滑动窗口)相关算法题
  • RLHF(基于人类反馈的强化学习),DPO(直接偏好优化), GRPO(组相对偏好优化)技术概述
  • 鸿蒙开发--端云一体化--云对象
  • 龙虎榜——20250718
  • 【C++】红黑树,“红“与“黑”的较量
  • 【18位数据次方提高数据输出速度】2022-3-9
  • 多线程-1-基础写法
  • 顺理成章学RL-1(based Stanford CS234 Reinforcement Learning)
  • Webstorm 前端断点调试
  • pom.xml文件中的${}变量从哪里传值
  • Couchbase 可观测性最佳实践
  • ModbusRTU转profibus网关与涡街液体流量计通讯读取流量计温度
  • Android性能优化之启动优化
  • python学智能算法(二十三)|SVM-几何距离
  • Python 入门手札:从 0 到会--第九天Python的模块化编程--模块、包以及常见系统模块和第三方模块总结
  • 微店平台商品详情接口技术实现指南
  • C语言:预处理
  • 软件测试全谱系深度解析:从单元到生产的质量保障体系
  • JavaScript笔记
  • 功能安全之BIST的基本原理
  • 关于tftp怎么把res文件夹传输给开发板的操作步骤:
  • 通过代码识别大小端模式
  • 先让 AI 学会害怕,再让它握紧方向盘