brunoemr
Hola a todos,
Estoy luchando aquí…
Estoy tratando de hacer un gráfico con una suma acumulada de horas reportadas durante el período de contratos para cada contrato.
Las horas informadas están en la tabla Timeworked y el período del contrato está en TblContracts, campos TblContracts[Contract Start Date] y TblContracts[Contract End Date] no tener ninguna relación.
Mi modelo de datos:
Estoy usando el Dax a continuación, devuelve las horas informadas en el período, pero no devuelve los valores acumulativos.
Cumulative TimeWorked =
var starts_ = MAX(TblContracts[Contract Start Date])
var ends = MAX(TblContracts[Contract End Date])
return
CALCULATE(
SUM(Timeworked[Total_time_in_hours])
,FILTER( Date_dim,
Date_dim[full_date] >= starts_ &&
Date_dim[full_date] <= ends
)
,CROSSFILTER (Timeworked[date_dim_id],Date_dim[date_dim_id], BOTH )
,CROSSFILTER ( Timeworked[task_dim_id], Overview[project_task_dim_id], BOTH)
)
¿Cómo puedo lograr los valores acumulativos?
Gracias por adelantado.
BrunoR.
brunoemr
Hola,
He encontrado una solución.
Dax final:
Cumulative TimeWorked =
VAR minDate =
MIN ( TblContracts[Contract Start Date] )
VAR maxDate =
MAX ( TblContracts[Contract End Date] )
VAR totalHours =
CALCULATE (
SUM ( Timeworked[Total_time_in_hours] ),
FILTER (
ALL ( Date_dim ),
Date_dim[date] >= minDate
&& Date_dim[date] <= MAX ( Date_dim[date] )
&& ( MAX ( Date_dim[date] ) <= TODAY() && MAX ( Date_dim[date] ) <= maxDate)
)
, CROSSFILTER ( TblContracts[SNOW reporting ticket - billable ], Overview[project_task_number], BOTH )
, CROSSFILTER ( Timeworked[task_dim_id], Overview[project_task_dim_id], Both)
, CROSSFILTER ( Timeworked[date_dim_id], Date_dim[date_dim_id], BOTH )
)
return totalHours
Gracias,
Bruno
brunoemr
Hola,
He encontrado una solución.
Dax final:
Cumulative TimeWorked =
VAR minDate =
MIN ( TblContracts[Contract Start Date] )
VAR maxDate =
MAX ( TblContracts[Contract End Date] )
VAR totalHours =
CALCULATE (
SUM ( Timeworked[Total_time_in_hours] ),
FILTER (
ALL ( Date_dim ),
Date_dim[date] >= minDate
&& Date_dim[date] <= MAX ( Date_dim[date] )
&& ( MAX ( Date_dim[date] ) <= TODAY() && MAX ( Date_dim[date] ) <= maxDate)
)
, CROSSFILTER ( TblContracts[SNOW reporting ticket - billable ], Overview[project_task_number], BOTH )
, CROSSFILTER ( Timeworked[task_dim_id], Overview[project_task_dim_id], Both)
, CROSSFILTER ( Timeworked[date_dim_id], Date_dim[date_dim_id], BOTH )
)
return totalHours
Gracias,
Bruno
amichandak
@brunoemr, ¿puede compartir datos de muestra y resultados de muestra en formato de tabla? O un pbix de muestra después de eliminar datos confidenciales.
consulte si este blog puede ayudar
https://community.powerbi.com/t5/Community-Blog/HR-Analytics-Active-Employee-Hire-and-Termination-tr…
brunoemr
En respuesta a amichandak
Por supuesto, aquí hay una muestra:
Mi Datedim tiene todas las fechas desde 2013 hasta 2030, necesito evitar fechas futuras.
Gracias