Si tenemos en Excel celdas con valores en la forma:

  • viernes 1 de enero de 2010
  • sábado 2 de enero de 2010
  • domingo 3 de enero de 2010

y deseamos transformarlo en fecha, podemos hacer lo siguiente:

=TEXTO(IZQUIERDA(EXTRAE(A2; ENCONTRAR(" "; A2; 1) + 1; 30); 2) & EXTRAE(EXTRAE(A2; ENCONTRAR(" "; A2; 1) + 1; 30); 6; 4) & DERECHA(EXTRAE(A2; ENCONTRAR(" "; A2; 1) + 1; 30); 4); "dd/mm/aaaa") * 1

¡Toma función! Vamos a contar paso por paso cómo funciona:

  1. Necesitamos 1 de enero de 2010 de viernes 1 de enero de 2010; supongamos que está en la celda A2. Eso lo conseguimos encontrando el primer espacio en blanco con la función ENCONTRAR(" "; A2; 1); en este caso el 6, luego debemos empezar por el siguiente, por eso debemos sumar 1. Con EXTRAE(A2; ENCONTRAR(" "; A2; 1) + 1; 30) nos quedamos con 1 de enero de 2010.
  2. Ese texto tiene que pasar a otro texto con el formato dd/mm/aaaa. El día lo cogemos con IZQUIERDA(EXTRAE(A2; ENCONTRAR(" "; A2; 1) + 1; 30); 2); el mes es más complejo porque queda entre medias: EXTRAE(EXTRAE(A2; ENCONTRAR(" "; A2; 1) + 1; 30); 6; 4), y el año se hace de forma análoga al día: DERECHA(EXTRAE(A2; ENCONTRAR(" "; A2; 1) + 1; 30); 4). Con esto hemos creado el texto 1 ener2010.
  3. Por último, empleamos la función TEXTO para transformar esa cadena de caracteres a otra cadena de caracteres con el formato deseado dd/mm/aaaa, y todo ello lo multiplicamos por 1 para crear el número 40179, al que podemos dar el formato de fecha que queramos y con el que podemos realizar operaciones.

Espero que esta fórmula os sirva y os ayude en vuestro trabajo con Excel cuando tengáis que cambiar textos a fechas (o al contrario). También podemos emplear la función FECHANUMERO, pero esa me la guardo para otro día. Saludos.