Я пытаюсь заставить DAX сделать следующее:
- Просматривать каждую строку в таблице данных HR.
- Определить дату начала сотрудника ("employee a ")
- Суммируйте количество других сотрудников в таблице с применением следующих фильтров:
a.Успешно выполнили свое задание
б.Закончили свое назначение ДО даты начала + 31
c.Закончили свое назначение ПОСЛЕ начальной даты - 31 (то есть в течение месяца после начальной даты сотрудника а)
d.Начинается до сотрудника a (чтобы не считать сотрудника a или кого-либо из их когорты в подсчете)
e.Имеет ту же должность, что и работник a.
По сути, это вопрос на обычном английском языке: «для каждого из моих сотрудников, сколько других сотрудников с таким же названием успешно завершили свои назначения в течение месяца после начала работы этого сотрудника?»а в DAX это просто "как применить несколько критериев фильтра к столбцу меры / вычисляемого столбца SUMX или COUNTAX?"
Мера, которую я уже пробовал:
Contractors Available = COUNTAX(
'BAT VwRptMspAssignment',
CALCULATE(
DISTINCTCOUNT('BAT VwRptMspAssignment'[assignmentgk]),
FILTER(
FILTER(
FILTER(
FILTER(
FILTER(ALL('BAT VwRptMspAssignment'),
'BAT VwRptMspAssignment'[End.Date]<EARLIER('BAT VwRptMspAssignment'[Start.Date])+31),
'BAT VwRptMspAssignment'[End.Date]>EARLIER('BAT VwRptMspAssignment'[Start.Date])-31),
'BAT VwRptMspAssignment'[Start.Date]<EARLIER('BAT VwRptMspAssignment'[Start.Date])),
'BAT VwRptMspAssignment'[EoaReason]="Successful Completion"),
'BAT VwRptMspAssignment'[JobPostingTitle.1]=EARLIER('BAT VwRptMspAssignment'[JobPostingTitle.1]))
)
)
И пробный столбец, который я пробовал, был:
Contractors Available.1 = SUMX(
FILTER(
FILTER(
FILTER(
FILTER(
FILTER(
FILTER(ALL('BAT VwRptMspAssignment'),
'BAT VwRptMspAssignment'[customergk]=EARLIER('BAT VwRptMspAssignment'[customergk])),
'BAT VwRptMspAssignment'[JobPostingTitle.1]=EARLIER('BAT VwRptMspAssignment'[JobPostingTitle.1])),
'BAT VwRptMspAssignment'[End.Date]<EARLIER('BAT VwRptMspAssignment'[Start.Date])+31),
'BAT VwRptMspAssignment'[End.Date]>EARLIER('BAT VwRptMspAssignment'[Start.Date])-31),
'BAT VwRptMspAssignment'[Start.Date]<EARLIER('BAT VwRptMspAssignment'[Start.Date])),
'BAT VwRptMspAssignment'[EoaReason]="Successful Completion"),
'BAT VwRptMspAssignment' [FinishFlag])
но ни одно из этих решений не сработало.
У кого-нибудь есть идеи, почему или что еще я могу попытаться сделать это?Пример формата данных, экспортируемых в Excel:
«Подрядчики доступны. 2» - это вычисляемый столбец.Обратите внимание на 521 в первой строке.Если я применяю все эти фильтры в Excel, он должен быть равен нулю, это название должности является уникальным в наборе данных.В нем говорится, что 107 строк «Технический писатель - эксперт» должны были закончиться в течение месяца с 26.09.2017, но это только 3 технических писателя в наборе данных, и ноль из двух других закончили свои назначения в течение месяца 9 /.30/2016: