Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Z3R0G3R10
Regular Visitor

Nova tabela

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

)

)

)

)

3 REPLIES 3
Z3R0G3R10
Regular Visitor

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

amitchandak
Super User
Super User

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

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.