打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
计算上年/上月同期年(月)累计数据的几种思路
userphoto

2024.03.11 北京

关注

需求:假设今天是2024年3月10日,需要统计以下数据

1,本年累计年数据,统计2024年1月1日至2024年3月3日的数据

2,本月累计月数据,统计2024年3月1日至2024年3月3日的数据

3,上年同期累计年数据,统计2023年1月1日至2024年3月3日的数据

4,上年同期累计月数据,统计2023年1月1日至2024年3月3日的数据

解决:主要的思路的通过变量获取月份,再利用CALCULATE函数进行条件筛选

度量值写法

本年累计年数据

总学费_本年累计 =
VAR _today=TODAY()
VAR PreviousYearEnd = _today-1
VAR PreviousYearStart = DATE(YEAR(PreviousYearEnd), 1, 1)
RETURN
CALCULATE (
[总学费],
FILTER (
ALL('日期表'),
'日期表'[Date] >= PreviousYearStart && '日期表'[Date] <= PreviousYearEnd
))

和下方使用DATESYTD或者TOTALMTD时间智能函数的区别是DATESYTD函数会返回2024年1月1日至2024年12月31日的数据,而不是2024年1月1日至当日(TODAY)的数据

总学费_本月累计_dateamtd = 
CALCULATE ([总学费],DATESMTD('日期表'[Date]))
总学费_本月累计_totalmtd = TOTALMTD([总学费],'日期表'[Date])

结果如图

本月累计月数据

科室预算目标收入_本月累计_当日累加 = 
CALCULATE ([科室预算目标收入],DATESMTD('日期表'[Date]))
//科室预算目标收入_本月累计_totalmtd = TOTALMTD([科室预算目标收入],'日期表'[Date])
科室预算目标收入_本月整月_按日分开合计汇总 =
VAR _today=TODAY()
VAR PreviousYearEnd = _today-1

RETURN
CALCULATE(
[科室预算目标收入],
'日期表'[年度]=YEAR(PreviousYearEnd)&&
'日期表'[月份]=MONTH(PreviousYearEnd))
科室预算目标收入_本月整月_按日按月均汇总 = 
VAR _today=TODAY()
VAR PreviousYearEnd = _today-1
VAR PreviousYearStart = DATE(YEAR(PreviousYearEnd), MONTH(PreviousYearEnd), 1)
RETURN
CALCULATE (
[科室预算目标收入],
FILTER (
ALL('日期表'),
'日期表'[Date] >= PreviousYearStart && '日期表'[Date] <= PreviousYearEnd
))

三者的区别:

上年同期累计年数据

首先需要统计出当年累计共有多少天,这里新建一个年天数的度量值

年天数 =
DATEDIFF(
DATE(YEAR(TODAY()), 1, 1), // 当年的第一天
DATE(YEAR(TODAY()) + 1, 1, 1), // 下一年的第一天
DAY)-1

再按照同年的数据为当前日期减去“年天数”就可以得到的逻辑进行下一步度量值的写法

总学费_上年同期 = 
CALCULATE (
[总学费],
SAMEPERIODLASTYEAR('日期表'[Date])
)
//CALCULATE ([总学费],DATEADD('日期表'[Date], -1, YEAR))
总学费_上年同期累计 =
VAR _today=TODAY()
VAR PreviousYearEnd = _today-[年天数]-1
VAR PreviousYearStart = DATE(YEAR(PreviousYearEnd), 1, 1)
RETURN
CALCULATE (
[总学费],
FILTER (
ALL('日期表'),
'日期表'[Date] >= PreviousYearStart && '日期表'[Date] <= PreviousYearEnd
))

上年同期累计月

总学费_上年同期月累计 = 
VAR _today=TODAY()
VAR PreviousYearEnd = _today-[年天数]-1
VAR PreviousYearStart = DATE(YEAR(PreviousYearEnd),MONTH(PreviousYearEnd), 1)
RETURN
CALCULATE (
[总学费],
FILTER (
ALL('日期表'),
'日期表'[Date] >= PreviousYearStart && '日期表'[Date] <= PreviousYearEnd
))

//CALCULATE ([总学费],SAMEPERIODLASTYEAR(DATESMTD('日期表'[Date])))

这种写法的好处在于不用考虑当年是闰年或者是平年,因为直接把一年有多少天使用年天数度量值定义好了。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
无日期上下文如何计算同比环比?其实很简单
js获取当前时间是本月的第几周
你要的自动生成日期来了,3个函数嵌套,节约4个小时记录
Excel让表头自动填写当前月份和日期站
在EXCEL中,日期函数,到期提醒
让表格跟随日期自动填充颜色,你不会,同事用条件格式2分钟搞定
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服