DAX/PowerBI系列 - 父子层级(Parent-Child Hierarchy)
DAX/PowerBI系列 - 父子层级(Parent-Child Hierarchy)
难度: ★★☆☆☆(2星)
适用范围: ★★★☆☆(3星)
应用场景:
其实很多时候对数据汇总都会有层级关系的问题,不过这个模式说的不是产品分类--子分类这样的场景,而说的是父和子都是存到同一个表中(通过一个父节点的字段指定parent),而且父节点和子节点也可能会产生业务数据。
以下是几个应用场景:
销售 - 组织架构层级 销售员A卖产品,ta的下线a1,a2,a3也销售产品,如何统计ta和ta的下线一个卖了多少产品。 成本 - 产品和产品组件 产品A有一个组装成本,产品组件a1,a2,a3也分别有它们的组装成本,要对总成本汇总。 盈亏 - 账户和关联子账户
打怪 - 大号与各个小号
欢迎交流与骚扰

Power BI显示如下:

以销售为例:
|
|
|
要点: 1.构建遍历结构
2.判断是否为末节点
3.定义遍历层级
4.当计算当前元组对应的浏览的节点深度
注意:由于用中文来命名表/列名并用此来写DAX比较痛苦,试了几次都觉得不太顺手,最后还是用英文了,(⊙o⊙)…
欢迎转载,请保留原文链接和作者信息。O(∩_∩)O谢谢。
DAX/PowerBI系列 - 父子层级(Parent-Child Hierarchy) 作者:马丁叔叔
链接:http://www.cnblogs.com/lizardbi/p/DAX-PATTERN-POWERBI-Parent-Child-Hierarchy.html
1. 构建遍历机构 - 用PATH语句拿到各个人的上线
[Path] = PATH ( Nodes[Name], Nodes[Parent] )

2. 判断末节点
先来看看那些是末节点:
[IsLeaf] = ) = 0 |
|
3. 构建遍历层级
看看几层都有谁:
[HierarchyDepth] = PATHLENGTH ( Nodes[HierarchyPath] ) [Level1] = |
|
4.计算当前元组对应的浏览的节点深度,用于计算
BrowseDepth = ISFILTERED ( Nodes[Level1] ) |
假如简单的计算,
[Sales Amount Simple] := |
|
问题:
你会发现:上面有图并没有显示Brad和Annabel各自的值[Sales Amount Simple],但是他们现在汇总的值却比他们对应的子节点的总和要大。
譬如:Brad子节点汇总应该为(Chris400 + Vince500 = 900),但是Brad却为1300。而Brad本身400并没有显示出来。
改进:
[Sales Amount] := |
|
上面为原文给出的计算,可以看到 左图为pivot table勾选了显示没有数据的显示,右图为不显示没有数值的行。注意这里要显示Subtotal才会显示中间的节点和根节点,如果不勾选的话就会得到下图。

正如下面左边,在PowerBI里面,并没有正确的显示。

再改进:
Sales $ = |
Excel显示如下:左边为隐藏没有数据的行,右边显示了没有数据的Bill
|
PowerBI显示如下:
左边是上面改进前的[Sales Amount]的显示,右图是上面[Sales $]的显示。最后一列才是我想要的。
右上的图可以drill-down,如果想玩,可以在这里下载。链接: https://pan.baidu.com/s/1geJe3yN 密码: hfh7
好了,这算是在DAX patterns里面入门级的一个了。
参考文章:http://www.daxpatterns.com/parent-child-hierarchies/
欢迎围观和讨论。。。
DAX/PowerBI系列 - 父子层级(Parent-Child Hierarchy)的更多相关文章
- DAX/PowerBI系列 - 参数表(Parameter Table)
DAX/PowerBI系列 - 参数表(Parameter Table) 难度: ★☆☆☆☆(1星) 适用范围: ★★★★☆(4星) 概况: 这个模式比较简单灵活,而且很实用.所用的DAX语句也比较简 ...
- DAX/PowerBI系列 - 关于时间系列 - 如何用脚本生成时间维度 (Generate Date Dimension)
跟大家的交流是我的动力. :) DAX/PowerBI系列 - 关于时间系列 - 如何用脚本生成时间维度 (Generate Date Dimension) 难度: ★☆☆☆☆(1星) 适用范围: ★ ...
- DAX/PowerBI系列 - 玩转阿里云 Alicloud Pricing
DAX/PowerBI系列 - 玩转 阿里云主机 Ali Cloud ECS 难度: ★★☆☆☆(1星) 适用范围: ★★★☆☆(3星) 欢迎交流与骚扰 这是啥: 双十一就到了,码农门,程序猿们有没有 ...
- DAX/PowerBI系列 - 关于时间系列 - 时间相关数值比较 - 用非自带函数
DAX/PowerBI系列 - 关于时间系列 - 时间相关数值比较 - 用非自带函数 文末有彩蛋,解决蛋疼问题 难度: ★★☆☆☆(2星) 适用范围: ★★★☆☆(3星) 概况: 基于时间的汇总可能是 ...
- (玩起来)DAX/PowerBI系列 - 参数表(Parameter Table) - 多时间段数值对比
盆友们,边看文章边玩,请耐心等待PowerBI load出来~~~~ (7.8秒钟) DAX/PowerBI系列 - 参数表(Parameter Table) - 多时间段数值对比 难度: ★☆☆☆☆ ...
- DAX/PowerBI系列 - 累计总计(Cumulative Total)
DAX/PowerBI系列 - 累计总计(Cumulative Total) 2017/07/23 更新:B列公式(见最后) 难度: ★★☆☆☆(2星) 适用: ★★☆☆☆(2星) 概况: 这个模式普 ...
- DAX/PowerBI系列 - 参数表(Parameter Table) 度量值模板
DAX/PowerBI系列 - 参数表(Parameter Table) 度量值模板 难度: ★★☆☆☆(2星) 适用范围: ★★★☆☆(3星) 概况: 当你有多个度量值都需要计算YTD,MoM,而又 ...
- DAX/PowerBI系列 - 库存总价值(Inventory Value)
DAX/PowerBI系列 - 库存总价值(Inventory Value) 欢迎交流与骚扰 难度: ★★☆☆☆(2星) 适用: ★★☆☆☆(2星) 概况: 有多少货(库存)当然重要(对于运营人员), ...
- DAX/PowerBI系列 - 参数表(Parameter Table) - 大客户分析(Top N)
DAX/PowerBI系列 - 参数表(Parameter Table) - 大客户分析(Top N) 难度: ★☆☆☆☆(1星) 适用范围: ★★★☆☆(3星) 概况:此文为DAX/PowerBI系 ...
随机推荐
- 常用的JavaScript字符串处理函数及用法
最近参加了几次前端实习生招聘的笔试,发现很多笔试题都会考到字符串的处理,比方说去哪儿网笔试题.淘宝的笔试题等,如果你经常参加笔试或者也是一个过来人,相信你也跟我一样,发现字符串的处理是前端招聘过程中最 ...
- 修改GitHub上项目语言显示的问题
问题 最近将自己写的博客放到github上了.由于使用了富文本编辑器.jQuery.Bootstrap等第三方插件,导致js.css等代码远远超过你自己写的代码. 于是也就成这样了 而且这里也显示Ja ...
- android 快捷技巧
快捷方式 <!--[if !supportLists]-->0. Ctrl + 1 (快速修复) <!--[if !supportLists]-->1. Ctrl + D (删 ...
- 将SWF文件用作资源打包
使用Flash开发网页游戏少不了与各种美术资源打交道.对于静态资源的那就是各种图片,对于会动的资源可以考虑直接做成swf.制作成swf的美术资源又可以分为两种:一种是直接将关键帧罗列在主时间轴上,那么 ...
- ZeroMQ 的模式
在需要并行化处理数据的时候,采用消息队列通讯的方式来协作,比采用共享状态的方式要好的多.Erlang ,Go 都使用这一手段来让并行任务之间协同工作. 最近读完了 ZeroMQ 的 Guide.写的很 ...
- IOS解析XML
XML也许是我们储存数据和通讯数据中最常见的一种简易方式,当我们来到XML的海洋时,我们会发现当我们用iPhone程序解析XML时,我们是有如此多的选项,让人眼花缭乱.iOS SDK本身就带有两种不同 ...
- 基于MAC OS 操作系统安装、配置mysql
$ sudo mv mysql-5.1.45-osx10.6-x86_64 /usr/local/mysql$ cd /usr/local$ sudo chown -R mysql:mysql mys ...
- Java豆瓣电影爬虫——减少与数据库交互实现批量插入
节前一个误操作把mysql中record表和movie表都清空了,显然我是没有做什么mysql备份的.所以,索性我把所有的表数据都清空的,一夜回到解放前…… 项目地址:https://github.c ...
- OCR技术浅探: 语言模型(4)
由于图像质量等原因,性能再好的识别模型,都会有识别错误的可能性,为了减少识别错误率,可以将识别问题跟统计语言模型结合起来,通过动态规划的方法给出最优的识别结果.这是改进OCR识别效果的重要方法之一. ...
- 蓝桥网试题 java 基础练习 01字串
---------------------------------------------------------------------- 还括以 0.0 --------------------- ...



