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

PowerBI TopN Others

本文介绍了在PowerBI中实现动态排名功能的方法。通过创建维度表对销售、地区、产品类别等维度进行排序,并使用RANKX函数计算排名。

关键步骤包括:1)构建包含多个分析维度的集合表;

                          2)创建可动态切换的KPI指标度量值;

                          3)实现TOPN排名功能,将10名之后的数据自动归入Others类别。

PowerBi实现动态排名,以及将未计入排名的数据分配到Others

红色方框部分极为动态排名,并且 10名之后的数据分配到Others

首先制作排名维度表,这里按 销售、地区、产品类别维度进行排序

维度表-集合 = var _user = SELECTCOLUMNS(ADDCOLUMNS(VALUES(DimEmployee),"分析维度","销售人员"),"分析维度",[分析维度],"Key",[EmployeeKey],//主键"维度明细",[LastName],"Order",1)var _city = SELECTCOLUMNS(ADDCOLUMNS(VALUES(DimGeography),"分析维度","客户省份"),"分析维度",[分析维度],"Key",[GeographyKey],"维度明细",[StateProvinceName],"Order",2)var _subCaategory = SELECTCOLUMNS(ADDCOLUMNS(VALUES(DimProductSubcategory),"分析维度","产品子类别"),"分析维度",[分析维度],"Key",[ProductSubcategoryKey],"维度明细",[EnglishProductSubcategoryName],"Order",3)var _other = DATATABLE("分析维度",STRING,"Key",STRING,"维度明细",STRING,"Order",INTEGER,{{"销售人员",0,"其他",1},{"客户省份",0,"其他",2},{"产品子类别",0,"其他",3}}
)RETURN UNION(_user,_city,_subCaategory,_other)

创建 度量值,这个度量值 需要根据以上创建的维度表的选择进行相应的计算

KPI指标-维度 = var _select = SELECTEDVALUE('维度表-集合'[分析维度])//TREATAS 创建关联关系
//KEEPFILTERS 保持筛选
//必须使用以上两个函数,因为新创建的 度量值-集合表没有与 事实表进行关联,所以在计算时进行关联
var _kpi = SWITCH(TRUE(),_select = "销售人员",CALCULATE([KPI-指标],KEEPFILTERS(TREATAS(VALUES('维度表-集合'[Key]),DimEmployee[EmployeeKey]))),_select = "客户省份",CALCULATE([KPI-指标],KEEPFILTERS(TREATAS(VALUES('维度表-集合'[Key]),DimGeography[GeographyKey]))),_select = "产品子类别",CALCULATE([KPI-指标],KEEPFILTERS(TREATAS(VALUES('维度表-集合'[Key]),DimProductSubcategory[ProductSubcategoryKey]))),BLANK()
)RETURN _kpi

创建排名

RANKX排名 = RANKX(ALL('维度表-集合'[维度明细]),[KPI指标-维度])

根据排名返回对应的数据

TOPN-Others = var _r = [RANKX排名]var _topn = SELECTEDVALUE('TOPN参数'[TOPN参数])var _topnx = IF(_topn <= 0 , 20,_topn)var _dimdetail = SELECTEDVALUE('维度表-集合'[维度明细])//得到 <= 参数topn以前的合计
var _v1 = CALCULATE([KPI指标-维度],FILTER(VALUES('维度表-集合'[维度明细]), [RANKX排名] <= _topnx))var _v2 = CALCULATE([KPI指标-维度],FILTER(ALL('维度表-集合'[维度明细]), [RANKX排名] > _topnx))var v = IF(_dimdetail = "其他",_v2,_v1)RETURN v


文章转载自:

http://Iq1Aotkf.xbxks.cn
http://TJrUxiOb.xbxks.cn
http://PMR73z4d.xbxks.cn
http://eMLpXyCj.xbxks.cn
http://05FOVpUd.xbxks.cn
http://bXE4xA3b.xbxks.cn
http://VQs0ctWy.xbxks.cn
http://uCxQ6dI0.xbxks.cn
http://YEsG6yPr.xbxks.cn
http://estD1jK1.xbxks.cn
http://T1viPH15.xbxks.cn
http://02JcGVry.xbxks.cn
http://kBwt8Q6W.xbxks.cn
http://mg7wjM48.xbxks.cn
http://D7GZPgSj.xbxks.cn
http://Z1befPsY.xbxks.cn
http://27rXWB0F.xbxks.cn
http://cN8SUayx.xbxks.cn
http://jhbGOGEY.xbxks.cn
http://4WkYi5tb.xbxks.cn
http://ZaNDKx8V.xbxks.cn
http://4xhkpi1o.xbxks.cn
http://OTs9stVH.xbxks.cn
http://f0u41hS0.xbxks.cn
http://3nt18YkK.xbxks.cn
http://sgyHowvq.xbxks.cn
http://1fEABadH.xbxks.cn
http://jNcSzQFH.xbxks.cn
http://Hdiyz9BS.xbxks.cn
http://UujPs93l.xbxks.cn
http://www.dtcms.com/a/371169.html

相关文章:

  • 【完整源码+数据集+部署教程】室内场景分割系统源码和数据集:改进yolo11-DWR
  • 零基础Linux操作基础小白快速掌握Shell脚本--流程控制和循环(二)
  • 笔记本连接显示屏显示不全如何解决
  • 【C++】vector 深度剖析及模拟实现
  • Leetcode hot100 最长连续序列
  • Python错误测试与调试——文档测试
  • AI浪潮下,人类创造力的“危”与“机”
  • ​MyBatis关键源码解析​
  • 使用Spring Boot DevTools快速重启功能
  • 【视网膜分割】AFMIP-Net:一种新型的自适应特征调制和隐式提示网络
  • 使用 n8n 结合通义千问大模型构建业务数据库分析智能体
  • 【完整源码+数据集+部署教程】水培植物病害检测系统源码和数据集:改进yolo11-AKConv
  • 解决 Gitee 中 git push 因邮箱隐私设置导致的失败问题
  • 网络中的PAT:小端口映射的大能量
  • 鸿蒙NEXT主题设置指南:应用级与页面级主题定制详解
  • 贪心算法应用:DNA自组装问题详解
  • GEE:基于自定义的年度时序数据集进行LandTrendr变化检测
  • 电子元器件+模拟电路硬件
  • 源码部署mysql8.0.40
  • STM32----W25QXX
  • 状压 dp --- 数据范围小
  • 赋值与深浅拷贝
  • Dart核心语言基础 集合 Map使用指南
  • 下载数据集用于图像分类并自动分为训练集和测试集方法
  • LLM 长上下文 RAG
  • 深入剖析Spring Boot启动流程
  • 郭平《常变与长青》读书笔记(第二章)
  • 郭平《常变与长青》读书笔记(第四章)
  • 中断和异常
  • 压缩空气储能电站可视化管理