Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more
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?
Thanks.
Solved! Go to Solution.
Hi @Anonymous,
Could you try the formula below to see if it works in your scenario? ![]()
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
Hi @Anonymous
Could you please post a mock up of what you expect your result to look like. That will help us fill the gap.
Hello @Phil_Seamark,
I need a formula that looks like:
Task% = [Hours in the task]/[Amount of worked Hours in the month of this person in all worked tasks]
Hi @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)
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]))
))
Hi @Anonymous,
Could you try the formula below to see if it works in your scenario? ![]()
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
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 )
Hi @Anonymous
Do you have a Date Table that has a Month column?
The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!
| User | Count |
|---|---|
| 38 | |
| 38 | |
| 36 | |
| 28 | |
| 28 |
| User | Count |
|---|---|
| 124 | |
| 89 | |
| 73 | |
| 66 | |
| 65 |