前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PowerBI中的Cosplay

PowerBI中的Cosplay

作者头像
陈学谦
发布2020-07-02 17:07:33
1.1K0
发布2020-07-02 17:07:33
举报
文章被收录于专栏:学谦数据运营学谦数据运营

Cosplay比较狭义的解释是模仿、装扮虚拟世界的角色,也被称为角色扮演。由此,在网络上衍生出了新的含义,往往被用来形容“假扮某类人的人”:

那么,什么是PowerBI中的Cosplay呢?

说白了也还是饰演多个角色,只不过主人公变成了维度表。从技术角度来讲,就是一个维度表与同一个事实表的不同列之间建立关系。比方说你有一张日期表,还有一张事实表,事实表中有多个时间列,你想用这张日期表去关联多个不同的日期列。

具体就是下面这个案例,日期表的日期列可以对应Invoice Date ,也可以对应 Delivery Date,视角不同,结果自然也不同。

一旦建立了这个模型,就意味着日期表的date列和销售表的Invoice Date发票日期建立了关联,显示为实线;而Delivery Date发货日期的关系只能是虚线状态,表明未激活。

那么问题来了,如何让报告使用者可以快速地在两种视角之间进行切换呢?

常规解决思路

有两种常用的解决办法,分别说一下:

1.多个日期表

可以通过建立两个或多个日期表,每个日期表分别和事实表的相关日期进行关联,以达到切换的目的。如果只有两个日期列倒还好,如果模型也比较简单也还好。如果事实表中一旦有多个日期列,或者还有其他的表需要关联日期表,那么模型的搭建将是一件非常痛苦的事情。

关于多个日期表的妙处,我在这篇文章中也提到过,大家可以参考:

【运营】任意两个时间段的复购率?Power BI一招帮你搞定

2.单一日期表,多个度量值

模型仍然要使用最开始所讲的:

解决思路是通过建立不同的度量值来使用不同的关系:

Ext Price by Delivery Date =CALCULATE([Ext Price], USERELATIONSHIP('Sales'[Delivery Date], 'Date'[Date]))

不过,与建立多个日期表类似,如果是只有两个日期表或者度量值不多的情况下,这种办法还是比较好用的,但是之后随着度量值逐渐增多,你不得不每次同时建立好几个度量值,且需要思考每次选用哪个度量值。

解决方案:

以上两种解决方案的缺点都很清楚,主要问题是确实不够直观,不够友好。以下是我比较喜欢用的一种方式:

1.新建一个筛选表

基础模型是一个日期表,对事实表建立一个激活关系和一个未激活关系,除此之外,新加了一个date filter表:

这个表并不是要用来筛选某些日期,而是要用来选择使用哪一个关系的。你可以用DAX来建这个表,也可以直接手动输入,里面的内容只有一列两行(看实际的事实表中的日期数量):: “Delivery Date“; “Invoice Date”。

2.写度量值

Ext Price (Filter Aware) =

VAR SelectedDate = SELECTEDVALUE('Date Filter'[Date To Filter], "Invoice Date")

VAR UseInvoiceDate = CALCULATE([Ext Price], USERELATIONSHIP('Sales'[Invoice Date], 'Date'[Date]))

VAR UseDeliveryDate = CALCULATE([Ext Price], USERELATIONSHIP('Sales'[Delivery Date], 'Date'[Date]))

RETURN

SWITCH(

SelectedDate, "Invoice Date",

UseInvoiceDate, "Delivery Date",

UseDeliveryDate, UseInvoiceDate)

度量值看上比它本身复杂得多。第一个VAR确定选择的date filter方式,默认为“Invoice Date”。

接下来的UseInvoiceDate 和 UseDeliveryDate两个度量值,表示的是分别使用两个关系。最后用SWITCH选择并返回使用特定关系的度量值。

使用这种方法,最终用户只要通过切片器就可以切换所要使用的日期,也会标注默认使用Invoice Date。于我而言可以少编写几个度量值,维护起来也方便。

Isn't it?

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PowerBI生命管理大师学谦 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档