我有当年的预测和预算值,并且每个季度都会创建一个新的预测。我需要PowerBI根据数据可用性来获取给定日期的指标值(可以是Budget,Q1F,Q2F和Q3F)。
示例-如果对于给定的日期,可以获得Q3F的数据,请选择Q3F,否则选择Q2F,否则选择Q1F,否则预算。
这是我的数据:
Date Metric Value
1/1/11 Budget 1.1
1/1/11 Q3F 1.2
1/1/11 Q2F 1.3
在这种情况下,该功能应该可用,因为该功能可用。
答案 0 :(得分:0)
解决此问题的一种方法是同时使用SUMX
和SWITCH
语句。
首先要为您的预测分配一个常量,例如预算= 1,Q1F = 2,依此类推。最近的预测的想法将有更高的数量,它将在switch语句后期使用。在本示例中,我将其称为Forecast_ID。
我还假设您有一个日历表,并且您的预测完全是针对业务而不是波动输入的。例如。 A类仍在预算中,B类是更新的预测。
下面的想法是SUMX遍历您正在查看的每个季度,例如2018年将分别运行Q1,Q2,Q3,Q4。
在每个季度的上下文中,它将获取您的预测ID的最大值,然后将其用于切换中以选择最新的预测。
Measure :=
SUMX (
VALUES ( Calendar[Quarter] ),
SWITCH (
MAX ( table1[forecast_ID] ),
1, CALCULATE ( SUM ( table1[value] ), table1[Metric] = "Budget" ),
2, CALCULATE ( SUM ( table1[value] ), table1[Metric] = "Q1F" )
)
)
然后,您还可以执行类似MAX ( table1[forecast_ID] - 1)
的操作来动态查找先前的预测。
答案 1 :(得分:0)
如果您始终想获取最新值,则可以使用 LASTNONBLANK
正如Marcus所提到的,第一步是为您的预测创建一个常数。我为此示例设置了单独的表格。
然后,您可以基于 Metric 在两个表之间创建关系。将计算出的列添加到原始表中
MetricConstant = RELATED(Table2[Constant])
现在创建一个度量以提取每个日期段内的最新值
Measure =
SUMX (
VALUES ( Table1[Date] ),
CALCULATE ( SUM ( Table1[Value] ), LASTNONBLANK ( Table1[MetricConstant], 1 ) )
)
现在,当您输入日期和度量时,它只会显示最新的可用信息
EDIT-根据评论更新。如果要查看正在使用哪个指标,则需要另一种测量方法
MetricMeasure = CALCULATE(MAX(Table1[Metric]),LASTNONBLANK(Table1[MetricConstant],1))