Forum Discussion
Anonymous
9 years agoNot applicable
Monthly Percent in a Table
Hello everyone, I´m having problems with a DAX calculation. I need to calculate the % of hours that suppose every row per month and person and I have a table like this. Any help? T...
- 9 years ago
Hi Anonymous,
Could you try the formula below to see if it works in your scenario? :smileyhappy:
Task % = VAR currentMonth = MONTH ( MAX ( 'Table2'[Fecha de trabajo] ) ) VAR currentYear = YEAR ( MAX ( 'Table2'[Fecha de trabajo] ) )
VAR currentPerson =
MAX ( 'Table2'[Id_Persona] ) VAR HoursInTask = CALCULATE ( SUM ( 'Table2'[Horas] ), ALLEXCEPT ( Table2, 'Table2'[Id_Proyecto] ) ) VAR AmountHoursPersonInAllTasks = CALCULATE ( SUM ( 'Table2'[Horas] ), FILTER ( ALL ( 'Table2' ), 'Table2'[Id_Persona] = currentPerson && ( MONTH ( 'Table2'[Fecha de trabajo] ) = currentMonth && YEAR ( 'Table2'[Fecha de trabajo] ) = currentYear ) ) ) RETURN DIVIDE ( HoursInTask, AmountHoursPersonInAllTasks )Regards
Phil_Seamark
Microsoft Employee
9 years agoHi Anonymous
This might be getting close
Task % =
var HoursInTask = CALCULATE(SUM('Table2'[Horas]),ALLEXCEPT(Table2,'Table2'[Id_Proyecto]))
var AmountHoursPersonInAllTasks =
CALCULATE(
SUM('Table2'[Horas]),
FILTER(
ALL('Table2'),
MONTH('Table2'[Fecha de trabajo])= MONTH(MAX('Table2'[Fecha de trabajo]))
&& YEAR('Table2'[Fecha de trabajo])= YEAR(MAX('Table2'[Fecha de trabajo]))
))
RETURN DIVIDE(HoursInTask,AmountHoursPersonInAllTasks)Anonymous
9 years agoNot applicable
Thanks for answer so quickly Phil_Seamark,
Yes, I have a CalendarTable with month, year, ...
I proved your formula and didn't show me what I need.
I think this part don't work fine. It sums all hours of all tasks that I have, the date filter in the part of ALL() don't work.
var AmountHoursPersonInAllTasks =
CALCULATE(
SUM('Table2'[Horas]),
FILTER(
ALL('Table2'),
MONTH('Table2'[Fecha de trabajo])= MONTH(MAX('Table2'[Fecha de trabajo]))
&& YEAR('Table2'[Fecha de trabajo])= YEAR(MAX('Table2'[Fecha de trabajo]))
))
- v-ljerr-msft9 years ago
Microsoft Employee
Hi Anonymous,
Could you try the formula below to see if it works in your scenario? :smileyhappy:
Task % = VAR currentMonth = MONTH ( MAX ( 'Table2'[Fecha de trabajo] ) ) VAR currentYear = YEAR ( MAX ( 'Table2'[Fecha de trabajo] ) )
VAR currentPerson =
MAX ( 'Table2'[Id_Persona] ) VAR HoursInTask = CALCULATE ( SUM ( 'Table2'[Horas] ), ALLEXCEPT ( Table2, 'Table2'[Id_Proyecto] ) ) VAR AmountHoursPersonInAllTasks = CALCULATE ( SUM ( 'Table2'[Horas] ), FILTER ( ALL ( 'Table2' ), 'Table2'[Id_Persona] = currentPerson && ( MONTH ( 'Table2'[Fecha de trabajo] ) = currentMonth && YEAR ( 'Table2'[Fecha de trabajo] ) = currentYear ) ) ) RETURN DIVIDE ( HoursInTask, AmountHoursPersonInAllTasks )Regards
- Anonymous9 years agoNot applicable
Thanks v-ljerr-msft,
Works great with little modifications.Task % = VAR currentMonth = MONTH ( 'Table2'[Fecha de trabajo] ) VAR currentYear = YEAR ( 'Table2'[Fecha de trabajo] )
VAR currentPerson =
( 'Table2'[Id_Persona] ) VAR HoursInTask = SUM ( 'Table2'[Horas] ) VAR AmountHoursPersonInAllTasks = CALCULATE ( SUM ( 'Table2'[Horas] ), FILTER ( ALL ( 'Table2' ), 'Table2'[Id_Persona] = currentPerson && ( MONTH ( 'Table2'[Fecha de trabajo] ) = currentMonth && YEAR ( 'Table2'[Fecha de trabajo] ) = currentYear ) ) ) RETURN DIVIDE ( HoursInTask, AmountHoursPersonInAllTasks )