Power BI Report измеряет выполнение заданий в срок - PullRequest
1 голос
/ 20 мая 2019

У меня есть отчет 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":

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

Мера "% Perf"

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

Ожидаемые результаты: задания, выполненные досрочно, добавляются к общему числу выполненных работ в правильном месяце.

Пример вывода: Пример данных о работе Пример данных о работе 2

Sample Report View

1 Ответ

0 голосов
/ 24 мая 2019

Если я правильно понимаю вопрос, вы хотите изменить метрику, чтобы учесть все выполненные задачи, ВКЛ или до месяца завершения:

    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)
        )
    )
...