为了账号安全,请及时绑定邮箱和手机立即绑定

118_Power Pivo周维度度同比、环比相关


一、背景

在群里看到有人在交流周维度同环比,同时又好多天都没有更新文章了,最近没有什么好的素材,就硬生生的写一个吧。

先来看看结果图(ps:实现功能,美化靠天赋,反正我没什么天赋。)

118_Power Pivo周维度度同比、环比相关

关于中国式报表,有人喜欢方式一,也有人喜欢方式二,如果喜欢方式三就自己写吧。

二、数据源

数据源用M写的随机数据,共三张表。

1、【周几】

118_Power Pivo周维度度同比、环比相关

2、【calendar】

118_Power Pivo周维度度同比、环比相关

3、【data】

118_Power Pivo周维度度同比、环比相关

4、三张表的M

118_Power Pivo周维度度同比、环比相关

5、数据源M源码

/*data*/
let
    D = #table( 
     type table[
          date=date
          ,value=number
          ]
          ,List.Transform(
              {0..364}
              ,(d)=> 
              {
                  Date.From(Number.From(#date(2018,1,1))+d)
                  ,Number.Round(Number.RandomBetween(1,1000),2)
                  }
                )
     )
in
    D

/*周几*/
let
    源 = #table(
         type table [
             ID=Int32.Type
             ,周几=text
             ]
             ,List.Transform(
                 {0..6}
                 ,(d)=> 
                 { 
                     d
                     , {"一","二","三","四","五","六","日"}{d}
                     }
                    )
         )
in
    源


/*calendar*/
let
    D = #date(2018,1,1),
    N = Number.From(D),
    C = #table(
        type table [
            date=date
            ,weeknumber=Int32.Type
            ,weekday=Int32.Type
            ]
            ,List.Transform(
                {0..364}
                ,(d)=> 
                    let 
                    r=Date.From(N+d) 
                    in 
                    { 
                        r
                        , Date.WeekOfYear(r,1)
                        ,Date.DayOfWeek(r,1)
                        }
                )
    )
in
    C

6、关系

118_Power Pivo周维度度同比、环比相关

三、上DAX

1、周同比

2、日环比

3、result

result :=
VAR v =
FORMAT ( 'calendar'[total], "0.00" )
VAR t =
SWITCH (
TRUE (),
'calendar'[周同比] > 0, "同比:▲" & FORMAT ( 'calendar'[周同比], "0%" ),
'calendar'[周同比] < 0, "同比:▼" & FORMAT ( 'calendar'[周同比], "0%" ),
"同比:▁" & FORMAT ( 'calendar'[周同比], "0%" )
    )
VAR h =
SWITCH (
TRUE (),
'calendar'[日环比] > 0, "环比:▲" & FORMAT ( 'calendar'[日环比], "0%" ),
'calendar'[日环比] < 0, "环比:▼" & FORMAT ( 'calendar'[日环比], "0%" ),
"环比:▁" & FORMAT ( 'calendar'[日环比], "0%" )
    )
RETURN
SWITCH (
TRUE (),
'calendar'[周同比] = BLANK ()
&&'calendar'[日环比] = BLANK (), v,
'calendar'[周同比] = BLANK (), CONCATENATE ( v, "|" & h ),
'calendar'[日环比] = BLANK (), CONCATENATE ( v, "|" & t ),
CONCATENATE ( v, "|" & t & "|" & h )
    )

四、总结

1、dax没有什么难度,主要是上周和前一天的筛选上下创建;

2、中国式报表:主要是利用文本连接(度量值:result);

3、本案例中只体现了2018年一年的周,如果需要多年的话,只需要创建weeknumber的索引即可。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消