Можно ли получить точное количество строк на основе самого последнего значения поля в PowerPivot table с использованием DAX?
У меня есть транзакционная таблица, в которой отслеживаются профессионалы с датами найма и перевода. Я хотел бы подсчитать количество профессионалов по их последнему офису. Таким образом, как профессиональные переводы через организацию, мы можем видеть, где они находятся в данный момент.
Таблица транзакций:
Name | Action | EffectiveDate | Office
-----------------------------------------
Peter | Hire | 1/10/2014 | STL
John | Hire | 2/5/2014 | STL
John | Transfer | 3/2/2014 | LAX
Jason | Hire | 6/4/2014 | STL
John | Transfer | 9/10/2014 | CHI
Желаемый результат:
Office | Distinct Count
-----------------------
CHI | 1
STL | 2
-----------------------
Total | 3
Я создал меру, которая использует функцию DISTINCTCOUNT. Благодаря этому я могу получить правильный общий итог, но общие итоги по отдельным офисам не такие, как мне хотелось бы. Я понимаю, что моя формула ниже делает то, о чем я прошу. Однако я не уверен, как сделать так, чтобы он возвращал только профессиональный офис на основе самой последней Даты вступления в силу.
DistinctCount:=DISTINCTCOUNT(TransactionTable[Name])
Вот результат с использованием созданной мной меры DistinctCount
Я предполагаю, что мне придется использовать функцию РАСЧЕТ и применить Функция ФИЛЬТР, которая позволяет получить самые последние офисы отдельных профессионалов, но я не уверен, как это будет выглядеть.
DistinctCountPerOffice:=CALCULATE (
DISTINCTCOUNT(TransactionTable[Name]),
FILTER (
?.....?
)
)
Кроме того, мы хотели бы, чтобы эти данные были распределены по месяцам или кварталам. Это позволит нам увидеть совокупный подсчет за время для каждого офиса. У нас есть таблица дат, которая определяет месяцы, кварталы и годы.
Таблица дат:
CalendarDate | Month Key | Month Name | Quarter Name | Year
-----------------------------------------------------------
1/1/2014 | 1.00 | Jan | Q1 | 2014
1/2/2014 | 1.00 | Jan | Q1 | 2014
...
2/1/2014 | 2.00 | Feb | Q1 | 2014
....
8/1/2014 | 8.00 | Aug | Q3 | 2014
..
9/2/2014 | 9.00 | Sep | Q3 | 2014
..
12/16/2014 | 12.00 | Dec | Q4 | 2014
Мне удалось выполнить поэтапный аспект этого, но подсчеты основаны не на последнем офисе профессионала.
Cumulative DistinctCount:=CALCULATE (
DISTINCTCOUNT(TransactionTable[Name]),
FILTER (
ALL ( 'Dates'[CalendarDate] ),
'Dates'[CalendarDate] <= MAX (Dates[CalendarDate] )
)
)
Однако моя формула, опять же, не предназначена только для самых последних офисов профессионалов. Однако общая сумма верна.
Ниже приведен результат, который мы стремимся увидеть, но не можем.
Желаемый результат с использованием совокупных итогов за месяцы:
Month | CHI | LAX | STL
-----------------------
Jan | 0 | 0 | 1
Feb | 0 | 0 | 2
Mar | 0 | 1 | 1
Apr | 0 | 1 | 1
May | 0 | 1 | 1
Jun | 0 | 1 | 2
Jul | 0 | 1 | 2
Aug | 0 | 1 | 2
Sep | 1 | 0 | 2
Oct | 1 | 0 | 2
Nov | 1 | 0 | 2
Dec | 1 | 0 | 2