首页 > 解决方案 > 如何使用 DAX 在 Power BI 中计算实际和下一季度的预测

问题描述

我正在尝试编写 DAX 来计算如下所示的内容。我有一个名为(日期表)的日期日历,其中包含季度、月份、年份信息。我有一些措施,并试图计算如果一个月,假设从切片器中选择一月,它应该填充下面的功率双卡,如下所示。如果您在 2021 年 1 月,我无法为卡创建一个应该计算 Q1 预测(2 月至 3 月)金额的度量。我尝试了以下度量,但不确定它们是否有效。MTDForecast(Month to Date) 测量有效,但未包含在这篇文章中,但如果您在一月份,不确定如何计算和显示 2 月至 3 月预测的功率 Bi Card 的计算?如果在 1 月,那么计算 2 月和 3 月的预测?

Q1 预测(2-3 月)

NextForecast = IF(MIN('Date Table'[Quarter]) = "Q1", [Month] = "January" , CALCULATE(table[MTDForecast], ALL('Date Table'),  'Date Table'[Quarter] = "Q1"),

                  IF(MIN('Date Table'[Quarter]) = "Q1",[Month] IN {"February", "March"}, CALCULATE(table[MTDForecast], ALL('Date Table'),  'Date Table'[Quarter] = "Q1")))

                 

提前致谢!

标签: sql-serverexcel-formulapowerbidax

解决方案


这是我的计算示例,我始终显示 currentMonth -> EndOfQuarterMonth(我可以更简单地执行此操作,但这取决于我的特定日历)。如果您在日历中有一天,那么您可以复制此语句。

ForcastRange = var __quarter = 
CALCULATE( max('Calendar'[Calendar[Op Quarter]]]), 'Calendar'[Calendar[issue_date]]] = TODAY()) 
var __currentMonth = CALCULATE( MAX('Calendar'[Calendar[Op Month]]]), 'Calendar'[Calendar[issue_date]]] = TODAY()) 
var __MaxDayQuarter = CALCULATE( MAX('Calendar'[Calendar[issue_date]]] ), FILTER(ALL('Calendar'), 'Calendar'[Calendar[Op Quarter]]] = __quarter ))
var __MaxMonth = CALCULATE( MAX('Calendar'[Calendar[Op Month]]]), 'Calendar'[Calendar[issue_date]]] = __MaxDayQuarter) 
var __result = CONCATENATE(__currentMonth , __MaxMonth)
return __result

在此处输入图像描述


推荐阅读