【问题标题】:Power BI generate future date with last known valuePower BI 生成具有最后一个已知值的未来日期
【发布时间】:2021-05-02 17:51:45
【问题描述】:

我需要帮助来生成具有 Power BI 中最后一个已知值的未来日期 我的数据如下:

Date variable value
Dec-20 PC 20000
Dec-20 PLOB 50000
Jan-21 PC 30000
Jan-21 PLOB 40000
Feb-21 PC 50000
Feb-21 PLOB 60000
Mar-21 PC 20000
Mar-21 PLOB 50000
Apr-21 PC 60000
Apr-21 PLOB 70000

我需要生成下表:

Date variable value
Dec-20 PC 20000
Dec-20 PLOB 50000
Jan-21 PC 30000
Jan-21 PLOB 40000
Feb-21 PC 50000
Feb-21 PLOB 60000
Mar-21 PC 20000
Mar-21 PLOB 50000
Apr-21 PC 60000
Apr-21 PLOB 70000
May-21 PC 60000
May-21 PLOB 70000
: : :
Dec-21 PLOB 60000
Dec-21 PLOB 70000

请协助我进行 DAX 计算

谢谢

【问题讨论】:

    标签: powerbi dax powerquery


    【解决方案1】:

    你可以试试下面的,步骤是

    1. 创建当前月份列表
    2. 计算最大月份
    3. 获取不同的类别
    4. 生成包含 2021 年所有未来月份的列表,并使用 ADDCOLUMNS 计算月份的开始。
    5. 使用EXCEPT 仅获取未来几个月
    6. 使用不同的类别交叉加入未来几个月,这将为您提供所有可能的组合。
    7. ADDCOLUMNSCROSSJOIN 表,其中 [value] 是使用 [variable] 名称和您提供的表中的最大月份计算的。 VAR 用于访问行上下文,因此我们可以使用FILTER

    计算表

    Future =
    VAR PresentMonths =
        ALL ( 'Table'[Date] )
    VAR maxMonth =
        MAXX ( 'Table', [Date] )
    VAR DistinctCat =
        ALL ( 'Table'[variable] )
    VAR AllMonths =
        SUMMARIZE (
            ADDCOLUMNS (
                CALENDAR ( DATE ( 2021, 01, 01 ), DATE ( 2021, 12, 31 ) ),
                "MonthStart", DATE ( YEAR ( [Date] ), MONTH ( [Date] ), 01 )
            ),
            [MonthStart]
        )
    VAR FutureMonths =
        EXCEPT ( AllMonths, PresentMonths )
    VAR FutureTable =
        ADDCOLUMNS (
            CROSSJOIN ( FutureMonths, DistinctCat ),
            "value",
                CALCULATE (
                    SUM ( 'Table'[value] ),
                    VAR localVariable = [variable]
                    RETURN
                        FILTER ( 'Table', [variable] = localVariable && [Date] = maxMonth )
                )
        )
    RETURN
        UNION ( 'Table', FutureTable )
    

    输出

    Date variable value
    December 2020 PLOB 50000
    December 2020 PC 20000
    January 2021 PC 30000
    January 2021 PLOB 40000
    February 2021 PC 50000
    February 2021 PLOB 60000
    March 2021 PC 20000
    March 2021 PLOB 50000
    April 2021 PC 60000
    April 2021 PLOB 70000
    May 2021 PC 60000
    May 2021 PLOB 70000
    June 2021 PLOB 70000
    June 2021 PC 60000
    July 2021 PC 60000
    July 2021 PLOB 70000
    August 2021 PC 60000
    August 2021 PLOB 70000
    September 2021 PC 60000
    September 2021 PLOB 70000
    October 2021 PC 60000
    October 2021 PLOB 70000
    November 2021 PC 60000
    November 2021 PLOB 70000
    December 2021 PC 60000
    December 2021 PLOB 70000

    【讨论】:

    • 非常感谢,安吉洛。按预期工作。很好的解释。
    • 太好了,您可以将答案标记为解决方案吗?
    猜你喜欢
    • 2023-01-13
    • 1970-01-01
    • 2020-05-07
    • 2021-10-30
    • 1970-01-01
    • 2021-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多