在进行数据分析时,尤其是在时间序列分析或财务报表中,很多时候我们需要计算某个特定时间段的数据。这些需求通常出现在需要动态分析数据的场景,例如计算过去 3 个月、未来 3 个月或过去几个季度的数据。这种情况广泛应用于销售额、利润、库存等指标的分析,帮助我们了解一段时间内的数据变化。
如果我们想要分析过去 3 个月的销售数据,通常需要计算从当前日期开始回溯的日期范围。这个问题常见于动态数据分析中,尤其是与当前日期相关的滚动日期计算。
对于这种需求,DATESINPERIOD
和 DATESBETWEEN
是两种常用的 DAX 函数,它们都能够帮助我们获取指定日期范围内的日期。虽然它们有相似的功能,但各自的使用场景和语法略有不同。
这两个函数可以帮助我们解决:
• 计算某个时间段内的数据(如过去 X 个月、X 年等)。
• 根据已知的起始日期或开始结束日期计算时间区间。
函数介绍
1. DATESINPERIOD
DATESINPERIOD
函数返回一个指定时间间隔内的所有日期。你只需要提供起始日期和间隔(如年、月、日等),它会自动计算并返回该区间内的日期。适用于你只有开始日期、且需要根据固定的时间间隔(如一年、三个月等)来推算日期范围的场景。
语法:
DATESINPERIOD(<dates>, <start_date>, <number_of_intervals>, <interval>)
• dates:日期字段(必须是日期类型)
• start_date:时间区间的起始日期
• number_of_intervals:表示时间区间长度的数字,正值表示向未来推算,负值表示向过去推算
• interval:可以是 "YEAR"(年)、"MONTH"(月)、"DAY"(日)等,用来指定时间间隔的单位
例如,计算从当前上下文最大日期开始,过去一年的销售额:
2. DATESBETWEEN
DATESBETWEEN
函数是一个更通用的版本,适用于你已经有明确的开始日期和结束日期时。该函数不需要你预先设置时间间隔,它直接通过提供的开始和结束日期来返回这个区间内的所有日期。
语法:
DATESBETWEEN(<dates>, <start_date>, <end_date>)
• dates:日期字段(必须是日期类型)
• start_date:时间区间的起始日期
• end_date:时间区间的结束日期
使用场景:
如果你已知某个具体日期区间,如 2019 年 8 月 1 日至 2020 年 11 月 16 日,想要计算该区间内的销售额,可以使用 DATESBETWEEN
:
也可以根据当前上下文中的日期结合日期加减函数使用,比如计算最近三个月的销售额。
DATESINPERIOD 函数计算最近三个月的销售额。
总结
虽然这两个函数都有相似的功能,但它们适用于不同的场景。
•
DATESINPERIOD
适合用于你只知道一个已知的起始日期,并且需要基于某个时间间隔(如1年、1季度等)来计算日期范围的情况。例如,计算过去一年的数据或过去三个月的数据,是当你只有开始日期和时间间隔时的理想选择。•
DATESBETWEEN
更适合已知起始和结束日期的场景。当你已经知道时间段的起始和结束日期时,DATESBETWEEN
提供了更高的灵活性,是当你已经知道开始和结束日期时的理想选择。
根据你的实际需求和数据情况,选择合适的函数来计算日期区间,可以帮助你更高效地处理时间序列分析和滚动计算。
一更专业的数据分析师训练营一
📈【高级课程】:业务人(管理、销售、财务、供应链)彻底解决企业数据分析。
🔍【企业咨询】:十大行业,十大领域,企业案例,咨询,培训,实施。
🔗 如何获取更多信息?扫描下方二维码具体咨询。
点击“阅读原文”获取更多资源