Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
3 years ago

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

  • @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]
    )
    )
    )

  • 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".

  • 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".