前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BI技巧丨对比分析

BI技巧丨对比分析

原创
作者头像
PowerBI丨白茶
修改2021-09-04 09:20:38
4190
修改2021-09-04 09:20:38
举报
文章被收录于专栏:PowerBIPowerBI

BOSS:咦?我要干啥来着?哦,对了,白茶?!

白茶:嗯?BOSS,咋地了!

BOSS:咳咳,是这样的,就是我想知道,咱们这些个门店最直观的对比情况!就是那种可以选择任意两个门店进行各项数据对比的!

白茶:对...对比分析?!

BOSS:我不懂这个那个的,你就告诉我能不能整?

白茶:嗯,能!

在日常工作中,关于对比的可视化思路,主要就是采用扇形图、树状图、云词图或者蚊香图之类的可视化方式。

但是白茶觉得,有时候当类别过多,或者KPI过多的时候,这些可视化插件的呈现效果往往没有一个Table来的直观。

其实大家在做可视化数据分析的时候,都会有一个误区,就是执着于使用图形化插件,但是只要能把分析的结果说清楚,或者达到促进业务发展的价值,其实用哪种方式去呈现反而不是那么重要。

先来看看本期的案例数据:

标准的三张表。

需求是什么?

思路很重要,本期的需求是做对比分析,那么对比分析至少需要两个切片器才能达到对比切换的效果,对吧?

所以输入如下代码:

代码语言:txt
复制
分店表B =
DISTINCT ( '分店表' )

建立如下模型关系:

看到右侧的虚线,小伙伴们有没有想起来什么?

1

2

3

...

答案:未激活关系

白茶之前写购物篮分析的时候,用的主要思路就是未激活关系,即可以通过函数进行关系激活——USERELATIONSHIP

思路已经缕好,开始编写代码:

代码语言:txt
复制
FACT_01_销售数量A =
SUM ( '销售明细'[销售数量] )

这是主要筛选器的度量值。

代码语言:txt
复制
FACT_01_销售数量B =
CALCULATE (
    [FACT_01_销售数量A],
    ALL ( '分店表'[分店名] ),
    USERELATIONSHIP ( '销售明细'[所在分店], '分店表B'[分店名] )
)

这是对比筛选的度量值。

将二者同时放到一个上下文中进行检验:

经过检验,写法上没有任何问题。

开始构建其他分析KPI。

成交订单A代码:

代码语言:txt
复制
FACT_02_成交订单A =
COUNTROWS ( VALUES ( '销售明细'[销售流水] ) )

成交订单B代码:

代码语言:txt
复制
FACT_02_成交订单B =
CALCULATE (
    [FACT_02_成交订单A],
    ALL ( '分店表'[分店名] ),
    USERELATIONSHIP ( '销售明细'[所在分店], '分店表B'[分店名] )
)

顾客数量A代码:

代码语言:txt
复制
FACT_03_顾客数量A =
COUNTROWS ( VALUES ( '销售明细'[客户流水号] ) )

顾客数量B代码:

代码语言:txt
复制
FACT_03_顾客数量B =
CALCULATE (
    [FACT_03_顾客数量A],
    ALL ( '分店表'[分店名] ),
    USERELATIONSHIP ( '销售明细'[所在分店], '分店表B'[分店名] )
)

销售金额A代码:

代码语言:txt
复制
FACT_04_销售金额A =
SUMX ( '销售明细', [FACT_01_销售数量A] * RELATED ( '产品表'[销售价] ) )

销售金额B代码:

代码语言:txt
复制
FACT_04_销售金额B =
CALCULATE (
    [FACT_04_销售金额A],
    ALL ( '分店表'[分店名] ),
    USERELATIONSHIP ( '销售明细'[所在分店], '分店表B'[分店名] )
)

销售成本A代码:

代码语言:txt
复制
FACT_05_销售成本A =
SUMX ( '销售明细', [FACT_01_销售数量A] * RELATED ( '产品表'[成本] ) )

销售成本B代码:

代码语言:txt
复制
FACT_05_销售成本B =
CALCULATE (
    [FACT_05_销售成本A],
    ALL ( '分店表'[分店名] ),
    USERELATIONSHIP ( '销售明细'[所在分店], '分店表B'[分店名] )
)

销售利润A代码:

代码语言:txt
复制
FACT_06_销售利润A =
[FACT_04_销售金额A] - [FACT_05_销售成本A]

销售利润B代码:

代码语言:txt
复制
FACT_06_销售利润B =
[FACT_04_销售金额B] - [FACT_05_销售成本B]

至此,所有KPI指标已经构建完毕。

那么如何将这些KPI指标放在同一个表中进行对比呢?

构建中间维度表!

点击界面操作的输入数据,输入如下内容:

利用SWITCH函数将度量值合而为一。

KPIA代码:

代码语言:txt
复制
KPIA =
VAR T1 =
    SELECTEDVALUE ( 'Measure'[INDEX] )
VAR T2 =
    SWITCH (
        TRUE (),
        T1 = 01, SELECTEDVALUE ( '分店表'[分店名] ),
        T1 = 02, [FACT_01_销售数量A],
        T1 = 03, [FACT_02_成交订单A],
        T1 = 04, [FACT_03_顾客数量A],
        T1 = 05, [FACT_04_销售金额A],
        T1 = 06, [FACT_05_销售成本A],
        T1 = 07, [FACT_06_销售利润A]
    )
RETURN
    T2

KPIB代码:

代码语言:txt
复制
KPIB =
VAR T1 =
    SELECTEDVALUE ( 'Measure'[INDEX] )
VAR T2 =
    SWITCH (
        TRUE (),
        T1 = 01, SELECTEDVALUE ( '分店表B'[分店名] ),
        T1 = 02, [FACT_01_销售数量B],
        T1 = 03, [FACT_02_成交订单B],
        T1 = 04, [FACT_03_顾客数量B],
        T1 = 05, [FACT_04_销售金额B],
        T1 = 06, [FACT_05_销售成本B],
        T1 = 07, [FACT_06_销售利润B]
    )
RETURN
    T2

这里主要采用的是SWITCH的条件输出。

参考文章:《动态数据》

最终效果如下:

小伙伴们❤GET了么?

(BOSS:干得漂亮!)

白茶会不定期的分享一些函数卡片

这里是白茶,一个PowerBI的初学者。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档