首页 > 其他分享 >175_模型_Power BI 显示详细信息(Show Ditails)

175_模型_Power BI 显示详细信息(Show Ditails)

时间:2023-04-23 15:44:44浏览次数:48  
标签:Ditails 01 Power Show BI RELATED 明细 Expression

175_模型_Power BI 显示详细信息(Show Ditails)

一、背景

在 Power BI 数据分析的道路上有一个闭环:明细数据(详细信息)=>数据清洗=>根据业务建立模型=>出具数据分析报告(可视化)=>洞见问题=>根据问题指标返回业务人员问题指标的明细数据=>推动改善,监控洞见。

很多时候在洞见问题后,业务人员一般情况下第一时间会说:"给我看看明细数据"。因为业务人员对自己的业务最为清晰,所以需要通过大指标发现问题后,再对明细数据消化找到问题所在,实现数据驱动业务的逻辑。

那么洞见问题后,数据分析人员如何快速的给到明细数据呢?

这就引出我们今天的话题,Power BI 显示详细信息(Show Detils)。

二、效果展示

我先来看一个 Power BI 报告页面示例。

Power BI 公共 web 效果:https://demo.jiaopengzi.com/pbi/175-full.html

图-01

在图中,红色框选出来的指标是有问题的,我们想看到一个数据明细如何做到呢?

通过 Power BI Desktop 外部工具 Analyze in Excel(下载地址:https://jiaopengzi.com/tools) 可以构建和矩阵相同的透视表,实现显示详细信息。

图-02

显示详细信息的操作过程。

图-03

如果拿到附件出现如下报错,是因为Power BI 每次启动的服务端口都是随机的。所以需要借助 DAX Studio 去拿到端口修改过来即可。

图-04

Excel中保存的 Analysis Server 的信息。

图-05

通过 DAX Studio 我们可以看到当前打开的 Power BI Desktop 文件的 Server 信息,点击复制替换上图中的信息。

图-06

以上都是在本地,数据分析人员通过 Power BI Desktop 去操作。

那么我们如何在业务人员不拿到 .pbix 文件的情况下,把这个能力开放给业务人员自己呢?

可以在 Power BI 在线服务中通过分发报告到对应的业务人员,通过导出=>在 Excel 中分析的功能实现。

图-07

当然还可以使用 Power BI Report Server 来实现。

三、模型设计

前面我们展示了最终效果,获取当前指标值按照报表开发定义规则在当前上下文的明细数据的模型如何设计的呢?

这里需要引入引入一个知识点:Detail Rows Expression

度量值本身有自己的表达式,也有明细行的表达式。对应的明细数据可以使用函数 DETAILROWS 获取。

图-08

一般情况下,简单的聚合函数写的度量值对应的明细数据就是聚合函数包裹的列对应的表。如果是复杂度量值,就不会显示明细数据。比如这里的 03_YOY%

为了能够很好的服务于业务人员,Detail Rows Expression 需要根据业务的需求提前设计好,如:01_销售金额 度量值的 Detail Rows Expression。

01_销售金额 度量值的 Expression

SUM ( 'T05_订单子表'[F_06_产品销售金额] ) / 1E6

01_销售金额 度量值的 Detail Rows Expression

VAR fenzi =
    SELECTCOLUMNS (
        'T05_订单子表',
        "订单编号", RELATED ( 'T04_订单主表'[F_01_订单编号] ),
        "大区]", RELATED ( 'D00_大区表'[F_02_大区] ),
        "省份", RELATED ( 'D01_省份表'[F_05_省简称2] ),
        "城市", RELATED ( 'D02_城市表'[F_03_城市] ),
        "区县", RELATED ( 'D03_区县表'[F_03_区县] ),
        "门店名称", RELATED ( 'T01_门店表'[F_02_门店名称] ),
        "下单日期", RELATED ( 'T04_订单主表'[F_03_下单日期] ),
        "客户名称", RELATED ( 'T02_客户表'[F_02_客户名称] ),
        "客户性别", RELATED ( 'T02_客户表'[F_04_客户性别] ),
        "客户行业", RELATED ( 'T02_客户表'[F_06_客户行业] ),
        "客户职业", RELATED ( 'T02_客户表'[F_07_客户职业] ),
        "产品分类", RELATED ( 'T00_产品表'[F_02_产品分类] ),
        "产品名称", RELATED ( 'T00_产品表'[F_03_产品名称] ),
        "产品销售价格", RELATED ( 'T00_产品表'[F_04_产品销售价格] ),
        "折扣比例", 'T05_订单子表'[F_04_折扣比例],
        "产品销售数量", 'T05_订单子表'[F_05_产品销售数量],
        "产品销售金额", 'T05_订单子表'[F_06_产品销售金额],
        "送货日期", RELATED ( 'T04_订单主表'[F_04_送货日期] )
    )
RETURN
    fenzi

02_销售金额_去年同期 度量值的 Expression

02_销售金额_去年同期 = CALCULATE ( [01_销售金额], DATEADD ( 'A00_Calendar'[C01_Dates], -1, YEAR ) )

02_销售金额_去年同期 度量值的 Detail Rows Expression

VAR fenmu =
    CALCULATETABLE (
        DETAILROWS ( [01_销售金额] ),
        DATEADD ( 'A00_Calendar'[C01_Dates], -1, YEAR )
    )
RETURN
    fenmu

03_YOY% 度量值的 Expression

03_YOY% = 
VAR fenzi = [01_销售金额]
VAR fenmu =
    CALCULATE ( [01_销售金额], DATEADD ( 'A00_Calendar'[C01_Dates], -1, YEAR ) )
VAR _percent =
    DIVIDE ( fenzi - fenmu, fenmu, BLANK () )
RETURN
    _percent

03_YOY% 度量值的 Detail Rows Expression

VAR fenzi =
    ADDCOLUMNS ( DETAILROWS ( [01_销售金额] ), "@分类", "分子" )
VAR fenmu =
    ADDCOLUMNS ( DETAILROWS ( [02_销售金额_去年同期] ), "@分类", "分母" )
VAR detail =
    UNION ( fenzi, fenmu )
RETURN
    detail

四、总结

  1. 本地使用 Power BI Desktop 相对来说不需要账号免费可用,但这个能力是在分析人员手中,就看如何去平衡。
  2. 如果 Power BI 在线服务报告分发,需要有对应的账号以及相应的产品购买。
  3. Detail Rows Expression 的设计需要符合业务人员需求,比如案例中我们增加了分类:分子、分母的识别,让业务人员很方便快捷地锁定问题。
  4. Detail Rows Expression 也可以配合度量值的 Expression 输出一些文本引导,设计一些如 TOPN、新老客户、购买次数等特定场景的解决方案。

五、B站直播讲解:

时间:2023-04-25 晚 20:00

房间:https://live.bilibili.com/27083331

可长按识别二维码进入房间

图-09

附件下载

https://jiaopengzi.com/2979.html


请关注

全网同名搜索 焦棚子

如果对你有帮助,请 点赞关注三连 支持一下,这是我们更新的动力。

图-10

by 焦棚子

标签:Ditails,01,Power,Show,BI,RELATED,明细,Expression
From: https://www.cnblogs.com/jiaopengzi/p/17346730.html

相关文章

  • Unlock the Power of High-Performance Networking with the IPQ9554
    UnlockthePowerofHigh-PerformanceNetworkingwiththeIPQ9554Intoday'sworld,reliableandhigh-speedinternetconnectivityisessentialforeverythingfromonlinegamingandstreamingtoremoteworkandlearning.Whetheryou'reaconsumer......
  • Microsoft PowerPoint LTSC 2021 for Mac(ppt演示工具) v16.73 beta版
    MicrosoftPowerPointLTSC2021forMac是一款专业的幻灯片演示软件,适用于苹果电脑。是office LTSC2021套装中的一个组成部分,与Word、Excel和Outlook等其他应用程序一起提供。PowerPointLTSC2021具有许多易于使用的工具和功能,可以帮助用户创建具有吸引力的演示文稿。Microsoft......
  • spring boot、cloud -yml:显示/show SQL
    logging:level:com.zking.zkingOAS.FDadmin.mapper:debug在控制台显示业务具体执行的SQL,且有参数说明、有多少数据 application.properties:logging.level.com.wochat.mapper=debug ......
  • 解决uniapp不显示showToast或一闪而过问题
    原因:showToast与其他方法冲突,以onLoad冲突为例第一种:将showToast与showLoading分开,放到mounted中mounted(){//判断是否登录 if(!this.hasLogin){ uni.showToast({ title:'登录过期', icon:'none' }) }},onLoad(option){ ......
  • 一统天下 flutter - widget 选择类: showDatePicker()/showTimePicker/CalendarDatePi
    源码https://github.com/webabcd/flutter_demo作者webabcd一统天下flutter-widget选择类:showDatePicker()/showTimePicker/CalendarDatePicker-日期选择和时间选择示例如下:lib\widget\selection\time_picker.dart/**showDatePicker()/showTimePicker/Calenda......
  • Unlock the Power of High-Performance Networking with the IPQ9554
     Intoday'sworld,reliableandhigh-speedinternetconnectivityisessentialforeverythingfromonlinegamingandstreamingtoremoteworkandlearning.Whetheryou'reaconsumerorabusiness,youneedanetworkingsolutionthatcanhandleh......
  • Chatgpt 帮忙写的脚本_使用powershell 写一段代码,功能实现将指定目录下多个csv 文件整
    需求:使用powershell写一段代码,功能实现将指定目录下多个csv文件整合成一个csv文件以下是使用PowerShell实现将指定目录下多个CSV文件合并为一个的示例代码:powershell点击查看代码#设置源目录和目标文件路径$sourceDirectory="C:\path\to\csv\files"$targetFilePa......
  • 174_技巧_Power BI 动态格式(万|亿)
    174_技巧_PowerBI动态格式(万|亿)一、背景PowerBI2023年4月份更新,新增加了一个预览功能:动态格式(Dynamicformatstringsformeasures),度量值的结果可以动态的显示为不同的格式。今天我们主要来看一个技巧,如何在PowerBI动态的根据数值的大小显示单位为万或者亿。Power......
  • The Super Powers UVA - 11752
     求1~2^64区间里,有多少合法数X合法数:X=a^b,至少存在2个不同的a #include<iostream>#include<algorithm>#include<vector>usingnamespacestd;constintN=65536+3;intb[int(1e6)];__int128_tMAX=1;voidinit(){ inti,j; b[0]=b[1]=1; fo......
  • CF1646E Power Board 题解
    题目链接:https://codeforces.com/contest/1646/problem/E题目大意:有一个\(n\timesm\)的矩阵,其中第\(i\)行第\(j\)列的格子中的数字是\(i^j\)。问:矩阵中存在多少个不同的数?解题思路:可以很明显地发现,第\(1\)行的数字全部都是\(1\),而且在其它行不会出现数值为\(1\)......