Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
Saudações,
seguindo o exemplo acima, como calcular no Power BI em DAX uma tabela onde considerar na mesma linha o mesmo Motorista + Veículo + Dados, separando em uma coluna o KM inicial e o KM final. Observe que existe 1 exemplo em que o motorista fez a viagem de ida e volta no mesmo dia e depois há um outro exemplo onde o motorista inicia a viagem em um dia e finaliza em outro dia.
Aproveitando, tem como fazer em Linguagem M e tratar através de 2 novas colunas com KM INICIAL e KM FINAL?
dia | hora |Motorista | Carro | km |
01/08/2023 | 07:02:01 | João | FiurinoAET1052 | 7.000 |
01/08/2023 | 07:12:20 | João | FiurinoAET1052 | 7.450 |
02/08/2023 | 07:11:01 | João | FiurinoAET1052 | 7.450 |
03/08/2023 | 07:00:07 | João | FiurinoAET1052 | 8.000 |
Eu fiz esse código em DAX e deu erro "Muitos argumentos foram passados para a função SUMX. Contagem superior de argumentos para a função: 2.":
OrdenacaoComDiferencaKM =
VAR TabelaAgrupada =
SUMMARIZE(
'dRespFormCheckList',
'dRespFormCheckList'[Motorista],
'dRespFormCheckList'[Data],
'dRespFormCheckList'[Carro],
"MenorHora", MIN('dRespFormCheckList'[Hora]),
"MaiorHora", MAX('dRespFormCheckList'[Hora])
)
RETURN
SUMX(
TabelaAgrupada,
IF(
RANKX(
FILTER(
'dRespFormCheckList',
'dRespFormCheckList'[Motorista] = EARLIER('dRespFormCheckList'[Motorista]) &&
'dRespFormCheckList'[Data] = EARLIER('dRespFormCheckList'[Data]) &&
'dRespFormCheckList'[Carro] = EARLIER('dRespFormCheckList'[Carro])
),
[MenorHora] + IF([MenorHora] = [MaiorHora], TIME(23, 59, 59), TIME(0, 0, 0)), , 1, Dense ) = 1, CALCULATE
(
SUMX
(
'
dRespFormCheckList
'
,
' dRespFormCheckList'[Km Final] - 'dRespFormCheckList'[Km Inicial],
'dRespFormCheckList'[Motorista] = EARLIER('dRespFormCheckList'[Motorista]),
'dRespFormCheckList'[Data] = EARLIER('dRespFormCheckList'[Data]),
' dRespFormCheckList'[Carro] = EARLIER('dRespFormCheckList'[Carro])
)
)
)
)
parece que é possível esta solução, falta apenas ajustar alguma coisa, retornou o seguinte erro: "Falha ao resolver o nome 'GroupedTable'. Não é uma tabela, variável ou nome de função válidos."
@Z3R0G3R10 , Try like
SortWithDifferenceKM =
VAR TabelaAgrupada =
SUMMARIZE(
'dRespFormCheckList',
'dRespFormCheckList'[Motorista],
'dRespFormCheckList'[Data],
'dRespFormCheckList'[Carro],
"MenorHora", MIN('dRespFormCheckList'[Hora]),
"MaiorHora", MAX('dRespFormCheckList'[Hora])
)
RETURN
SUMX(
GroupedTable,
CALCULATE(
IF(
RANKX(
FILTER(
'dRespFormCheckList',
'dRespFormCheckList'[Motorista] = EARLIER('dRespFormCheckList'[Motorista]) &&
'dRespFormCheckList'[Data] = EARLIER('dRespFormCheckList'[Data]) &&
'dRespFormCheckList'[Carro] = EARLIER('dRespFormCheckList'[Carro])
),
[MenorHora] + IF([MenorHora] = [MaiorHora], TIME(23, 59, 59), TIME(0, 0, 0)), , 1, Dense ) = 1,
'dRespFormCheckList'[Km Final] - 'dRespFormCheckList'[Km Inicial]
)
)
)
parece plausível essa solução, mas, ainda acusa um erro: "Falha ao resolver o nome 'GroupedTable'. Não é uma tabela, variável ou nome de função válidos."
User | Count |
---|---|
104 | |
92 | |
88 | |
78 | |
71 |
User | Count |
---|---|
113 | |
105 | |
101 | |
75 | |
64 |