Olá, Gabriel!
Sua proposta ficou bem interessante e mostra uma boa preocupação com legibilidade e manutenção da medida.
O uso de variáveis (VAR) é uma prática recomendada em DAX, pois evita recalcular expressões, torna o código mais organizado e facilita futuras alterações. Testar concentrar toda a lógica em uma única medida pode ser uma boa alternativa quando esse cálculo não será reutilizado em outros lugares do relatório.
Veja este exemplo:
Media Carga Horaria Final =
VAR vHoraTotal =
AVERAGEX(fPonto, DATEDIFF(fPonto[Hora Entrada], fPonto[Hora Saida], HOUR))
RETURN
FORMAT(INT(vHoraTotal), "00") & ":" &
FORMAT(ROUND((vHoraTotal - INT(vHoraTotal)) * 60, 0), "00")
Nesse exemplo, a variável calcula a média das horas e, em seguida, a medida separa a parte inteira (horas) da parte decimal (minutos), formatando o resultado como hh:mm.
Um detalhe para observar é que o uso de DATEDIFF(..., HOUR) retorna apenas horas inteiras. Isso significa que minutos existentes entre os horários são descartados antes do cálculo da média. Se houver registros como 08:30 ou 07:45, o resultado poderá perder precisão.
Uma alternativa é calcular a diferença em MINUTE e converter o resultado posteriormente. Dessa forma, a média considera toda a duração dos registros.
Media Carga Horaria Final =
VAR vMinutos =
AVERAGEX(fPonto, DATEDIFF(fPonto[Hora Entrada], fPonto[Hora Saida], MINUTE))
RETURN
FORMAT(INT(vMinutos / 60), "00") & ":" &
FORMAT(MOD(ROUND(vMinutos, 0), 60), "00")
Nesse caso, a média é calculada em minutos, preservando a precisão do intervalo, e depois convertida novamente para o formato hh:mm.
Caso essa medida seja utilizada apenas para exibição, sua abordagem é bastante válida e ainda reduz a quantidade de medidas no modelo, deixando o relatório mais enxuto.
Você chegou a considerar um cenário em que a tabela tem os horários que inclui os minutos? Esse detalhe pode influenciar na melhor estratégia para esse cálculo.
Conteúdos para complementar seus estudos
Esse conteúdo pode estar em inglês, para traduzi-lo utilize o tradutor automático do navegador ou clique com o botão direito do mouse sobre a página e selecione a opção Traduzir para o português.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!