отработанных сотрудником за год.
Состоит из нескольких CALCULATE. Почти всё считается верно, за исключением одного CALCULATE:
CALCULATE(DATEDIFF(MIN('Календарь'[Date]),MAX('Календарь'[Date]),MONTH), KEEPFILTERS('HR: Список персонала'[Дата начала работы]<MAX('Календарь'[Date])&&('HR: Список персонала'[Дата увольнения/декрет]>MIN('Календарь'[Date])&&NOT(ISBLANK('HR: Список персонала'[Дата увольнения/декрет])))&&('HR: Список персонала'[Дата увольнения/декрет]>MAX('Календарь'[Date]))&&(('HR: Список персонала'[Дата начала работы])<MIN('Календарь'[Date]))))
Для примера возьму 2022 г. По задумке этот calculate должен высчитываться для тех сотрудников, которые начали работать до 2022 года, а закончили работать в 2023 году. Т.е. в 2022 они проработали 12 месяцев. Но почему-то этот calculate, не смотря на фильтры, считает всем сотрудникам в таблице по 12 месяцев (точнее по 11, т.к. DATEDIFF(1.1.2022,31.12.2022,MONTH) = 11, но это я поправлю).
Если вынести условие в KEEPFILTERS в отдельный столбец, то для всех строк он показывает FALSE. При этом почему-то CALCULATE рассчитывается по всем строкам. Что я делаю не так?
CALCULATE из той же меры, для сотрудников, кто начал работать до/в 2022 году и закончил в 2022. Считает всё верно: CALCULATE(IF(SELECTEDVALUE('HR: Список персонала'[Дата начала работы])<MIN('Календарь'[Date]),DATEDIFF(MIN('Календарь'[Date]),SELECTEDVALUE('HR: Список персонала'[Дата увольнения/декрет]),MONTH),DATEDIFF(SELECTEDVALUE('HR: Список персонала'[Дата начала работы]),SELECTEDVALUE('HR: Список персонала'[Дата увольнения/декрет]),MONTH)), KEEPFILTERS('HR: Список персонала'[Дата начала работы]<MAX('Календарь'[Date])),KEEPFILTERS('HR: Список персонала'[Дата увольнения/декрет]>MIN('Календарь'[Date])&&NOT(ISBLANK('HR: Список персонала'[Дата увольнения/декрет]))),KEEPFILTERS('HR: Список персонала'[Дата увольнения/декрет]<MAX('Календарь'[Date])))
Что логика что реализация бездумные, на бумаге определите что должно считаться и как и только потом реализовывайте
Дакс форматтер показывает ошибку. вы полностью скопировали? update - заработало. Где-то пробле был лишний
Вроде полностью.. но я уже поправил, всё заработало, спасибо :) А матчасть надо подучить))
Обсуждают сегодня