博客:www.jiaopengzi.com

焦棚子的文章目录

请点击下载附件

一、背景

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

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

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

二、数据源

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

1、【周几】

2、【calendar】

3、【data】

4、三张表的M

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、关系

三、上DAX

1、周同比

周同比 :=
var w =
average ( 'calendar'[weeknumber] ) - 1
return
divide (
'calendar'[total]
- calculate ( 'calendar'[total], 'calendar'[weeknumber] = w ),
calculate ( 'calendar'[total], 'calendar'[weeknumber] = w )
)

2、日环比

日环比 :=
var dc =
lastdate ( 'calendar'[date] )
var dl =
dateadd ( dc, -1, day )
var vl =
calculate ( 'calendar'[total], 'calendar'[date] = dl )
return
divide ( 'calendar'[total] - vl, vl )

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的索引即可。

by焦棚子

焦棚子的文章目录

118_Power Pivo周维度度同比、环比相关的更多相关文章

  1. 再谈Cognos利用FM模型来做同比环比

    很早之前已经讲过 <Cognos利用DMR模型开发同比环比>这篇文章里说的是不利用过滤器,而是采用 except (lastPeriods (-9000,[订单数据分析].[日期维度].[ ...

  2. cognos report同比环比以及默认为当前月分析

    现在的需求是按月份分析不同时期的余额数据,.(报表工具:cognos report:建模工具:FM) ------------------------------------------------- ...

  3. Hive之同比环比的计算

    Hive系列文章 Hive表的基本操作 Hive中的集合数据类型 Hive动态分区详解 hive中orc格式表的数据导入 Java通过jdbc连接hive 通过HiveServer2访问Hive Sp ...

  4. 111_Power Pivot 24小时维度:累计、同比、环比相关

    博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 今天有朋友讨论怎么做每天24小时维度的工作量计算(运营类企业,每天24小时都在运营)需求如下: 1.从0时到23 ...

  5. MySQL统计同比环比SQL

    大体思路: MySQL没有类似oracle方便的统计函数,只能靠自己去硬计算:通过时间字段直接增加年份.月份,然后通过left join关联时间字段去计算环比.同比公式即可 原始表结构: 求同比SQL ...

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

    https://zhuanlan.zhihu.com/p/55841964 时间可以说是数据分析中最常用的独立变量,工作中也常常会遇到对时间数据的对比分析.假设要计算上年同期的销量,在PowerBI中 ...

  7. Oracle分析函数/排名函数/位移函数/同比环比

    分析函数 作用:分析函数可以在数据中进行分组,然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计值.统计函数:MAX(字段名).MIN(字段名).AVG(字段名).SUM(字段名).CO ...

  8. MDX 占比同比环比

    http://blog.csdn.net/hero_hegang/article/details/9072889

  9. Q:判断链表中是否存在环的相关问题

    问题:如何判断一个单向链表中是否存在环? 例如: 链表中存在环(B-->D): <-- <--^ | | v | A-->B-->C-->D 链表中不存在环: A- ...

随机推荐

  1. web app遇到的一些坑及小技能(持续更新...)

    遇到的一些坑 问题:手机端 click 事件会有大约 300ms 的延迟 原因:手机端事件 touchstart --\> touchmove --> touchend or touchc ...

  2. 无需Flash录视频——HTML5中级进阶

    前言 HTML5的权限越来越大了,浏览器可以直接调用摄像头.麦克风了,好激动啊.我们要用纯洁的HTML代码造出自己的天地. 视频采集 本篇介绍的栗子 都是在chrome 47 版本以上的,低版本的可能 ...

  3. idea怎么创建python项目

    前言 python是一种功能强大和适用面很广的开发语言,在大数据应用和机器学习日益流行的年代,python凭借其简洁.易用和可扩展性获得很多用户的支持,近年来使用率高速增长.python环境下,集成了 ...

  4. 使用 Jenkins 进行持续集成与发布流程图-图解

  5. 20220406Java

    记个笔记 字符串操作类中s1.compareTo(s)规则: Compares two strings lexicographically. The comparison is based on th ...

  6. 不仅仅是一把瑞士军刀 —— Apifox的野望和不足

    声明:本文内容不涉及任何 Apifox 的功能介绍,一来网上这方面的文章已经汗牛充栋,二来 Apifox 本身的用户体验做的非常好,对于开发者而言学习成本基本为零. 阮一峰:不管你是前端开发还是后端开 ...

  7. Java学习day8

    今天学习了package,import,final,static和多态 package可以理解为文件夹,因为有些类可能重名,如果在同一个目录下就无法正常实现,所有需要有不同的包来装对应的类 Java出 ...

  8. OpenHarmony标准设备应用开发(二)——布局、动画与音乐

    (以下内容来自开发者分享,不代表 OpenHarmony 项目群工作委员会观点) 邢碌 上一章我们讲解了应用编译环境准备,设备编译环境准备,开发板烧录,将一个最简单的 OpenAtom OpenHar ...

  9. Hyperledger Fabric 部署在多个主机上

    前言 在实验Hyperledger Fabric无排序组织以Raft协议启动多个Orderer服务.TLS组织运行维护Orderer服务中,我们已经完成了使用提供 TLS-CA 服务的 council ...

  10. Electron 从零创建一个 Windows/OS X/Linux 的桌面可执行程序

    [外链图片转存失败(img-3RucrgcX-1562556984462)(http://7vzsvy.com1.z0.glb.clouddn.com/electron-1-2.png "E ...