【问题标题】:Power BI Report measure jobs completed on timePower BI Report 衡量按时完成的作业
【发布时间】:2019-05-24 20:56:50
【问题描述】:

我有一份 Power BI 报告,它计算一个月内到期的作业数量,并报告有多少作业按时完成。该报告运行良好,但我无法弄清楚如何将提前一个月提前完成的工作包括在内。

我已采取措施:

  • 按时完成 = 作业在到期月份完成(这是我需要代码帮助的地方)
  • 超时 = 作业在到期后完成。
  • Incomplete = 用于识别未完成的工作
  • % Perf = 按时完成的作业百分比。"

测量“到期”:

Due = COUNTROWS ( Table1 )

衡量“按时完成”:

Done on time = 
VAR DueMonth = MONTH ( FIRSTDATE ( Table1[due_date] ) )
RETURN
    CALCULATE ( 
        [Due],
        FILTER ( 
            Table1,
            MONTH ( Table1[completed] ) = DueMonth
        )
    )

衡量“户外时间”:

Outside time = 
VAR DueMonth = MONTH ( FIRSTDATE ( Table1[due_date] ) )
RETURN
    CALCULATE ( 
        [Due],
        FILTER ( 
            Table1,
            MONTH ( Table1[completed] ) <> DueMonth && 
            NOT ISBLANK ( Table1[completed] )
        )
    )

测量“不完整”:

Incomplete = 
VAR DueMonth = MONTH ( FIRSTDATE ( Table1[due_date] ) )
RETURN
    CALCULATE ( 
        [Due],
        FILTER ( 
            Table1,
            ISBLANK ( Table1[completed] )
        )
    )

测量“百分比性能”

% Perf = 
    DIVIDE ( 
        [Done on time],
        [Due],
        BLANK()
    )    

预期结果是将提前完成的工作添加到正确月份完成的工作总数中。

示例输出: Sample job data Sample Job Data 2

【问题讨论】:

  • 你能提供一些示例数据吗?
  • 查看示例作业数据 2 屏幕截图。

标签: powerbi dax


【解决方案1】:

如果我正确理解了这个问题,您想更改指标以考虑所有已完成的任务 ON 或完成月份之前:

    Done on time or prior= 
VAR DueMonth = MONTH ( FIRSTDATE ( Table1[due_date] ) )
RETURN
    CALCULATE ( 
        [Due],
        FILTER ( 
            Table1,
            MONTH ( Table1[completed] ) <= DueMonth
        )
    )

或者考虑计划月和计划月-1:

    Done on time or month before= 
VAR DueMonth = MONTH ( FIRSTDATE ( Table1[due_date] ) )
RETURN
    CALCULATE ( 
        [Due],
        FILTER ( 
            Table1,
            MONTH ( Table1[completed] ) = DueMonth || MONTH ( Table1[completed] ) = DueMonth -1
        )
    )

请注意,您可能还需要考虑年份。如果是这样,我建议你试试这样的eomonth 函数:

Done on time or month before= 
VAR DueMonth = EOMONTH( FIRSTDATE ( Table1[due_date] ) )
RETURN
    CALCULATE ( 
        [Due],
        FILTER ( 
            Table1,
            EOMONTH( Table1[completed] ) = DueMonth || EOMONTH( Table1[completed] ) = dateadd(DueMonth, -1, month)
        )
    )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-09
    • 2021-11-04
    • 2021-12-18
    • 1970-01-01
    • 2020-03-16
    • 1970-01-01
    • 1970-01-01
    • 2023-01-12
    相关资源
    最近更新 更多