备案 控制台
学习
实践
活动
专区
工具
TVP
写文章
专栏首页 学谦数据运营 这样的Power BI周分析你见过吗?
4 1

海报分享

这样的Power BI周分析你见过吗?

零售、电商、教育等领域的诸多业务场景中需要按周进行分析,然而Power BI并未提供周粒度的时间智能函数,这让很多人想分析时感觉力不从心、无从下手。

今天我们就来说一说按周分析的几个思路,希望能够帮各位打开思想的束缚,发挥更大的创造力,更好地助力业务发展。

按周进行分析,首先需要创建一个日期表(关于日期表创建的多种方式可参考这篇文章: Power BI创建日期表的几种方式概览 ),或者在已有日期表中新建列“WEEKDAY”和“WEEKNUM”:

有了周的信息,我们就可以按周进行分析了,先拖一个矩阵看看:

列是星期1到星期7,行是一年的各个周,大概有了初步的样子。

不过,你要做成这样直接给老板,估计老板一巴掌就能把你拍死,啥玩意儿这是。所以我们来稍微美化一下。

先看行上,光秃秃的数字不好看,我们可以添加一下说明:

如果你还想显示这个周到底是哪些日期:

你可以写一个这样的度量值:

周数日期 =
VAR thisweeknum='日期'[年周数]
VAR firstdayofthisweek=CALCULATE(MIN('日期'[Date]),FILTER(ALLEXCEPT('日期','日期'[年度]),'日期'[年周数]=thisweeknum))
VAR monthday1=CALCULATE(MAX('日期'[月份]),FILTER(ALL('日期'),'日期'[Date]=firstdayofthisweek))&"."&CALCULATE(MAX('日期'[日]),FILTER(ALL('日期'),'日期'[Date]=firstdayofthisweek))
VAR lastdayofthisweek=CALCULATE(MAX('日期'[Date]),FILTER(ALLEXCEPT('日期','日期'[年度]),'日期'[年周数]=thisweeknum))
VAR monthday2=CALCULATE(MAX('日期'[月份]),FILTER(ALL('日期'),'日期'[Date]=lastdayofthisweek))&"."&CALCULATE(MAX('日期'[日]),FILTER(ALL('日期'),'日期'[Date]=lastdayofthisweek))
RETURN "("&monthday1&"-"&monthday2&")"

然后在把两列合为一列,或者干脆直接一列搞定也可以。

再看列,按照习惯我们一般用汉字,所以:

周几 = 
SWITCH(
  '日期'[周几.数字],
  1,"周一",
  2,"周二",
  3,"周三",
  4,"周四",