【问题标题】:How to find an average of Datediff in PowerBI如何在 PowerBI 中找到 Datediff 的平均值
【发布时间】:2019-12-19 20:21:43
【问题描述】:

我设置了一个度量来计算开始日期和结束日期之间的天差,其中不包括公共假期和周末。 这给了我表格中每行的 TAT。 我现在正在尝试计算 TAT 的平均值,并将其放在单独的卡中。 请注意,表格的某些行没有完成日期,因此无法识别 TAT,因此平均值不应包含这些空白。

我试图创建一个新的度量,将度量 [TAT] 除以 [TAT] 的数量,但是 count 函数仅适用于列。已尝试创建一个快速度量,基值为 [TAT],类别为 [Date Finalised](这是一列)。没有运气。在我尝试过的 DAX 代码下面。

TAT average per Date Finalised 2 = DIVIDE([TAT],COUNTROWS('Finalised'))

TAT average per Date Finalised = 
AVERAGEX(
    KEEPFILTERS(VALUES('Finalised'[Date Finalised])),
    CALCULATE([TAT])

This is how I worked out TAT
TAT = 
SUMX (
    FILTER (
        'Calendar',
        'Calendar'[Date] >= MIN ( 'Capture'[Date Captured] )
            && 'Calendar'[Date] <= MAX ( 'Finalised'[Date Finalised] ) && NOT( ISBLANK(MAX ( 'Capture'[Date Captured] )))
    ),
    'Calendar'[If work day])

上述函数的问题是它们没有给我正确的平均值。我的预期结果是,在一个有 8 行的表中,但其中只有 4 个有结束日期,值为 29、16、16 和 12,平均值为 (29+16+16+12)/4是 18.25。相反,我的平均成绩是 4。

【问题讨论】:

    标签: powerbi dax


    【解决方案1】:

    您可以使用以下 DAX 表达式获得所需的结果:

    TAT average per Date Finalised =
    CALCULATE (
        AVERAGE ( 'Finalised'[TAT] ),
        FILTER ( ALL ( 'Finalised' ), 'Finalised'[TAT] > 0 )
    )
    

    提示:如果需要,您还可以添加一个过滤器,如下所示

    TAT average per Date Finalised =
    CALCULATE (
        AVERAGE ( 'Finalised'[TAT] ),
        FILTER ( ALL ( 'Finalised' ), 'Finalised'[TAT] > 0 ),
        FILTER ( ALL ( 'Finalised' ), 'Finalised'[TAT] = 6 )
    )
    

    以上提示只是如何使用更多过滤器的示例。这没有多大意义,因为您只需使用一个过滤器即可。

    【讨论】:

    • 嗨。感谢您的答复。我收到错误“无法找到或无法使用已完成表中的 TAT 列”。问题是 [TAT] 是一个度量,而不是计算列。如果将 TAT 的相同 DAX 公式放在计算的列。
    • 请查看此链接以获取 TAT 作为计算列。你可能需要稍微调整一下。 sqlbi.com/articles/counting-working-days-in-dax
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-27
    • 1970-01-01
    • 1970-01-01
    • 2011-03-27
    • 2022-06-30
    • 2022-10-09
    相关资源
    最近更新 更多