CALCULAR MEDIA
Alguém tem algum calculo simples para calcular a media de um total de várias horas somada. (TMA - Tempo médio de Atendimento)
Grato!!!!
Grato!!!!
Crie uma função que transforme a hora para decimal , faça o calculo e depois crie outra função que passe decimal para hora.
Se precisar eu tenho essas funções.
Se precisar eu tenho essas funções.
Parreira. Teria como me mandar?
Posta ai para quem precisar ja ter acesso a sua informação. Fico no Aguardo...
Grato.
Posta ai para quem precisar ja ter acesso a sua informação. Fico no Aguardo...
Grato.
}Como dito.. com essas funçoes você pode trabalhar legal com horas...
Public Function HoraToSeg(ByVal HTS As String) As String
Dim hh As Integer
Dim mm As Integer
Dim ss As Integer
Dim horaatual As Double
[ô]Converte de horas para segundos
[ô]recebe hora no formato hh:mm:ss
If HTS = [Ô][Ô] Then Exit Function
[ô]Pega a hora
hh = Format(mID$(HTS, 1, (Len(HTS) - 6)), [Ô]0#[Ô])
mm = Format(mID$(HTS, (Len(HTS) - 4), 2), [Ô]0#[Ô])
ss = Format(mID$(HTS, (Len(HTS) - 1), 2), [Ô]0#[Ô])
horaatual = hh * 3600#
horaatual = horaatual + (mm * 60#) + ss
HoraToSeg = CStr(horaatual)
End Function
Public Function SegToHora(ByVal STH As String) As String
Dim Hora As Double
Dim Minutos As Double
Dim Valor As Double
Dim Segundos As String
If IsNumeric(STH) = False Then Exit Function
Valor = CDbl(STH)
[ô]Transforma valor em hh:mm:ss
Hora = Format$((Valor \ 3600), [Ô]0#[Ô])
Minutos = Format$(((Valor Mod 3600) \ 60), [Ô]0#[Ô])
Segundos = Format$(((Valor Mod 3600) Mod 60), [Ô]0#[Ô])
SegToHora = Format$(Hora, [Ô]0#[Ô]) & [Ô]:[Ô] & Format$(Minutos, [Ô]0#[Ô]) & [Ô]:[Ô] & Format$(Segundos, [Ô]0#[Ô])
End Function
Public Function HoraToDecimal(ByVal sHora As String) As Single
Dim Horas As Integer
Dim Mins As Integer
Dim Segs As Integer
sHora = Format$(sHora, [Ô]HH:MM:SS[Ô])
If IsNull(sHora) Then
HoraToDecimal = 0
Exit Function
End If
Horas = Val(Left$(sHora, 2))
Mins = Val(mID$(sHora, 4, 2))
Segs = Val(Right$(sHora, 2))
HoraToDecimal = Horas + (Mins / 60) + (Segs / 3600)
End Function
Public Function DecimalToHora(nrHora As Double)
Dim Horas As Integer
Dim Mins As Integer
Horas = Int(nrHora)
Mins = (nrHora - Horas) * 60
If Mins = 60 Then
Horas = Horas + 1
Mins = 0
End If
DecimalToHora = IIf(Horas < 10, [Ô]0[Ô] & Horas, Horas) & [Ô]:[Ô] & IIf(Mins < 10, [Ô]0[Ô] & Mins, Mins)
End Function
Public Function HoraToSeg(ByVal HTS As String) As String
Dim hh As Integer
Dim mm As Integer
Dim ss As Integer
Dim horaatual As Double
[ô]Converte de horas para segundos
[ô]recebe hora no formato hh:mm:ss
If HTS = [Ô][Ô] Then Exit Function
[ô]Pega a hora
hh = Format(mID$(HTS, 1, (Len(HTS) - 6)), [Ô]0#[Ô])
mm = Format(mID$(HTS, (Len(HTS) - 4), 2), [Ô]0#[Ô])
ss = Format(mID$(HTS, (Len(HTS) - 1), 2), [Ô]0#[Ô])
horaatual = hh * 3600#
horaatual = horaatual + (mm * 60#) + ss
HoraToSeg = CStr(horaatual)
End Function
Public Function SegToHora(ByVal STH As String) As String
Dim Hora As Double
Dim Minutos As Double
Dim Valor As Double
Dim Segundos As String
If IsNumeric(STH) = False Then Exit Function
Valor = CDbl(STH)
[ô]Transforma valor em hh:mm:ss
Hora = Format$((Valor \ 3600), [Ô]0#[Ô])
Minutos = Format$(((Valor Mod 3600) \ 60), [Ô]0#[Ô])
Segundos = Format$(((Valor Mod 3600) Mod 60), [Ô]0#[Ô])
SegToHora = Format$(Hora, [Ô]0#[Ô]) & [Ô]:[Ô] & Format$(Minutos, [Ô]0#[Ô]) & [Ô]:[Ô] & Format$(Segundos, [Ô]0#[Ô])
End Function
Public Function HoraToDecimal(ByVal sHora As String) As Single
Dim Horas As Integer
Dim Mins As Integer
Dim Segs As Integer
sHora = Format$(sHora, [Ô]HH:MM:SS[Ô])
If IsNull(sHora) Then
HoraToDecimal = 0
Exit Function
End If
Horas = Val(Left$(sHora, 2))
Mins = Val(mID$(sHora, 4, 2))
Segs = Val(Right$(sHora, 2))
HoraToDecimal = Horas + (Mins / 60) + (Segs / 3600)
End Function
Public Function DecimalToHora(nrHora As Double)
Dim Horas As Integer
Dim Mins As Integer
Horas = Int(nrHora)
Mins = (nrHora - Horas) * 60
If Mins = 60 Then
Horas = Horas + 1
Mins = 0
End If
DecimalToHora = IIf(Horas < 10, [Ô]0[Ô] & Horas, Horas) & [Ô]:[Ô] & IIf(Mins < 10, [Ô]0[Ô] & Mins, Mins)
End Function
Valeu Cara!! Muito bom! Vou resolver aqui.
Tópico encerrado , respostas não são mais permitidas