Power BI中创建父子层级二:父级单独产生值

news2025/1/8 5:14:38

一、父子层级

在数据分析中,经常会遇到父子层级问题,通常来说,父子层级又可以分为两种情况,一种为图1,江苏中烟的销量就是南京品牌和苏烟品牌的销量之和,南京品牌的销量就是南京(硬红)和南京(炫赫门)的销量之和,即父级的值为子级值的和,父级不单独产生值;另一种为图2,是组织的层级结构,现在如果要统计相关的报销费用,会发现老板层级产生的报销费用不仅仅只是其子级经理层的报销费用之和,还包括了老板自己产生的报销费用;同理,经理层的报销费用不仅仅是其子级组长层的报销费用之和,还包括了经理自己产生的报销费用,此时父级会单独产生值。为此,将父子层级分为两类:一类是父级不单独产生值,另一类为父级单独产生值。本文主要介绍第二种类型父级单独产生值的情况。

图1:

图2:

二、问题描述

已知某组织层级结构和二月份费用报销清单如下

图:层级结构

表:二月份费用报销清单

要求,通过父子层级结构统计二月份的报销费用汇总表。结果呈现如下图

表:二月份的报销费用汇总表

三、问题分析

1、创建层级路径

  • 新建列,层级路径=层级路径 = PATH('二月份费用报销清单'[姓名],'二月份费用报销清单'[直属上级])

2、创建层级

  • 新建列,层级1 = PATHITEM('二月份费用报销清单'[层级路径],1)
  • 新建列,层级2 = PATHITEM('二月份费用报销清单'[层级路径],2)
  • 新建列,层级3 = PATHITEM('二月份费用报销清单'[层级路径],3)
  • 新建列,层级4 = PATHITEM('二月份费用报销清单'[层级路径],4)

3、修正层级

分析:对于有报销费用且存在子级的人员姓名,在其子级显示其姓名,但在其次子级不显示(如果存在次子级)。换句话说,如果层级值为空且父级有非空子级,则显示为父值,否则显示原层级值。

  • 新建列,层级一 = '二月份费用报销清单'[层级1]
  • 新建列,层级二 = IF(ISBLANK('二月份费用报销清单'[层级2]) &&CALCULATE(DISTINCTCOUNTNOBLANK('二月份费用报销清单'[层级2]),FILTER(ALL('二月份费用报销清单'),'二月份费用报销清单'[层级1]=EARLIER('二月份费用报销清单'[层级1])))>0,'二月份费用报销清单'[层级1],'二月份费用报销清单'[层级2])

其中CALCULATE(DISTINCTCOUNTNOBLANK('二月份费用报销清单'[层级2]),FILTER(ALL('二月份费用报销清单'),'二月份费用报销清单'[层级1]=EARLIER('二月份费用报销清单'[层级1])))>0,用来判断其父级是否存在非空子级。

  • 新建列,层级三 = IF(ISBLANK('二月份费用报销清单'[层级3]) && CALCULATE(DISTINCTCOUNTNOBLANK('二月份费用报销清单'[层级3]),FILTER(ALL('二
  • 月份费用报销清单'),'二月份费用报销清单'[层级2]=EARLIER('二月份费用报销清单'[层级2])))>0,'二月份费用报销清单'[层级2],'二月份费用报销清单'[层级3])
  • 新建列,层级四 = IF(ISBLANK('二月份费用报销清单'[层级4]) && CALCULATE(DISTINCTCOUNTNOBLANK('二月份费用报销清单'[层级4]),FILTER(ALL('二月份费用报销清单'),'二月份费用报销清单'[层级3]=EARLIER('二月份费用报销清单'[层级3])))>0,'二月份费用报销清单'[层级3],'二月份费用报销清单'[层级4])

4、创建父子层次结构

以字段“层级一”创建层次结构,然后依次将“层级二”、“层级三”、“层级四”添加到“层级一 层次结构”中。

5、新建度量值-报销费用

新建度量值,报销费用1 = SUM('二月份费用报销清单'[费用])

6、汇总表优化

问题,上图中姓名为空的报销费用不用显示,如何进行优化呢?

分析:逐个层级进行筛选判断,如果其筛选值为空且被当前层级筛选,则报销费用显示为空。例如,上图中第一个空值,其属于“层级四”,即如果筛选值为空,且被第四层级筛选,则报销费用显示为空。

  • 新建度量值,层级一筛选 = ISFILTERED('二月份费用报销清单'[层级一])
  • 新建度量值,层级二筛选 = ISFILTERED('二月份费用报销清单'[层级二])
  • 新建度量值,层级三筛选 = ISFILTERED('二月份费用报销清单'[层级三])
  • 新建度量值,层级四筛选 = ISFILTERED('二月份费用报销清单'[层级四])

红色框选的需要保留,黄色框选的不需要,两者的区别在于

(1)红色框内姓名不为空,黄色框内姓名为空;

(2)红色框内姓名属于第三层级,所以“层级四筛选“为”FALSE“,黄色框内姓名属于第四层

级,据以“层级四筛选“为”TRUE“。

备注:能否通过直接判断第一列姓名是否为空来去除?不可以。原因:如上图,虽然红色框内显示了“姓名“,但是其属于第三层级,其第四层级也是空,所以当第四层级的值为空时就去除,这时,红色框内的记录也会被去除。

对层级筛选进行优化

  • 修改度量值,层级一筛选 = IF(ISBLANK(SELECTEDVALUE('二月份费用报销清单'[层级一])) && ISFILTERED('二月份费用报销清单'[层级一]),0,1)
  • 修改度量值,层级二筛选 = IF(ISBLANK(SELECTEDVALUE('二月份费用报销清单'[层级二])) && ISFILTERED('二月份费用报销清单'[层级二]),0,1)
  • 修改度量值,层级三筛选 = IF(ISBLANK(SELECTEDVALUE('二月份费用报销清单'[层级三])) && ISFILTERED('二月份费用报销清单'[层级三]),0,1)
  • 修改度量值,层级四筛选 = IF(ISBLANK(SELECTEDVALUE('二月份费用报销清单'[层级四])) && ISFILTERED('二月份费用报销清单'[层级四]),0,1)

分析:需要去除的行的层级筛选中至少有一个0,而需要保留的行中层组织筛选中全是1。

对度量值报销费用进行优化

新建度量值,报销费用 = IF('度量值表'[层级一筛选] && '度量值表'[层级二筛选] && '度量值表'[层级三筛选] && '度量值表'[层级四筛选],SUM('二月份费用报销清单'[费用]),BLANK())

7、可视化图表优化

去除矩阵中的“报销费用1“、”层级一筛选“、”层级二筛选“、”层级三筛选“、”层级四筛选“。

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

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

相关文章

cocos开发微信小游戏ci机器人实践

1.cocos使用命令行发布微信小游戏项目 1.1 先编辑微信小游戏构建发布配置,然后导出配置,会生成一个buildConfig_wechatgame.json的配置文件 1.2 使用命令行构建微信小游戏项目 D:\CocosDashboard\resources.editors\Creator\3.4.2\CocosCreator.exe --…

硅烷试剂1873-77-4_Tris(trimethylsilyl)silane_三(三甲基硅基)硅烷

●中文名:三(三甲基硅基)硅烷,三(三甲硅基)硅烷●英文名:TRIS(TRIMETHYLSILYL)SILANE,Tris(trimethylsilyl)Silane,Tris(trimethylsilyl)silaneTris(trimethylsilyl)silane中含有硅烷基&#xf…

JavaScript 中清空数组的几种方法

目录 Array.prototype.splice() 将 length 设置为 0 分配新的空数组 length 0和 Array [] 之间的差异? JavaScript 中清空数组的几种方法多少人都想走出浪浪山 🧨🧨🧨 Array.prototype.splice() let course [HTML, CSS, Java…

第四章.神经网络—线性神经网络,Delta学习规则

第四章.神经网络 4.2 线性神经网络与Delta学习规则 线性神经网络在结构上与感知器非常相似,只是激活函数不同。在模型训练时把原来的sign函数改成purelin函数:y x 1.激活函数 2.线性神经网络示例 1).题目: 假设平面坐标系上有四个点,(3,3)…

基于python的二手房数据分析,思路+代码范例

本篇博客将基于 Python ,梳理二手房数据分析的整体过程。 文章目录思路整理数据分析步骤的示例代码基于 Python 的二手房分析 | 另一种代码思路整理 数据收集:从网站或其他数据源收集二手房数据,并将其存储在 CSV 或其他数据格式中。数据清洗…

Python连接Liunx中mysql数据库-多表查询【10个经典案例】

关于Python连接liunx中mysql数据库的方式在这一篇文章 Python连接Liunx中mysql数据库-保姆级教程 关于Python针对liunx中的mysql数据库进行增删改查操作的文章在这一篇可以看一下 Python连接Liunx中mysql数据库-增删改查 对于单表查询的学习可以看这一篇文章 Python对liunx中my…

帆软FineReport 实现省市区树形联动

在项目数据展示中,涉及到行政区划,省市区三级联动,运用帆软FineReport该如何实现,记录下来,方便备查。 第一步、树形数据准备 行政区划主要分为三级,即省市区,特殊的包含四个直辖市&#xff0…

【人机交互】COMP5517 HCI 课程笔记

人机交互Class 1: Overview of Human Computer Interaction人机交互的目标What does HCI involveClass 1 ContentImportance of HCISteps of HCISome HCI ProductsClass 1: Overview of Human Computer Interaction 人机交互的目标 Methods for grounding the design in real…

Windows 11 22H2 中文版、英文版 (x64、ARM64) 下载 (updated Jan 2023)

Windows 11, version 22H2,2023 年 1 月 更新,持续更新中… 请访问原文链接:https://sysin.org/blog/windows-11/,查看最新版。原创作品,转载请保留出处。 作者主页:www.sysin.org 最新发布 &#x1f449…

分布式session

目录 1.什么是session 2.session共享问题 2.1.session复制同步 2.2.存在客户端 2.3.一致性hash 2.4.统一存储 1.什么是session HTTP是无状态的,session是一种会话保持技术,目的就是以一种方式来记录http请求之间需要传递、交互的数据。 不是每次…

vite配置CDN和文件压缩

例子,vue3导入element-plus 打包大小 1.加载插件cdn-import yarn add vite-plugin-cdn-import -D 2.配置vite vite.config.js import { defineConfig } from "vite"; import vue from "vitejs/plugin-vue"; import { autoComplete, Plugin as importTo…

PPI数据集示例项目学习图神经网络

目录PPI数据集:算法原理:代码实现:训练过程PPI数据集: 参考:https://blog.csdn.net/weixin_43580130/article/details/116449062 PPI(生物化学结构) 网络是蛋白质相互作用(Protein-Protein Interaction,P…

若依配置教程(四)代码生成

文章目录一、在数据库中新建表(代码生成的数据表)二、打开若依系统,进入代码生成界面三、编辑字段和基本信息四、解压文件夹,放到相关目录一、在数据库中新建表(代码生成的数据表) 建议在表中必须加的字段…

通信原理笔记—脉冲编码调制(PCM)

目录 脉冲编码调制(PCM): PCM概念: A、μ律的PCM编码: A律对数压缩特性的十三折线法近似: A律正输入值编码表: A、μ率的PCM编码方法: A 率的PCM译码方法: 脉冲编码调制(PCM):…

VUE 中项目启动没有问题,代码中 script 标签有蓝色波浪线标注

项目场景: VUE 中项目启动没有问题,代码中 script 标签有蓝色波浪线标注: 并且有相关的 提示信息 Virtual script not found, may missing <script lang“ts“> / “allowJs“: true / jsconfig.json.volar 问题描述…

ESP32设备驱动-Si7021温度传感器驱动

Si7021温度传感器驱动 文章目录 Si7021温度传感器驱动1、Si7021介绍2、硬件准备3、软件准备4、驱动实现1、Si7021介绍 Si7021 I2C 湿度和温度传感器是一款集成了湿度和温度传感器元件、模数转换器、信号处理、校准数据和 I2C 接口的单片 CMOS IC。 Si7021 提供精确、低功耗、工…

Springboot美容院管理系统 java idea mysql

config:主要用来存储配置文件,以及其他不怎么动用的信息 controller:项目的主要控制文件 dao: 主要用来操作数据库 entity: 实体,用来放与数据库表里对应的实体类,表中的字段对应类中的属性值,并…

【10w字】超详细【百分百拿offer】的面试教程,集合5000多家软件测试公司面试题。

一、引言 1.1 文档目的 【百分百解决在面试中遇到的些问题】 1.2 背景 此文档历经1年的时间,基本概括了深圳与广州,上干家公司的面试问题并结合基本盖了,95%以上的面试问题,文章内容比较多耐心看完必能拿下心仪的offer。在这里…

webpack 配置时包与包版本不对应导致无法启动项目

经常在配置 webpack 时因不指定具体版本导致 npm 下载下来的依赖之间互相不对应。 (简述:webpack 配置时包与包的版本对应问题,报错了去 npm 找包,链接到 github 上查看 package.json 的 peerDependencies 依赖) 例如&…

VAE算法

参考博客: From Autoencoder to Beta-VAE | LilLog 链接:https://zhuanlan.zhihu.com/p/34998569 参考视频: https://www.youtube.com/watch?vYNUek8ioAJk&ab_channelHung-yiLee 为了使模型具有生成能力,VAE 要求每个 p(Z…