** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - Cálculo de segundos
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoCálculo de segundos

 Responder Responder
Autor
Mensaje
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: Alcalá Meco
Estado: Sin conexión
Puntos: 2888
Enlace directo a este mensaje Tema: Cálculo de segundos
    Enviado: 24/Julio/2017 a las 15:17
Duda sobre los segundos en Excel

Tengo en la columna B las horas en formato HH24:MM:SS
Tengo en la columna C el cálculo de los segundos transcurridos con la fórmula SECONDS(B3-B2)

Los resultados vistos a ojo parecen buenos pero he querido hacer el cálculo de otra forma

En la columna E he hecho la conversión estándar de segundos de Excel  con la fórmula B2*86400
Y calculo en la columna F la diferencia mediante la fórmula E3-E2 (en el fondo es exactamente lo mismo que lo que tenía en la columna B)

Los resultados a simple vista son exactamente los mismos y están bien

PERO, si en la columna G añado la fórmula IF(C2=F2,"IGUAL","DISTINTO"), en muchos casos pero no siempre, me sale DISTINTO


B C E F G

Hora SECOND(B3-B2) E4-E3 IF(C2=F2,"IGUAL","DISTINTO")

19:00:06 2 68406.00 2 IGUAL
19:00:08 1 68408.00 1 DISTINTO
19:00:09 7 68409.00 7 DISTINTO
19:00:16 68416.00


Supongo que tiene que haber algún tipo de decimal o algo así, pero soy incapaz de encontrar el fallo.

¿Alguna idea?

Luis


Editado por lbauluz - 24/Julio/2017 a las 15:18
Quod natura non dat, Salmantica non præstat
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 4949
Enlace directo a este mensaje Enviado: 25/Julio/2017 a las 01:34

No comprendo el motivo (debe ser la coma flotante), pero...


[F4]  es mayor que 1  (1,000000000014550)

[F5]  es menor que 7  (6,999999999985450)


... sin embargo  [E3:E6] son números enteros:


68406,000000000000000

68408,000000000000000

68409,000000000000000

68416,000000000000000


El problema parece estar en 19:00:09, pues si en [F4] escribes  =68409-E4  y en  [F5] escribes  =E6-68409, los resultados son exactamente 1 y 7 respectivamente y las 3 comparaciones devuelven  igual .





Editado por AnSanVal - 25/Julio/2017 a las 01:44
Pregunta lo que no sabes, recuérdalo para cuando te pregunten y ofrece tu ayuda (reconforta).

Mi sitio_web con ejemplos Excel.
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: Alcalá Meco
Estado: Sin conexión
Puntos: 2888
Enlace directo a este mensaje Enviado: 25/Julio/2017 a las 02:18
Gracias Antonio:

Me resulta muy curioso que la columna F sea decimal en lugar de entera teniendo en cuenta que en E hay enteros y es solo una resta...

Seguiré investigando, porque no le veo mucho sentido a esas diferencias... 

Pero coincido en que tiene que ser un problema de la coma flotante

Luis

Quod natura non dat, Salmantica non præstat
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 4949
Enlace directo a este mensaje Enviado: 25/Julio/2017 a las 13:37

Con las horas de tu ejemplo en formato decimal y precisión de 15 caracteres (límite de Excel) , se ve claramente que los números son más largos que lo que se ve en pantalla, con lo que al multiplicar se pierde precisión (poca pero se pierde), ahí debe estar la diferencia.



Pero haciendo otras pruebas:


>>> Si las horas las escribo como:  00:00:06, 00:00:08, 00:00:09 y  00:00:16 (elimino las horas) el error desaparece.


>>> El error también desaparece si...

- [K1]  19:00:00

- [B3]  ="00:00:06"+$K$1

- [B4]  ="00:00:08"+$K$1

- [B5]  ="00:00:09"+$K$1

- [B6]  ="00:00:16"+$K$1

...  con lo que solo consigo acumular perplejidad.



Pregunta lo que no sabes, recuérdalo para cuando te pregunten y ofrece tu ayuda (reconforta).

Mi sitio_web con ejemplos Excel.
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 4949
Enlace directo a este mensaje Enviado: 25/Julio/2017 a las 13:42
«...Me resulta muy curioso que la columna F sea decimal en lugar de entera teniendo en cuenta que en E hay enteros y es solo una resta...»

Yo, solamente me lo explico si Excel, a pesar del límite de 15 caracteres, sigue guardando (en algún sitio) esa pequeña diferencia.
Pregunta lo que no sabes, recuérdalo para cuando te pregunten y ofrece tu ayuda (reconforta).

Mi sitio_web con ejemplos Excel.
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: Alcalá Meco
Estado: Sin conexión
Puntos: 2888
Enlace directo a este mensaje Enviado: 26/Julio/2017 a las 04:05
Parece que es un "problema" con la coma flotante, efectivamente

https://support.microsoft.com/es-es/help/214118/how-to-correct-rounding-errors-in-floating-point-arithmetic

Al usar el IEEE 754 se produce este efecto.

O eso parece, al menos
Quod natura non dat, Salmantica non præstat
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable