Ir para conteúdo
  • 0

Cálculo de horas


Thiago Pedrazi
Ir para solução Solucionado por Davi Rodolfo ,

Pergunta

  • Alunos

Olá, boa tarde!
Eu preciso calcular o tempo médio que pessoas ficam em uma determinada localização.
A coluna TEMPO_MU_IDA já esta em segundos. Quantidade_Bilhete (são as pessoas), Data da Visita e o código do bilhete.
Estou em dúvida do que fazer:
1) Pra achar a média de Tempo eu somo o Tempo_Mu_Ida , somo a Quantidade de bilhetes , faço um Divide e depois aplico a medida pra transformar pro formato de HH:MM:SS (horas, minutos e segundos)?
2) Somo o Tempo_MU_Ida , transformo em HH:MM:SS e depois divido pela soma da Quantidade de Bilhete?
3) Fazer uma divisão linha a linha na tabela e depois a média dessa divisão.

Eu fiz o cálculo a seguir, mas não se está correto. Quem puder ajudar, agradeço bastante!

Total Tempo MU_Ida = 

VAR vTempo_MU_Ida = SUM(Fato_Tempo_Permanencia[TEMPO_MU_IDA]) //Total Tempo MU ida em segundos
VAR vTempo_MU_Ida_Horas = INT(vTempo_MU_Ida / 3600) //Tempo MU ida em horas -- 1 minuto tem 60 segundos, então 1 hora tem 3.600 segundos.
VAR vTempo_MU_Ida_Minutos = INT ((vTempo_MU_Ida - (vTempo_MU_Ida_Horas * 3600)) / 60) //Retorno o número de minutos, desconsiderando as horas e os segundos excedentes 
VAR vTempo_MU_IdaSegundos = MOD(vTempo_MU_Ida , 60) //Apenas os segundos -- A função MOD retorna o resto da divisão

RETURN
vTempo_MU_Ida_Horas * 10000 + vTempo_MU_Ida_Minutos * 100 + vTempo_MU_IdaSegundos //Colocando na Base 10

 

Total Pax = SUM(Fato_Tempo_Permanencia[Quantidade_Bilhete])

 

Tempo Médio_MU_Ida = DIVIDE([Total Tempo MU_Ida] , [Total Pax] , 0)

image.png.c7cbc78dc413e46b4441bd3d64ec550e.png

Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Thiago, fiz assim

Mudei essa medida abaixo

Total Tempo MU_Ida V4 =
 
VAR vTempo_MU_Ida = SUM( Fato_Tempo_Permanencia[TEMPO_MU_IDA] )
 
VAR vTempo_MU_Ida_Horas = INT(vTempo_MU_Ida / 3600) //Tempo MU ida em horas -- 1 minuto tem 60 segundos, então 1 hora tem 3.600 segundos.
VAR vTempo_MU_Ida_Minutos = INT ((vTempo_MU_Ida - (vTempo_MU_Ida_Horas * 3600)) / 60) //Retorno o número de minutos, desconsiderando as horas e os segundos excedentes
VAR vTempo_MU_IdaSegundos = MOD(vTempo_MU_Ida , 60) //Apenas os segundos -- A função MOD retorna o resto da divisão
 
RETURN
vTempo_MU_Ida_Horas * 10000 + vTempo_MU_Ida_Minutos * 100 + vTempo_MU_IdaSegundos //Colocando na Base 10

e criei a media de média

Medida =
 
VAR vTempo_MU_Ida = DIVIDE( [Total Tempo MU_Ida V4] , SUM( Fato_Tempo_Permanencia[Quantidade_Bilhete] ) , 0 )
 
VAR vTempo_MU_Ida_Horas = INT(vTempo_MU_Ida / 3600) //Tempo MU ida em horas -- 1 minuto tem 60 segundos, então 1 hora tem 3.600 segundos.
VAR vTempo_MU_Ida_Minutos = INT ((vTempo_MU_Ida - (vTempo_MU_Ida_Horas * 3600)) / 60) //Retorno o número de minutos, desconsiderando as horas e os segundos excedentes
VAR vTempo_MU_IdaSegundos = MOD(vTempo_MU_Ida , 60) //Apenas os segundos -- A função MOD retorna o resto da divisão
 
RETURN
vTempo_MU_Ida_Horas * 10000 + vTempo_MU_Ida_Minutos * 100 + vTempo_MU_IdaSegundos //Colocando na Base 10

image.png.9d5e32acac22d054fd49309155d7a7ef.png



Segue anexo pbix

Dashboard de Tempo de Permanência_v3.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Pedrazi,

Veja assim, dividi logo o tempo pela quantidade antes de transformar em formato de hora, 

mudando direto na primeira VAR do sue código
 

VAR vTempo_MU_Ida =
    SUMX(
        Fato_Tempo_Permanencia
      , Fato_Tempo_Permanencia[TEMPO_MU_IDA] / Fato_Tempo_Permanencia[Quantidade_Bilhete]
)
Editado por Davi Rodolfo
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
52 minutos atrás, Davi Rodolfo disse:

image.png.c8f95df04a9c3a7cee90a8219cd82b26.png

Oi @Davi Rodolfo,

Fiz isso que vc falou:

Total Tempo MU_Ida V4 = 

VAR vTempo_MU_Ida = SUMX(Fato_Tempo_Permanencia,
Fato_Tempo_Permanencia[TEMPO_MU_IDA] / Fato_Tempo_Permanencia[Quantidade_Bilhete]
)

VAR vTempo_MU_Ida_Horas = INT(vTempo_MU_Ida / 3600) //Tempo MU ida em horas -- 1 minuto tem 60 segundos, então 1 hora tem 3.600 segundos.
VAR vTempo_MU_Ida_Minutos = INT ((vTempo_MU_Ida - (vTempo_MU_Ida_Horas * 3600)) / 60) //Retorno o número de minutos, desconsiderando as horas e os segundos excedentes 
VAR vTempo_MU_IdaSegundos = MOD(vTempo_MU_Ida , 60) //Apenas os segundos -- A função MOD retorna o resto da divisão

RETURN
vTempo_MU_Ida_Horas * 10000 + vTempo_MU_Ida_Minutos * 100 + vTempo_MU_IdaSegundos //Colocando na Base 10

E formatei a medida como 00:00:00
Mas não ficou legal...

image.png.5dbf9d29cd1d02de1755cb6c2c92ccdf.png
 

image.png.cfe5fc43761872ccacbbc92d248bedcd.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
14 minutos atrás, Davi Rodolfo disse:

Mas ai vc ta com toda a base, sem filtro correto?

tenta fazer um difltro de dia pelos menos ou de bilhete.

 

Oi @Davi Rodolfo, peço desculpas pela mensagem anterior. Cometi algum equívoco.  

 

image.png.14748d2d7eb3964b651c31caa3e3f800.png

 

Nesse exemplo estou filtrando 2024. Mas não seria certo dizer que as pessoas ficaram em média 250 horas no local...entende?

image.png.32feec102fc412dcabf5ff0a74eea41c.png
 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
3 minutos atrás, Davi Rodolfo disse:

Mas vc ja validou qual valor deveria dar com esses filtros ai, pra ver se bate com esse ai?

Agora por exemplo, eu filtrei 01/01/2024. Não faz mto sentido dizer que pessoa ficou no mesmo lugar por 17h.
Como eu conheço o negócio, teria que ser alto de 30 min - 1 hora. Talvez um pouco mais.
Esse local fica aberto de 08h00 às 20h00. É um Parque Turístico que recebe visitantes. Então falar que a pessoa ficar em média 17h não faz mto sentido..

image.png.67e64db6a8248adbc7cfd49da4b74deb.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
8 minutos atrás, Davi Rodolfo disse:

Consegue compartilar um pbix de exemplo aqui, pra poder fazer um teste ?

Oi @Davi Rodolfo, Posso sim. A pasta de medidas com o nome Medidas_Novas foi eu que criei. E tem algumas medidas que estou testando..

A medida que criei com base na sua dica se chama:  Total Tempo MU_Ida V4

Enviei um print da tabela que estou usando. Todas as colunas de tempo estão sem segundos.

 

image.png.e48b5c17d2e405224715c498fcec8af0.png

image.png.c7f50c63a99ea1c44dfa02a95b274ec9.png

image.png.1abdb31c8de43b93a679823ea4e6ef2c.png

Dashboard de Tempo de Permanência_v3.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
2 horas atrás, Davi Rodolfo disse:

Thiago, fiz assim

Mudei essa medida abaixo

Total Tempo MU_Ida V4 =
 
VAR vTempo_MU_Ida = SUM( Fato_Tempo_Permanencia[TEMPO_MU_IDA] )
 
VAR vTempo_MU_Ida_Horas = INT(vTempo_MU_Ida / 3600) //Tempo MU ida em horas -- 1 minuto tem 60 segundos, então 1 hora tem 3.600 segundos.
VAR vTempo_MU_Ida_Minutos = INT ((vTempo_MU_Ida - (vTempo_MU_Ida_Horas * 3600)) / 60) //Retorno o número de minutos, desconsiderando as horas e os segundos excedentes
VAR vTempo_MU_IdaSegundos = MOD(vTempo_MU_Ida , 60) //Apenas os segundos -- A função MOD retorna o resto da divisão
 
RETURN
vTempo_MU_Ida_Horas * 10000 + vTempo_MU_Ida_Minutos * 100 + vTempo_MU_IdaSegundos //Colocando na Base 10

e criei a media de média

Medida =
 
VAR vTempo_MU_Ida = DIVIDE( [Total Tempo MU_Ida V4] , SUM( Fato_Tempo_Permanencia[Quantidade_Bilhete] ) , 0 )
 
VAR vTempo_MU_Ida_Horas = INT(vTempo_MU_Ida / 3600) //Tempo MU ida em horas -- 1 minuto tem 60 segundos, então 1 hora tem 3.600 segundos.
VAR vTempo_MU_Ida_Minutos = INT ((vTempo_MU_Ida - (vTempo_MU_Ida_Horas * 3600)) / 60) //Retorno o número de minutos, desconsiderando as horas e os segundos excedentes
VAR vTempo_MU_IdaSegundos = MOD(vTempo_MU_Ida , 60) //Apenas os segundos -- A função MOD retorna o resto da divisão
 
RETURN
vTempo_MU_Ida_Horas * 10000 + vTempo_MU_Ida_Minutos * 100 + vTempo_MU_IdaSegundos //Colocando na Base 10

image.png.9d5e32acac22d054fd49309155d7a7ef.png



Segue anexo pbix

Dashboard de Tempo de Permanência_v3.pbix 1.12 MB · 0 downloads

Oi @Davi Rodolfo, boa noite!
Vou verificar com calma esse cálculo. Confesso pra ti que trabalhar com horas é algo bem novo pra mim. Primeiro projeto que pego com horas e estou tendo dificuldades...

  • Like 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
15 horas atrás, Davi Rodolfo disse:

Thiago, fiz assim

Mudei essa medida abaixo

Total Tempo MU_Ida V4 =
 
VAR vTempo_MU_Ida = SUM( Fato_Tempo_Permanencia[TEMPO_MU_IDA] )
 
VAR vTempo_MU_Ida_Horas = INT(vTempo_MU_Ida / 3600) //Tempo MU ida em horas -- 1 minuto tem 60 segundos, então 1 hora tem 3.600 segundos.
VAR vTempo_MU_Ida_Minutos = INT ((vTempo_MU_Ida - (vTempo_MU_Ida_Horas * 3600)) / 60) //Retorno o número de minutos, desconsiderando as horas e os segundos excedentes
VAR vTempo_MU_IdaSegundos = MOD(vTempo_MU_Ida , 60) //Apenas os segundos -- A função MOD retorna o resto da divisão
 
RETURN
vTempo_MU_Ida_Horas * 10000 + vTempo_MU_Ida_Minutos * 100 + vTempo_MU_IdaSegundos //Colocando na Base 10

e criei a media de média

Medida =
 
VAR vTempo_MU_Ida = DIVIDE( [Total Tempo MU_Ida V4] , SUM( Fato_Tempo_Permanencia[Quantidade_Bilhete] ) , 0 )
 
VAR vTempo_MU_Ida_Horas = INT(vTempo_MU_Ida / 3600) //Tempo MU ida em horas -- 1 minuto tem 60 segundos, então 1 hora tem 3.600 segundos.
VAR vTempo_MU_Ida_Minutos = INT ((vTempo_MU_Ida - (vTempo_MU_Ida_Horas * 3600)) / 60) //Retorno o número de minutos, desconsiderando as horas e os segundos excedentes
VAR vTempo_MU_IdaSegundos = MOD(vTempo_MU_Ida , 60) //Apenas os segundos -- A função MOD retorna o resto da divisão
 
RETURN
vTempo_MU_Ida_Horas * 10000 + vTempo_MU_Ida_Minutos * 100 + vTempo_MU_IdaSegundos //Colocando na Base 10

image.png.9d5e32acac22d054fd49309155d7a7ef.png

Oi @Davi Rodolfo, bom dia! Blz?

Eu verifiquei seu cálculo ontem e entendi. A questão é que 01:51:51 é mto tempo pro visitante ficar na localização que estou analisando (MU Ida). Geralmente o tempo médio varia entre 30 min - 1 hora. 
Ontem mandei essa mensagem pro meu Chefe. Perguntando se fazia sentido 01:43 de tempo médio (filtrei 2023 nesse caso).
Eu acho que o cálculo que vc comentou lá no início usando a SUMX faz mais sentido...
Vou fazer umas análises aqui, e te aviso. Gratidão pelo suporte.  

image.png.794984778aefcf00268808c826740b4b.png

Segue anexo pbix

Dashboard de Tempo de Permanência_v3.pbix 1.12 MB · 0 downloads

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Em 19/01/2024 em 19:59, Davi Rodolfo disse:

Thiago, fiz assim

Mudei essa medida abaixo

Total Tempo MU_Ida V4 =
 
VAR vTempo_MU_Ida = SUM( Fato_Tempo_Permanencia[TEMPO_MU_IDA] )
 
VAR vTempo_MU_Ida_Horas = INT(vTempo_MU_Ida / 3600) //Tempo MU ida em horas -- 1 minuto tem 60 segundos, então 1 hora tem 3.600 segundos.
VAR vTempo_MU_Ida_Minutos = INT ((vTempo_MU_Ida - (vTempo_MU_Ida_Horas * 3600)) / 60) //Retorno o número de minutos, desconsiderando as horas e os segundos excedentes
VAR vTempo_MU_IdaSegundos = MOD(vTempo_MU_Ida , 60) //Apenas os segundos -- A função MOD retorna o resto da divisão
 
RETURN
vTempo_MU_Ida_Horas * 10000 + vTempo_MU_Ida_Minutos * 100 + vTempo_MU_IdaSegundos //Colocando na Base 10

e criei a media de média

Medida =
 
VAR vTempo_MU_Ida = DIVIDE( [Total Tempo MU_Ida V4] , SUM( Fato_Tempo_Permanencia[Quantidade_Bilhete] ) , 0 )
 
VAR vTempo_MU_Ida_Horas = INT(vTempo_MU_Ida / 3600) //Tempo MU ida em horas -- 1 minuto tem 60 segundos, então 1 hora tem 3.600 segundos.
VAR vTempo_MU_Ida_Minutos = INT ((vTempo_MU_Ida - (vTempo_MU_Ida_Horas * 3600)) / 60) //Retorno o número de minutos, desconsiderando as horas e os segundos excedentes
VAR vTempo_MU_IdaSegundos = MOD(vTempo_MU_Ida , 60) //Apenas os segundos -- A função MOD retorna o resto da divisão
 
RETURN
vTempo_MU_Ida_Horas * 10000 + vTempo_MU_Ida_Minutos * 100 + vTempo_MU_IdaSegundos //Colocando na Base 10

image.png.9d5e32acac22d054fd49309155d7a7ef.png



Segue anexo pbix

Dashboard de Tempo de Permanência_v3.pbix 1.12 MB · 0 downloads


Bom dia @Davi Rodolfo ,

Obrigado pela ajuda! A melhor solução foi essa mesmo! Gratidão! Abs!

image.png.edd003c4f0083deccd95d99a244c936c.png
 

  • Like 2
Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...