当前位置: 首页 > 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://www.xdnf.cn/news/1476163.html

相关文章:

  • tp报错解决
  • 【Gigascience】时空转录组测序探索小鼠心脏发育的细胞与分子基础
  • 留数法分解有理分式
  • Rust在医疗系统中的应用:安全、性能与合规性实践(上)
  • 3.进程调度:常见算法
  • leetcode30.串联所有单词的子串
  • [数据结构] LinkedList
  • c++之基础B(x转10进制,含十六进制)(第四课)
  • 7.网络虚拟化
  • 【开题答辩全过程】以 基于Hadoop电商数据的可视化分析为例,包含答辩的问题和答案
  • Lua和C#比较
  • 分布式go项目-搭建监控和追踪方案补充-ELK日志收集
  • OpenHarmony之有源NFC-connected_nfc_tag模块详解
  • LangChain实战(十八):构建ReAct模式的网页内容摘要与分析Agent
  • 同一台nginx中配置多个前端项目的三种方式
  • 贪心算法在脑机接口解码问题中的应用
  • qiankun 微前端接入实战
  • 在线教育系统源码选型指南:功能、性能与扩展性的全面对比
  • import type在模块引入中的作用
  • 从“能说话”到“会做事”:AI工具如何重塑普通人的工作与生活?
  • 语义切片技术深度解析:重新定义RAG时代的文本处理范式
  • 分布式通信平台测试报告
  • 【Neovim】Vi、Vim、Neovim 与 LazyVim:发展史
  • 【开题答辩全过程】以 “爱心”家政管理系统为例,包含答辩的问题和答案
  • Linux/UNIX系统编程手册笔记:共享库、进程间通信、管道和FIFO、内存映射以及虚拟内存操作
  • 宝塔PostgreSQL安装pgvecto插件contrib包实现向量存储
  • 2025年渗透测试面试题总结-54(题目+回答)
  • rom定制系列------小米8“无人直播”虚拟摄像头 刷机固件 实现解析过程
  • `vector_ip_ops`(内积操作)和 `vector_cosine_ops`(余弦相似度操作)的不同
  • 详解 ELO 评分系统