层级关系中的末级判断

CONTAINS/CONTAINSROW/IN 包含关系

今天的问题是查找一组编号的最末端:

下面这样一组编号,我们要找出哪些编号是最末端编号,例如:

1.1.1.1

1.1.1.2

1.2.1

这样的都是最末端,就是说他们没有下一级编号。

层级关系中的末级判断

看这个图片更直观一些:

层级关系中的末级判断

我们要找的就是最外层的编号。

数据加载到Power Query,我们要先处理一下:

这里我们要用到的是DAX层级关系的概念,但实际上我们并没有使用PATH类函数来解决问题,层级关系就要有父级与子级,我们做出一列父级出来:

层级关系中的末级判断

这个很容易,提取分隔符之前的文本,从末尾开始:

层级关系中的末级判断

然后我们把这个数据加载到Power Pivot中就可以了:

层级关系中的末级判断

Path 与pl列是我最开始的那个图用的数据,就是用PATH函数与PATHLENGTH函数。

接下来我们来说如何判断哪个是末级,其实道理很简单,就是拿子级中的单个值与父级所有值比对,如果在Excel中用一个COUNTIF函数就可以了。在DAX中我们其实也有很多种方法,我们介绍比较简单的三种方法:

CONTAINS

CONTAINS函数有三个参数:

就是比对父级中是否含有子级中的这个值:TRUE就是包含,FALSE就是不包含,我们要找的末级就是不包含FALSE。

层级关系中的末级判断

CONTAINSROW

CONTAINSROW函数有两个参数:

就是比对列表中有没有这个具体值

层级关系中的末级判断

IN

第三种方法与前两种是一样的,只不过看起来更简单,IN在DAX中是一个逻辑运算符吧:

层级关系中的末级判断

用法就是:

具体值 IN 列表

层级关系中的末级判断

以上的三种DAX方法的本质是一样的。

在Excel中的COUNTIF:

层级关系中的末级判断

在Power Query中的List.Contains:

层级关系中的末级判断

那个图是用Power BI Desktop做的,用的视觉对象是:

层级关系中的末级判断

很简单加入父级、子级就可以了,大小用的层级的深度:

层级关系中的末级判断

好了最后附上Excel文件:

链接: https://pan.baidu.com/s/1r_CiPNsvaTwNcfSzJrtDAQ 提取码: ivyv

展开阅读全文

页面更新:2024-03-28

标签:层级   关系   末尾   中用   直观   函数   深度   逻辑   加载   编号   参数   简单   方法   数据   列表   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top