Forum Discussion
Nueva tabla
Saludos
siguiendo el ejemplo anterior, cómo calcular en Power BI en DAX una tabla donde considerar en la misma fila el mismo Conductor + Vehículo + Datos, separando en una columna el KM inicial y el KM final. Tenga en cuenta que hay 1 ejemplo donde el conductor hizo el viaje de ida y vuelta el mismo día y luego hay otro ejemplo donde el conductor comienza el viaje en un día y termina en otro día.
Aprovechando, puedes hacerlo en Language M y tratar a través de 2 nuevas columnas con KM INITIAL y KM FINAL?
día | Tiempo |Conductor | Coche | km |
01/08/2023 | 07:02:01 | Juan | FiurinoAET1052 7.000 |
01/08/2023 | 07:12:20 | Juan | FiurinoAET1052 7.450 |
02/08/2023 | 07:11:01 | Juan | FiurinoAET1052 7.450 |
03/08/2023 | 07:00:07 | Juan | FiurinoAET1052 8.000 |
Hice este código en DAX y dio el error "Muchos argumentos se pasaron a la función SUMX. Número de argumentos superior para la función: 2.":
OrdenacaoComDiferencaKM =
VAR TabelaAgrupada =
RESUMIR(
'dRespFormCheckList',
'dRespFormCheckList'[Controlador],
'dRespFormCheckList'[Datos],
'dRespFormCheckList'[Coche],
"MenorHora", MIN('dRespFormCheckList'[Hora]),
"MaiorHora", MAX('dRespFormCheckList'[Hora])
)
DEVOLUCIÓN
SUMX(
TabelaAgrupada,
SI(
RANKX(
FILTRO(
'dRespFormCheckList',
'dRespFormCheckList'[Driver] = EARLY('dRespFormCheckList'[Driver]) &&
'dRespFormCheckList'[Data] = BEFORE('dRespFormCheckList'[Data]) &&
'dRespFormCheckList'[Carro] = EARLIER('dRespFormCheckList'[Carro])
),
[MenorHora] + IF([MenorHora] = [MaiorHora], TIME(23, 59, 59), TIME(0, 0, 0)), , 1, Denso ) = 1, CALCULAR
(
SUMX
(
'
dRespFormCheckList
'
,
' dRespFormCheckList'[km final] - 'dRespFormCheckList'[km inicial],
'dRespFormCheckList'[Motorist] = EARLY('dRespFormCheckList'[Motorist]),
'dRespFormCheckList'[Data] = EARLY('dRespFormCheckList'[Data]),
' dRespFormCheckList'[Carro] = EARLIER('dRespFormCheckList'[Carro])
)
)
)
)
3 Replies
- Syndicate_Admin
Administrator
@Z3R0G3R10 , Prueba como
SortWithDifferenceKM =
Tabla agrupada VAR =
RESUMIR(
'dRespFormCheckList',
'dRespFormCheckList'[Controlador],
'dRespFormCheckList'[Datos],
'dRespFormCheckList'[Coche],
"ShorterHour", MIN('dRespFormCheckList'[Time]),
"GreatestTime", MAX('dRespFormCheckList'[Time])
)DEVOLUCIÓN
SUMX(
GroupedTable,
CALCULAR(
SI(
RANKX(
FILTRO(
'dRespFormCheckList',
'dRespFormCheckList'[Motorista] = BEFORE('dRespFormCheckList'[Motorista]) &&
'dRespFormCheckList'[Data] = BEFORE('dRespFormCheckList'[Data]) &&
'dRespFormCheckList'[Carro] = BEFORE('dRespFormCheckList'[Carro])
),
[MenorHora] + IF([MenorHora] = [MaiorHora], TIME(23, 59, 59), TIME(0, 0, 0)), , 1, Dense ) = 1,
'dRespFormCheckList'[Km final] - 'dRespFormCheckList'[Km inicial]
)
)
) - Syndicate_Admin
Administrator
parece que esta solución es posible, solo necesita ajustar algo, devolvió el siguiente error: "Error al resolver el nombre 'GroupedTable'. No es un nombre válido de tabla, variable o función".
- Syndicate_Admin
Administrator
esta solución parece plausible, pero aún acusa un error: "Error al resolver el nombre 'GroupedTable'. No es un nombre válido de tabla, variable o función".