如果存在a选择a其他b选择bi

时间:2018-08-16 06:02:44

标签: powerbi

我有当年的预测和预算值,并且每个季度都会创建一个新的预测。我需要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

在这种情况下,该功能应该可用,因为该功能可用。

2 个答案:

答案 0 :(得分:0)

解决此问题的一种方法是同时使用SUMXSWITCH语句。

首先要为您的预测分配一个常量,例如预算= 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所提到的,第一步是为您的预测创建一个常数。我为此示例设置了单独的表格。

enter image description here

然后,您可以基于 Metric 在两个表之间创建关系。将计算出的列添加到原始表中

MetricConstant = RELATED(Table2[Constant])

现在创建一个度量以提取每个日期段内的最新值

Measure =
SUMX (
    VALUES ( Table1[Date] ),
    CALCULATE ( SUM ( Table1[Value] ), LASTNONBLANK ( Table1[MetricConstant], 1 ) )
)

现在,当您输入日期度量时,它只会显示最新的可用信息

enter image description here

EDIT-根据评论更新。如果要查看正在使用哪个指标,则需要另一种测量方法

MetricMeasure = CALCULATE(MAX(Table1[Metric]),LASTNONBLANK(Table1[MetricConstant],1))

您可以基于此创建面积图,并将其添加到工具提示中。 enter image description here