【问题标题】:persist future values from measure坚持来自度量的未来值
【发布时间】:2020-10-29 09:54:15
【问题描述】:

我有一个衡量标准,可以显示与日期相关的员工人数。
FactEmployee 每天都会更新以反映谁在工作。这意味着我的度量(显然)无法显示明天有多少员工。
我想将最新值(即今天的值)保留到未来。

数据模型

我的(不完美的)衡量标准

Count, employee :=
VAR today = TODAY()
VAR res =
    IF (
        MAX ( DimDate[fulldate] ) > today,
        CALCULATE (
            COUNT ( DimEmployee[emp_key] ),
            FILTER ( ALL ( FactEmployee ), RELATED ( DimDate[fulldate] ) = today)
        ),
        CALCULATE ( COUNT ( DimEmployee[emp_key] ), FactEmployee )
    )
RETURN
    res

输出

 year-month     count, emp      
 ---------------------------
 2020-01        182
 2020-02        180
 2020-03        174
 2020-04        171
 2020-05        171
 2020-06        173
 2020-07        172
 2020-08        175
 2020-09        172

预期输出

 year-month     count, emp
 --------------------------
 2020-01        182
 2020-02        180
 2020-03        174
 2020-04        171
 2020-05        171
 2020-06        173
 2020-07        172
 2020-08        175
 2020-09        172
 2020-10        172   <----repeated value from 2020-09
 2020-11        172   <----repeated value from 2020-09
 2020-12        172   <----repeated value from 2020-09

我怎样才能修正我的测量以获取缺失值(十月到十二月)?

【问题讨论】:

    标签: powerbi dax


    【解决方案1】:

    我已经使用简化版本复制了您的模型,我认为在这种情况下您不需要dimEmployee

    假设你的模型是这样的

    您的表格如下所示:

    FactEmployee
    +----------+---------+
    | date_key | emp_key |
    +----------+---------+
    | 20200101 | 1       |
    +----------+---------+
    | 20200102 | 1       |
    +----------+---------+
    | 20200103 | 1       |
    +----------+---------+
    | 20200104 | 1       |
    +----------+---------+
    | 20200105 | 1       |
    +----------+---------+
    | 20200101 | 2       |
    +----------+---------+
    | 20200102 | 2       |
    +----------+---------+
    | 20200104 | 2       |
    +----------+---------+
    | 20200101 | 3       |
    +----------+---------+
    | 20200102 | 3       |
    +----------+---------+
    | 20200103 | 3       |
    +----------+---------+
    | 20200104 | 3       |
    +----------+---------+
    | 20200105 | 4       |
    +----------+---------+
    
    
    DimDate
    +------------+----------+
    |    Date    | Date_key |
    +------------+----------+
    | 01/01/2020 | 20200101 |
    +------------+----------+
    | 02/01/2020 | 20200102 |
    +------------+----------+
    | 03/01/2020 | 20200103 |
    +------------+----------+
    | 04/01/2020 | 20200104 |
    +------------+----------+
    | 05/01/2020 | 20200105 |
    +------------+----------+
    | 06/01/2020 | 20200106 |
    +------------+----------+
    | 07/01/2020 | 20200107 |
    +------------+----------+
    

    我创建了一个遵循以下步骤的计算:

    1. 在变量MaxDateKey 下计算emp key 的不同计数的有效或非空白值的最大日期。
    2. IF 语句评估为 date_key 大于 'MaxDatekey' - 在本例中为 2020010620200107。对于这些日期,计算会检索 emp_keyMaxDateKey 的不同计数。
    3. 当 IF 雄蕊为 false 时,将照常计算不同的计数。
    Count = 
    VAR MaxDateKey =
        CALCULATE (
            LASTNONBLANK ( FactEmployee[date_key], DISTINCTCOUNT ( FactEmployee[emp_key] ) ),
            REMOVEFILTERS ( DimDate[Date] )
        )
    VAR Result =
        IF (
            MAX ( DimDate[Date_key] ) > MaxDateKey,
            CALCULATE (
                DISTINCTCOUNT ( FactEmployee[emp_key] ),
                ALL ( DimDate[Date] ),
                DimDate[Date_key] = MaxDateKey
            ),
            DISTINCTCOUNT ( FactEmployee[emp_key] )
        )
    RETURN
        Result
    

    下面的输出。从最后一个有效日期 1 月 5 日开始的值将应用于后续日期(1 月 6 日和 7 日)。

    【讨论】:

    • 这看起来很有趣,但不太对劲。但我想我可以适应我的问题。我会告诉你进展如何。
    • 经过大量修改后,我得到了它的工作。因为我的真实数据模型有点复杂,而且我有很多其他影响度量的过滤器/关系,所以我需要在公式中进行一些更改。但你答案中的基本解决方案是正确的
    【解决方案2】:

    对于折线图,您可以在Analytics窗格中检查Forecast选项,如下所示。

    输出将如下所示-

    【讨论】:

    • 感谢您的回复。我知道预测选项,但这不是我的最终目标。我需要那个度量来做另一个度量。
    • 那么对于那些缺少3个值的人,我没有清楚地理解您的要求/逻辑。
    • 你是对的。我的问题不是那么清楚:-) 我试图让它更清楚。
    • 你想要类似的东西 - 如果当前值为 NULL 或 BLANK,则填充上一个可用月份的值?
    • 年月从何而来?同一张表还是日历表?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-12
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-21
    • 2013-01-19
    相关资源
    最近更新 更多