2015-01-15 3 views
0

Я работаю над отчетом и должен сообщать часы на одного сотрудника. Однако некоторые люди работали дольше, чем Max Hours, и простая сумма не будет работать в следующем случае ... Я попытался использовать функцию Min, но она работает только как уровень столбца ... Я видел = функция вычисления должна работать но я не уверен, как это записать ... ниже приведен пример:PowerPivot DAX Установите максимальное значение для группы

Staff ID Date   Work Hours 
A001  5-Jan-2015  8   
A001  6-Jan-2015  8 
A001  7-Jan-2015  8 
A001  8-Jan-2015  8 
A001  9-Jan-2015  8 
A002  5-Jan-2015  7   
A002  6-Jan-2015  7 
A002  7-Jan-2015  6 
A002  8-Jan-2015  7 
A002  9-Jan-2015  6 

Staff ID Staff Name  Max Hours Per Week 
A001  Person A  35 
A002  Person B  35 


Output: 
Staff ID Hours 
A001  35  (instead of 40) 
A002  33  (7+7+6+7+6) 

Большое спасибо за помощь!

ответ

0

Начните с Мерой называется часы, просто суммирует столбец:

=SUM(Table1[Work Hours]) 

Эта мера затем использует эту сумму и делает IF(), чтобы проверить, является ли человек сверх лимита и возвращает соответствующее число. SUMX() выполняет итерацию над каждым человеком, чтобы дать вам правильную сумму.

= 
SUMX (
VALUES (Table1[Staff ID]), 
IF (
    [Hours] > VALUES (Table2[Max Hours Per Week]), 
    VALUES (Table2[Max Hours Per Week]), 
    [Hours] 
    ) 
    ) 

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