Power BI Получить значение последнего столбца по группе - PullRequest
0 голосов
/ 15 февраля 2020

Я работаю в панели управления, которая контролирует некоторые kpis в моей компании. Теперь мне нужно сравнить каждый результат с предыдущим по количеству сотрудников. В приведенном ниже примере я показываю небольшой пример моих данных и ожидаемый результат в последнем столбце (предыдущий счет). Я пытался решить это, используя много вычисленных столбцов. Я подошел ближе, используя следующее:

PreviousScore = 
VAR EMPNUMBER = BASE[Employee Number]
VAR REF = BASE[Score]

RETURN
CALCULATE(LASTNONBLANK(BASE[Employee Number];EMPNUMBER);FILTER(BASE;BASE[Employee Number]=EMPNUMBER);FILTER(BASE;BASE[Date]<EARLIER(BASE[Date])))

Номер сотрудника Дата Оценка Предыдущий балл

1234 01.01.2009 1 BLANK

1235 01.01.2009 4 BLANK

1236 01/01/2019 2 ПУСТО

1288 01/01/2019 0 ПУСТО

1259 01.01.2009 0 ПУСТО

1234 01 / 02/2019 3 1

1235 от 01.02.2009 4 4

1236 от 01.02.2009 1 2

1288 от 01.02.2009 2 0

1259 01/02/2019 4 0

1234 01/03/2019 1 3

1235 01/03/2019 2 4

1236 01/03 / 2019 3 1

1288 01/03/2019 0 2

1259 01/03/2019 1 4

1234 01/04/2019 2 1

1235 01/04/2019 3 2

1236 01/04/2019 8 3

1288 01/04/2019 ПУСТОЙ 0

1259 01/04/2019 ПУСТОЙ 1

Я надеюсь, что кто-то может помочь с этой проблемой

LW

1 Ответ

0 голосов
/ 15 февраля 2020

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

Следующий запрос даст вам правильный результат:

Previous score = 
    var empNR = score[Employee Number]
    var theDate = score[Date]
    var empData = FILTER(score;score[Employee Number] = empNR)
    var prevDate = CALCULATE(MAX(score[Date]);empData;score[Date] < theDate)
    return CALCULATE(MAX(score[Score]);FILTER(empData; score[Date] = prevDate))
  1. Я фильтрую по номеру emp, чтобы получить данные этого сотрудника.
  2. . Я получаю prevDate, получая максимум всех дат, которые меньше выбранной даты.
  3. Последний шаг - получить один ряд и вернуть счет
...