Измерение DAX для отображения последнего состояния на основе последней даты в фильтре - PullRequest
1 голос
/ 24 апреля 2020

Я извлекаю данные из базы данных Jira в отчет Power BI для Scrum метрик спринта. Я пытаюсь отобразить последний статус, в котором была проблема, когда закончился спринт. У меня создано две меры: одна показывает последнюю дату, когда статус проблемы был изменен в спринте, а другая - что я хочу показать, какой это был статус.

| Issue_ID |  NEWSTATUS  | CHANGEDATE              | Sprint_Name | Sprint_Start_Date       | Sprint End Date         |
| -------- | ----------- | ----------------------- | ----------- | ----------------------- | ----------------------- |
|  1101    |    Done     | 2020-04-15 08:33:27.547 | SPRINT1     | 2020-04-01 11:16:28.000 | 2020-04-15 08:50:17.000 |
|  1101    | Validation  | 2020-04-15 07:39:48.160 | SPRINT1     | 2020-04-01 11:16:28.000 | 2020-04-15 08:50:17.000 |
|  1101    |    Test     | 2020-04-15 07:26:46.603 | SPRINT1     | 2020-04-01 11:16:28.000 | 2020-04-15 08:50:17.000 |
|  1101    | In Progress | 2020-04-09 10:28:01.217 | SPRINT1     | 2020-04-01 11:16:28.000 | 2020-04-15 08:50:17.000 |

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

Status Date =
MAXX (
    TOPN (
        1,
        FILTER (
            StoriesToSprints,
            StoriesToSprints[CHANGEDATE] <= StoriesToSprints[Sprint_End_Date]
                && StoriesToSprints[CHANGEDATE] >= StoriesToSprints[Sprint_Start_Date]
                && StoriesToSprints[FIELD] = "status"
        ),
        StoriesToSprints[CHANGEDATE], DESC
    ),
    StoriesToSprints[CHANGEDATE]
)

Последний показатель состояния не работает. Сужает статус до одной записи, но это не последняя запись по дате.

Last Sprint Status = 
MAXX(
    FILTER (
        StoriesToSprints,
        StoriesToSprints[CHANGEDATE] = [Status Date]
    ),
    StoriesToSprints[NEWSTATUS]
)

Я несколько дней порвал с этой мерой и, похоже, не могу получить правильный статус. Есть идеи?

ОБНОВЛЕНИЕ:

Мера [Дата состояния] возвращает самую последнюю дату, но по какой-то причине [NEWSTATUS] не возвращает связанный статус из Таблица. Он возвращает Validation вместо Done, хотя последний статус выполненного находится в пределах Sprint_Start_Date и Sprint_End_Date.

| Issue_ID |  Last Sprint Status |       Status Date       |
| -------- | ------------------- | ----------------------- | 
|  1101    |      Validation     | 2020-04-15 08:33:27.547 | 

1 Ответ

0 голосов
/ 24 апреля 2020

Вы должны использовать уже определенную меру Status Date в своей мере Last Sprint Status.

Last Sprint Status =
VAR StatusDate = [Status Date]
RETURN
    MAXX (
        FILTER (
            StoriesToSprints,
            StoriesToSprints[CHANGEDATE] = StatusDate
        ),
        StoriesToSprints[NEWSTATUS]
    )

Для других подходов к этому вам может быть интересен этот пост:

Возвращает верхнее значение, упорядоченное по другому столбцу

...