数据可视化之DAX篇(十四)DAX函数:RELATED和RELATEDTABLE

Posted qiu-hua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据可视化之DAX篇(十四)DAX函数:RELATED和RELATEDTABLE相关的知识,希望对你有一定的参考价值。

https://zhuanlan.zhihu.com/p/64421378

Excel中知名度最高的函数当属VLOOKUP,它的确很有用,可以在两个表之间进行匹配数据,使工作效率大大提升,虽然它也有很多局限性。这里不讨论VLOOKUP,而是学习一个和VLOOKUP功能很相似的DAX函数:RELATED.

RELATED

 

RELATED是一个值函数,它的参数是一列,RELATED函数也是把一个表的数据通过匹配到另一个表中,前提是使用前应该在两个表之间建立关系。

 

表之间的关系图如下,

 

技术图片

 

订单表的数据如下,

技术图片

 

如果想在订单表中加入产品类别,可以在这个表中新建列,输入,

 

产品类别 = RELATED(‘产品‘[产品类别])

 

订单表中立即出现了产品类别列,

 

技术图片

 

RELATED函数就是这么简单快捷,它只能用于计算列,根据当前的行上下文返回另一表中对应列的数据,适合把维度表的数据,匹配到事实表中,也就是沿着关系的多端找一端的值。

那么如果我们想把事实表的数据,匹配到维度表,从关系的一端找多端的值,怎么办呢?这时就要用到RELATEDTABLE函数。

 

RELATEDTABLE

 

RELATEDTABLE的功能与RELATED类似,不过它返回的是一个表,它的参数也需要一个表,它也是用于计算列,可以沿着关系的一端找多端的值。

比如把订单表的数据返回到客户城市中,新建列,如果直接写,

 

订单数据 = RELATEDTABLE(‘订单‘)

 

将返回错误,

 

技术图片

 

因为RELATEDTABLE函数返回的是一个表,无法直接用于计算列。并且上述表达式也没有任何意义,不知道它到底想要从订单表中得到什么数据。

如果要避免错误,就要把这个函数返回的表进行聚合,比如统计这个表的行数,计算列表达式改为,

 

订单数 = COUNTROWS(RELATEDTABLE(‘订单‘))

 

技术图片

 

返回结果正常,并且该数据有实际意义,计算出了各个城市的订单数量。

以上是关于数据可视化之DAX篇(十四)DAX函数:RELATED和RELATEDTABLE的主要内容,如果未能解决你的问题,请参考以下文章

数据可视化之DAX篇(十八)收藏 | DAX代码格式指南

数据可视化之DAX篇(二十一)连接表的几个DAX函数,一次全掌握

数据可视化之DAX篇(十三)熟练使用FORMAT函数,轻松自定义数据格式

数据可视化之DAX篇掌握时间智能函数,同比环比各种比,轻松搞定!

数据可视化之DAX篇(十九)值得你深入了解的函数:SUMMARIZE

数据可视化之DAX篇(二十)Think in DAX 之报表自动化实践