PowerBI时间智能

https://zhuanlan.zhihu.com/p/88528732

构造日期表

Calendar =
ADDCOLUMNS (
    CALENDAR ( DATE ( 2017, 1, 1 ), DATE ( 2020, 12, 31 ) ),
    "年", YEAR ( [Date] ),
    "季度", "第"
        & ROUNDUP( MONTH ( [Date]) / 3, 0) & "季度",
    "月", MONTH ( [Date] ),
    "月份", MONTH ( [Date] )& "月",
    "年月", FORMAT ( [Date], "YYYY/MM" )
)

时间智能函数

常用时间计算指标

缩写英文解释
YTDYear To Date年初至今的累计
QTDQuarter To Date季度初至今的累计
MTDMonth To Date月初至今累计
YOYYear On Year与去年同期变动的百分比(同比)
MOMMonth On Month与上月变动的百分比(环比)

常用时间智能函数

函数说明参考的相似函数
TOTALYTD年累计DATESYTD
TOTALYQTD季度累计DATESQTD
TOTALYMTD月累计DATESMTD
DATEADD日期推移SAMEPERIODLASTYEAR
PARALLELPERIOD某一期间的总数
当一年的时间还未完全结束,时间应该小于今天

年累计=TOTALYTD(SUM('销售表'[销售金额]),'销售表'[销售日期],'销售表'[销售金额]<today())

季度累计=TOTALQTD(SUM('销售表'[销售金额]),'销售表'[销售日期],'销售表'[销售金额]<today())

月累计=TOTALMTD(SUM('销售表'[销售金额]),'销售表'[销售日期],'销售表'[销售金额]<today())

或者另一个,不常用的
=CALCULATE(SUM('销售表'[销售金额]),DATESYTD('销售表'[销售日期]))

财年的使用(“6-30”或“30-6”不同电脑设置不一样)

年累计=TOTALYTD(SUM('销售表'[销售金额]),'销售表'[销售日期],'销售表'[销售金额]<today(),"6-30")

时间推移函数DATEADD

往前推一年

前一年数据=DATEADD('销售表'[销售日期],-1,YEAR)

YOY(同比)

今年销售额=SUM('销售表'[销售金额])
去年销售额=CALCULATE([今年销售额],DATEADD('销售表'[销售日期],-1,YEAR)

YOY=DIVIDE([今年销售额]-[去年销售额]),[去年销售额])

MOM(环比)

本月销售额=SUM('销售表'[销售金额])
上个月销售额=CALCULATE([今年销售额],DATEADD('销售表'[销售日期],-1,MONTH)

MOM=DIVIDE([本月销售额]-[上个月销售额]),[上个月销售额])

工作日

=WEEKDAY([日期],2)

无法跳过节假日
=IF(WEEKDAY([日期],2)>5,"周末","工作日")

查询语句

返回的是一张表格

=FILTER('销售记录','销售记录'[产品]="自行车")

=CALCULATE(SUM('销售记录'[金额],'销售记录'[产品]="自行车")

summarize:汇总功能,相当于group by

summarize(表格,汇总列1,....,"名称",表达式)

返回的是一张表格,最终的结果是汇总所有订单下的销售金额总和
=summarize('销售记录','销售记录'[订单编号],"金额",'销售记录'[销售金额])

RFM分析

定义:

类别含义分析语言演示公式
RRecent近度最近一次交易到今天的天数MIN([近度]);[近度]=TODAY()-[下单日期]
FFrequency频度交易次数DISTINCTCOUNT([订单编号])
MMonetary平均消费额度交易金额/交易次数DIVIDE(‘销售记录’[销售金额],‘销售记录’[订单数量])

客户分类:

RFM客户类型
重要价值客户
重要保持客户
重要发展客户
重要挽留客户
一般价值客户
一般保持客户
一般发展客户
一般挽留客户
近度
近度=today()-[下单日期]         (新建列)
R=MIN([近度])                       (度量值)

订单的不重复计数
F=DISTINCTCOUNT([订单编号])                (度量值)

M=DIVIDE('销售记录'[销售金额],'销售记录表'[F])            (度量值)

=SUMMARIZE('销售记录','销售记录'[客户名称],'销售记录'[客户ID],"R",'销售记录'[R],"F",'销售记录'[F],"M",'销售记录'[M])

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

GENERATE(笛卡尔积表)

=generate(表1,表2)

在这里插入图片描述

高级聚合函数

函数说明
SUMX求和
AVERAGEX求平均值
MAXX求最大值
MINX求最小值
COUNTX数值格式的计数
COUNTAX所有格式的计数
MEDIENX求中位值
RANKX排名
SUMX:求表达式里的和(单价*金额)
=SUMX('销售记录','销售记录'[单价]*'销售记录'[数量])

常用的筛选器函数

函数说明
FILTER按条件筛选数据
VALUES返回列或者表去重后的结果\
TOPN返回前几名的数据\
ALL所有数据
ALLEXCEPT所欲数据除了…
ALLNONBLANKROW返回非空白的数据

FILTER

=FILTER('销售记录','销售记录'[产品]="自行车")

VALUES

返回非重复的一列值(去重之后的数据)
=VALUES('销售记录'[产品名称])

TOPN

这张表的前3行
TOP3=TOPN(3,'销售记录')

销售金额的前3(默认降序)
TOP3=TOPN(3,'销售记录','销售记录'[金额])
升序
TOP3=TOPN(3,'销售记录','销售记录'[金额],ASC)

ALLEXCEPT(除什么之外的所有)

返回新的一张表里面会少“产品名称”这一列
=ALLEXCEPT('销售记录','销售记录'[产品名称])

在这里插入图片描述
在这里插入图片描述
求区域经理对应的销售金额,区域经理跟销售记录,省份区域都没有关联

=SUMX(FILTER('销售记录','区域经理'[区域]=RELATED('省份区域'[区域])),'销售记录'[金额])

EARLIER

=SUMX(FILTER('产品销售表',EARLIER('产品销售表'[销售金额])<='产品销售表'[销售金额]),'产品销售表'[销售金额])

在这里插入图片描述
累计百分比(all)

='产品销售表'[销售金额]/sumx(all('产品销售表'),'产品销售表'[销售金额])

在这里插入图片描述
使用earlier进行排名

=COUNTROWS(FILTER('产品销售表',EARLIER('产品销售表'[销售金额])<='产品销售表'[销售金额]))+1

在这里插入图片描述
EARLIER区分新老客户
金额有数值就是老客户,空白的就是新客户

=IF(SUMX(FILTER('销售记录',EARLIER('销售记录'[客户ID])='销售记录'[客户ID]&&EARLIER('销售记录'[下单日期])>'销售记录'[下单日期],'销售记录'[金额])>0,"老客户","新客户")


在这里插入图片描述

%=[销售额]/CALCULATE([销售额],ALL'产品分类'))

USERELATIONSHIP

两张表之间是虚线关系,需要用USERELATIONSHIP来表明关系
在这里插入图片描述

=CALCULATE(SUM([数量]),USERELATIONSHIP('销售记录'[实际送货日期],'日历年'[日期]))

RELATEDTABLE

排名:可以展开二级分类,在分类里可以有自己的排名
在这里插入图片描述

参数DESC/ASC,升降序;Dense/Skip:相同排名是否跳过去
=RANKX(ALLSELECTEC('产品分类'),'销售记录'[销售额])

为了排除总计算进去排名

HASONEVALUE:在这张表里找到的产品名称就是TRUE,没有就是FALSE
H=HASONEVALUE('产品分类'[产品名称])

=IF(H,RANKX(ALLSELECTEC('产品分类'),'销售记录'[销售额]),BLANK())

TOP10分析
根据切片器的选择进行排名规则,前N名
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

MIN=MIN('排序依据'[ID])

SWITCH=SWITCH('排序依据'[MIN],1,'销售记录'[销售额],2,'销售记录'[销售数量],3,'销售记录'[订单数量])

RANK=RANKX(SUMMARIZE(ALL('销售记录'),'销售记录'[客户名称],'排序依据'[SWITCH])

经销商RFY分析

缩写解释公式
RReach,达成DISTINCTCOUNT([客户名称])
FFrequency,频率订单数/客户数
YYield,收益销售额/订单数

在这里插入图片描述
使用父子层级
在这里插入图片描述
在这里插入图片描述

创建层级
层级path=path('打车记录'[姓名],'打车记录'[经理])

层级深度
=PATHLENGTH('打车记录'[层级path])

移动平均
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
用量增长分析

当月MTD=TOTALMOD('用量'[总用量],'日历年'[日期],'日历年'[日期]'<TODAY())

上月PM=CALCULATE('用量'[总用量],PREVIOUSMONTH('日历年'[日期]))

月度净增长='用量'[当月MTD]-'用量'[上月PM]

https://www.jianshu.com/p/78562efa28fe

https://blog.csdn.net/weixin_36135773/article/details/78809392

https://zhuanlan.zhihu.com/p/35982521

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值