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!
Check out the November 2025 Power BI update to learn about new features.
| User | Count |
|---|---|
| 59 | |
| 43 | |
| 42 | |
| 23 | |
| 17 |
| User | Count |
|---|---|
| 190 | |
| 122 | |
| 96 | |
| 66 | |
| 47 |