BI技巧丨钻取动态度量值

2023-12-16 15:52
文章标签 动态 技巧 度量 bi 钻取

本文主要是介绍BI技巧丨钻取动态度量值,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

PowerBI自带的数据钻取功能,在实际应用中是用户使用度较高的功能之一,特别是需要实际操作的业务用户,往往需要根据汇总的结果定位到相关的明细数据,以便进行下一步的流程操作,这种场景下钻取功能显得尤为便利。

关于钻取功能,白茶之前也介绍过,包括云端的跨页钻取,本期是结合特定的场景进行实际应用的介绍,偏向于业务会多一些。

先来看看本期的案例数据:

数据较为简单,一张事实表。将其导入到PowerBI里面。

案例数据与以往的不同,偏向于商机类型的数据,一般数据来源于SalesForce结构会与此类似,SAP系统中关于销售订单类型的数据,也符合本期的应用场景。

商机数据的划分,前几个阶段都属于未关单数据,最后的Loseing和Win都属于已关单数据。业务用户往往会关注未关单的数据进展如何,是否需要提供额外的支持,已关单的数据其中丢单的原因是什么等等。

而销售订单数据,会划分为已发货/未发货,部分发货/全部发货,已发货确收/已发货未确收等,业务形态与商机数据区别很大,但是在BI上需要的功能点,基本雷同。

编写如下基础度量值:

001.OppAmt =
SUM ( Fact_Opportunity[Amount] )

根据上面的业务形态,不难发现,其实用户想要的,就是动态度量值的切换,我们实现的办法有两种。

①新建维度表,通过逻辑关系关联度量值。

新建如下度量值:

未关单数据:

002.NoEndOppCount =
CALCULATE ([001.OppAmt],FILTER ('Fact_Opportunity','Fact_Opportunity'[Status] IN { "1", "2", "3", "4" })
)

已关单数据:

003.EndOppCount =
CALCULATE ([001.OppAmt],FILTER ('Fact_Opportunity',NOT 'Fact_Opportunity'[Status] IN { "1", "2", "3", "4" })
)

动态度量值:

004.SelectValue =
VAR SelectValue =SELECTEDVALUE ( 'Dim_Select'[Index] )
VAR Result =SWITCH (TRUE (),SelectValue = 1, [002.NoEndOppCount],SelectValue = 2, [003.EndOppCount])
RETURNResult

结果如下:

新建字段参数。

我们将两个结果放在一起对比一下:

从数据上来看,二者在动态度量值的处理上,结果是差不多的。

咱们继续,按照背景介绍,是需要钻取到对应的明细数据的。

分别添加两个明细页,将两个度量值呈现出来。

可以看出,二者之间目前呈现的方式都有点问题,度量值拼接的方式没有数据,而字段参数此时呈现的是2个值,我们来分别钻取看一下效果:

两个度量值都可以满足钻取的需求,但是有一个严重的漏洞,实际上我们在设计报表时,明细表默认是不会选择隐藏的,是需要开放给用户进行明细数据导出的,而两个明细表默认进来的情况,都不太理想,需要我们处理一下。

修改如下度量值:

004.SelectValue =
VAR SelectValue =SELECTEDVALUE ( 'Dim_Select'[Index] )
VAR Result =SWITCH (TRUE (),SelectValue = 1, [002.NoEndOppCount],SelectValue = 2, [003.EndOppCount],[002.NoEndOppCount] + [003.EndOppCount])
RETURNResult

结果如下:

度量值逻辑修改后,可以满足当用户默认不筛选时,呈现正常的数据,而字段参数功能,则无法进行其他修改。

所以,面对如上业务场景时,白茶建议选择度量值维度表关联的方式。

PS:如果有知道解决方案的小伙伴,也可以联系白茶。

这篇关于BI技巧丨钻取动态度量值的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/501034

相关文章

慢sql提前分析预警和动态sql替换-Mybatis-SQL

《慢sql提前分析预警和动态sql替换-Mybatis-SQL》为防止慢SQL问题而开发的MyBatis组件,该组件能够在开发、测试阶段自动分析SQL语句,并在出现慢SQL问题时通过Ducc配置实现动... 目录背景解决思路开源方案调研设计方案详细设计使用方法1、引入依赖jar包2、配置组件XML3、核心配

Pandas利用主表更新子表指定列小技巧

《Pandas利用主表更新子表指定列小技巧》本文主要介绍了Pandas利用主表更新子表指定列小技巧,通过创建主表和子表的DataFrame对象,并使用映射字典进行数据关联和更新,实现了从主表到子表的同... 目录一、前言二、基本案例1. 创建主表数据2. 创建映射字典3. 创建子表数据4. 更新子表的 zb

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删

快速修复一个Panic的Linux内核的技巧

《快速修复一个Panic的Linux内核的技巧》Linux系统中运行了不当的mkinitcpio操作导致内核文件不能正常工作,重启的时候,内核启动中止于Panic状态,该怎么解决这个问题呢?下面我们就... 感谢China编程(www.chinasem.cn)网友 鸢一雨音 的投稿写这篇文章是有原因的。为了配置完

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

Python ZIP文件操作技巧详解

《PythonZIP文件操作技巧详解》在数据处理和系统开发中,ZIP文件操作是开发者必须掌握的核心技能,Python标准库提供的zipfile模块以简洁的API和跨平台特性,成为处理ZIP文件的首选... 目录一、ZIP文件操作基础三板斧1.1 创建压缩包1.2 解压操作1.3 文件遍历与信息获取二、进阶技

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

Java Optional的使用技巧与最佳实践

《JavaOptional的使用技巧与最佳实践》在Java中,Optional是用于优雅处理null的容器类,其核心目标是显式提醒开发者处理空值场景,避免NullPointerExce... 目录一、Optional 的核心用途二、使用技巧与最佳实践三、常见误区与反模式四、替代方案与扩展五、总结在 Java

MySQL中动态生成SQL语句去掉所有字段的空格的操作方法

《MySQL中动态生成SQL语句去掉所有字段的空格的操作方法》在数据库管理过程中,我们常常会遇到需要对表中字段进行清洗和整理的情况,本文将详细介绍如何在MySQL中动态生成SQL语句来去掉所有字段的空... 目录在mysql中动态生成SQL语句去掉所有字段的空格准备工作原理分析动态生成SQL语句在MySQL

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.