martes, 10 de enero de 2017

Entendiendo algo más de las Fechas en Excel

Explicaré hoy algo muy recurrente en mis formaciones... ¿por qué en ocasiones las fechas se comportan de forma errática?.
Todos sabemos que las fechas, en realidad, responden a un ordinal; teniendo como punto de partida el 01/01/1900, el 2 al 02/01/1900, el 3 al 03/01/1900, etc... así, el día 27/12/2016 correspondería al número 42731.
La mayoría de las veces, por tanto, al trabajar sobre fechas, Excel las trata como tales valores numéricos.

Si esto es así, por qué en ocasiones al construir nuestros criterios, Excel nos devuelve valores (a priori) incongruentes?.

Veamos un ejemplo.

Entendiendo algo más de las Fechas en Excel



Si comprobamos nuestra sencilla fórmula:
=SI(A2>=27/12/2016;1;0)
vemos como estamos comparando los valores del rango A2:A5
0
1
10
100
con la 'fecha' 27/12/2016, que en condiciones normales se trataría como 42731; esto es, comparamos:
0>=42731
1>=42731
10>=42731
100>=42731
siendo (o debería ser) la respuesta en todo casos FALSO, y por tanto, nuestro condicional debería devolvernos un 0...
Sin embargo comprobamos, asustados en un primer momento, como la respuesta es:
0>=42731 ---- 0 (FALSO)
1>=42731 ---- 1 (VERDADERO!!)
10>=42731 --- 1 (VERDADERO!!)
100>=42731 -- 1 (VERDADERO!!)
¿qué ocurre?


La respuesta es que en este supuesto Excel está tratando nuestra fecha como un producto de fracciones!!.
En nuestro ejemplo, con la 'fecha' 27/12/2016, realiza la operación 27/12 (=2,25) y luego la divide por 2016 (=0,00111607142857143).
Tal y como puede verse si editamos nuestra fórmula, seleccionamos la fecha y presionamos la tecla de función F9:

Entendiendo algo más de las Fechas en Excel



Mucho ojo con las fechas!!...

La solución suele ser referir las condiciones a otras celdas, o bien emplear la función FECHA(año;mes;día)

5 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. Excelente recomendación a tener en cuenta. Otra opción a la función FECHA podría ser FECHANUMERO("27/12/2016").
    ¡Saludos!

    ResponderEliminar
  3. Excelente explicación y muy clara, como siempre para los que te seguimos.
    La solución más sencilla es poner la fecha entre comillas =SI(A3>="27/12/2016";1;0).
    De este modo, Excel trata esta información como fecha y no como operaciones matemáticas.
    Saludos.

    ResponderEliminar
    Respuestas
    1. Sorry, lo he comprobado con el valor 50.000 y parece que lo trata como un texto. Por eso se cumple para los valores más bajos.

      Eliminar