BI技巧丨子类Top及其他

news2024/12/28 21:03:36

BOSS:白茶,能不能在展示产品销量的时候,前三的展示,其他的都归为“其他”啊?
白茶:可以啊!安排!

在实际项目中,一张Dashboard看板的设计,既要考虑逻辑的准确无误,也需要考虑用户的使用体验,更多的,是需要我们带有一点产品人性化的理念去设计看板。

日常汇报中,留给用户阐述的时间可能并不充裕,这就要求用户在使用看板时,可以快速准确地描述出问题给上层领导,这种思路,其实就是**“帕累托二八定律”**在工作中的应用。

案例数据:

这是本期的案例数据,共计三张表,一张产品表,一张分店表,一张事实表。

我们需要解决的问题就是:

当产品销量排名符合我们设定的阈值逻辑时,则正常展示销量,否则将超过阈值的数据,统一汇总为“其他”。

要实现这个问题,我们还需要额外添加一张表。

这是我们重新构建的一张产品维度表,可以看到,每个产品组的下面,我们都添加了“其他”这一分类。

PS:
小伙伴们可以通过其他方式构建此表,方法不唯一。

将上述的四张表,导入到PowerBI中,模型关系如下:

为了能够更加灵活展示Top,我们继续添加一张参数表。

到这里,我们的准备工作结束。

基础指标:

销售数量:

001.Quantity = 
SUM ( 'Fact_Sales'[Quantity] )

切换上下文的销售数量:

002.CurrentValue = 
VAR CurrentProduct =
    VALUES ( 'Dim_ProductII'[ProductName] )
VAR CurrentValue =
    CALCULATE (
        [001.Quantity],
        FILTER ( 'Dim_Product', 'Dim_Product'[ProductName] IN CurrentProduct )
    )
RETURN
    CurrentValue

这一步的目的,是为了将原本在产品表展示的销量,可以在第二张产品表进行展示,结果如下:

那么如何展示Top和其他呢?我们先要有一个排名的度量值。

销量排名:

003.CurrentQuantityRankx = 
IF (
    HASONEFILTER ( 'Dim_ProductII'[ProductName] ),
    RANKX ( ALLSELECTED ( 'Dim_ProductII'[ProductName] ), [002.CurrentValue] )
)

结果如下:

有了排名之后,我们就可以实现动态展示Top和其他了。

004.TopOther = 
VAR CurrentProduct =
    SELECTEDVALUE ( 'Dim_ProductII'[ProductName] )
VAR Result =
    IF (
        CurrentProduct <> "其他",
        IF (
            [003.CurrentQuantityRankx] <= [Dim_Top Value],
            [002.CurrentValue],
            BLANK ()
        ),
        CALCULATE (
            [002.CurrentValue],
            FILTER (
                ALLSELECTED ( 'Dim_ProductII'[ProductName] ),
                'DAX'[003.CurrentQuantityRankx] > [Dim_Top Value]
            )
        )
    )
RETURN
    Result

最终展示效果如下:

这里是白茶,一个PowerBI的初学者。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/146767.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring中@Conditional注解详解

文章目录Conditional是Spring4新提供的注解&#xff0c;它的作用是按照一定的条件进行判断&#xff0c;满足条件给容器注册bean。首先创建Dog类然后创建MyCondition类定义两个Bean测试方法AnnotationConfigApplicationContext测试ConditionalOnBean和ConditionalOnMissingBean注…

51单片机学习笔记_8 IICAT24C02 芯片的应用

I2C EEPROM I2C I2C&#xff08;Inter&#xff0d;Integrated Circuit&#xff09;总线是由 PHILIPS 公司开发的两线式 串行总线&#xff0c;用于连接微控制器及其外围设备。 I2C 结构 I2C 只有两根双向信号线&#xff0c;一根是 SDA 数据线&#xff0c;一根是 SCL 时钟线。…

2-选择题练手

1.HASH函数冲突处理方式不包括以下哪一项 A.开放定址法 B.链地址法 C.插入排序法 D.公共溢出区发 答&#xff1a;C 析&#xff1a; HASH函数冲突处理方式有&#xff1a; 开放定址法&#xff1a;&#xff08;线性探测再散列&#xff0c;二次探测再散列&#xff0c;伪随机…

Netty进阶——粘包与半包(固定分隔符方式解决粘包问题)

目录一、固定分隔符方式解决粘包问题&#xff08;代码示例&#xff09;1.1、固定分隔符解决粘包问题的服务端代码示例1.2、固定分隔符方式解决粘包问题的客户端代码示例1.3、分别启动服务端&#xff0c;客户端&#xff0c;查看服务端结果输出一、固定分隔符方式解决粘包问题&am…

vitepress(四):引入vue组件

这节课的内容需要有前置的良好的Vue基础&#xff0c;如果你仅仅想搭建一个存放md文件的网站的话&#xff0c;可以不必学习后面的内容&#xff0c;当然如果你想个性化自己的站点&#xff0c;那么推荐你学习一下引用的方式和注意点&#xff0c;开始你的个性化之旅 编写VUE组件 …

ARES Map地理信息系统(GIS)

ARES Map地理信息系统(GIS) ARES地图是GRAEBERT的地理信息系统(GIS)产品。该软件是一个复合解决方案&#xff0c;它将GIS的知识和内容放在一个CAD丰富的DWG系统上&#xff0c;并允许您同时使用它们。该软件的地图和设计将以DWG格式自然存储&#xff0c;但它们也可以包含GIS信息…

【阶段三】Python机器学习02篇:机器学习项目流程

本篇的思维导图: 机器学习项目流程 大致分为以下6个环节: (1)项目背景(问题定义) (2)数据收集 (3) 数据预处理与探索性数据分析 (4) 特征工程 (5)构建模型:机器学习模型(算法)的选择

TCP 慢启动突发丢包

TCP 慢启动会导致持续突发丢包。 慢启动以 y2xy2^xy2x 增加窗口&#xff0c;在 BDP 已经填满时&#xff0c;后续的慢启动过程如下&#xff1a; ​每一个 ACK 触发 2 个 报文&#xff0c;最终至少丢掉 1 个 BDP 的数据后 sender 才能检测到丢包而退出慢启动并进行重传。 这是…

C语言蓝桥杯刷题:明码

题目链接 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 汉字的字形存在于字库中&#xff0c;即便在今天&#xff0c;16*16 点阵的字库也仍然使用广泛。 16*16 点阵的字库把每个汉字看成是 1616 个像素信息。并把这些信息记…

电子书销售是一种可以躺赚的商业模式么?

文章目录前言电子书销售市场规模到底有多大&#xff1f;电子书产业链电子书阅读平台电子书销售平台国外国内其它销售模式探讨创建电子书创建电子书的工具电子书下载好去处相关法规前言 不知何时&#xff0c;有了网赚一词&#xff0c;例如去各大平台撸羊毛薅羊毛&#xff0c;利…

Vector - VT System - 继电器板卡_VT2820

这块板卡应该是我个人最喜欢的板卡了&#xff0c;虽然说有很多的模拟板卡、数字板卡等仿真板卡&#xff0c;但是在实际的应用中&#xff0c;我们仿真还是很难做到绝对的信号一致&#xff0c;但是如果有实际的硬件&#xff0c;通过继电器板卡就很好的模拟实际车上的场景&#xf…

定时器(Timer)

一、定时器是什么&#xff1f; 定时器类似于我们生活中的闹钟&#xff0c;可以设定一个时间来提醒我们。 而定时器是指定一个时间去执行一个任务&#xff0c;让程序去代替人工准时操作。 标准库中的定时器: Timer 方法作用void schedule(TimerTask task, long delay)指定dela…

JS数组对象——中文按照首字母排序(分组)sort()、localeCompare()

JS数组对象——中文按照首字母排序&#xff08;sort 、localeCompare&#xff09;往期同类文章场景复现根据中文首字母排序1、首字母基础排序2、排序并且分组往期同类文章 文章内容文章链接JS数组对象——根据日期进行排序&#xff0c;按照时间进行升序或降序排序https://blog…

PLC算法系列之数字低通滤波器(离散化方法:双线性变换)

低通滤波器在信号处理专栏有后向欧拉法的详细介绍和源代码,请查看相应的文章,链接如下: PLC信号处理系列之一阶低通(RC)滤波器算法_RXXW_Dor的博客-CSDN博客_rc滤波电路的优缺点1、先看看RC滤波的优缺点 优点:采用数字滤波算法来实现动态的RC滤波,则能很好的克服模拟滤波…

windows下安装不同版本Python教程

前言 博主也是很长一段时间没有更新文章了吧&#xff0c;因为最近都在忙着升级我的API管理系统&#xff0c;还有准备会考&#xff0c;时隔大概一个月&#xff0c;我带来了本次文章&#xff0c;如何在windows系统下安装多个版本Python&#xff0c;且各版本Python有不同的全局命…

认真学习MySQL中的那些日志文件-二进制日志(binlog)

binlog即binary log&#xff0c;二进制日志文件&#xff0c;也叫作变更日志&#xff08;update log&#xff09;。它记录了数据库所有执行的DDL和DML等数据库更新事件的语句&#xff0c;但是不包含没有修改任何数据的语句&#xff08;如数据查询语句select、show等&#xff09;…

Allegro174版本新功能介绍之关闭拷贝铜皮带网络属性功能

Allegro174版本新功能介绍之关闭拷贝铜皮带网络属性功能 Allegro在172以及以下的版本的时候,拷贝铜皮的时候会自动带上被铜皮的网络属性,在升级到了174版本的时候,是可以随时关闭和打开这个功能的,如下图 除了铜皮,过孔也是可以关闭和打开这个功能的,具体操作如下 选择Se…

NOTE:2022年11月27日以后精密星历采用长命名

IGS切换到新的参考框架—IGS20&#xff0c;以作为其产品的基础。IGS20 与 2022 年 4 月发布的 ITRF2020 密切相关。最新的卫星和地面天线校准 igs20.atx 也将同时生效&#xff0c;与 IGS20 一起使用。IGS 打算从 GPS 第 2238 周&#xff08;2022 年 11 月 27 日&#xff09;的产…

一篇分析Linux虚拟化KVM-Qemu分析之timer虚拟化

说明&#xff1a; KVM版本&#xff1a;5.9.1QEMU版本&#xff1a;5.0.0工具&#xff1a;Source Insight 3.5&#xff0c; Visio 1. 概述 先从操作系统的角度来看一下timer的作用吧&#xff1a; 通过timer的中断&#xff0c;OS实现的功能包括但不局限于上图&#xff1a; 定时…

RootPort的completion timeout为什么不能防止MCE

PCIe split transaction协议在解释completion timeout机制前&#xff0c;我们首先说一下PCIe split transaction协议是什么&#xff0c;以及为什么PCIe要选择split transaction&#xff1f;Split transaction协议是从PCI-X总线的引入的一个重要特性&#xff0c;该传输协议替代了…