
21/03/2004 no se registra como fecha, mientras que 7/3/2004 sí se registra como fecha. ¿Alguien sabe cómo puedo eliminar todos los 0 en valores de fechas con valores de mes que comienzan en 0?
Entonces, las columnas que están pegadas al margen izquierdo de alguna manera no se convierten automáticamente. las columnas pegadas a la derecha están bien.
Respuesta1
Normalmente, esto podría resolverse usando la función DATEVALUE para convertir una fecha que es texto en un valor de fecha de Excel (es decir, un número que Excel reconocerá como fecha). El uso sería DATEVALUE(cadena_fecha o dirección_celda).
Sin embargo, esto no funcionará aquí porque 1) el día precede al mes en las cadenas de ejemplo y DATEVALUE espera el mes seguido del día, y 2) para algunas de las cadenas de fecha también se incluye una hora.
Aquí hay una alternativa de fórmula matricial que funciona con los ejemplos que proporcionó. Deberá ingresarse usando la combinación de teclas Control- Shift- Enter.
=DATE(
RIGHT(IFERROR(LEFT(F8,IFERROR(SEARCH(" ",F8),0)-1),F8),MATCH("/",MID(IFERROR(LEFT(F8,IFERROR(SEARCH(" ",F8),0)-1),F8),LEN(IFERROR(LEFT(F8,IFERROR(SEARCH(" ",F8),0)-1),F8))-ROW(1:25),1),0)),
LEFT(IFERROR(LEFT(F8,IFERROR(SEARCH(" ",F8),0)-1),F8),SEARCH("/",IFERROR(LEFT(F8,IFERROR(SEARCH(" ",F8),0)-1),F8))-1),
LEN(IFERROR(LEFT(F8,IFERROR(SEARCH(" ",F8),0)-1),F8))-MATCH("/",MID(IFERROR(LEFT(F8,IFERROR(SEARCH(" ",F8),0)-1),F8),LEN(IFERROR(LEFT(F8,IFERROR(SEARCH(" ",F8),0)-1),F8))-ROW(1:25),1),0)-LEN(LEFT(IFERROR(LEFT(F8,IFERROR(SEARCH(" ",F8),0)-1),F8),SEARCH("/",IFERROR(LEFT(F8,IFERROR(SEARCH(" ",F8),0)-1),F8))+1)))
)
Esta fórmula matricial muy complicada (espero que alguien pueda ofrecer una más simple) utiliza la función FECHA para construir un valor de fecha de Excel. (Tenía la cadena de fecha original en la celda F8 cuando construí la fecha).
La cadena de fecha que se debe convertir no se puede utilizar en su forma original porque a veces incluye una hora. Lo que se utiliza en su lugar es RIGHT(IFERROR(LEFT(F8,IFERROR(SEARCH(" ",F8),0)-1),F8)
. Esta fórmula busca un espacio en la cadena de fecha. Si encuentra un espacio, utiliza la función IZQUIERDA para colocar todos los caracteres a la izquierda del espacio; si no encuentra un espacio, simplemente devuelve la cadena original.
La parte más externa de la fórmula es la función FECHA: cuando se le dan el año, el mes y el día, se obtiene una fecha de Excel. He desglosado el cálculo de estas tres piezas en el código anterior.
El cálculo del año es el siguiente:
- Invierta la cadena de fecha (con la hora recortada como se explicó anteriormente).
- Encuentre la posición de la primera "/" en esta cadena invertida usando la función BÚSQUEDA (Esta barra diagonal es en realidad la primera barra en la cadena de fecha no invertida).
- Tome esa cantidad de caracteres de la derecha de la cadena de fecha con la función DERECHA.
El cálculo del Mes tiene los pasos:
- Encuentre la posición de la primera barra en elsin revertircadena de fecha.
- Determine la cantidad de caracteres en el mes (que podría ser 1 o 2) calculando la diferencia entre esta posición y la posición del segundo "/" según lo determinado en el cálculo del Año.
- Utilice la función MID para devolver los caracteres entre la primera barra y la segunda.
El cálculo del día es el más sencillo.
- Calcule la posición del primer "/" utilizando el mismo método que en el cálculo del mes.
- Tome esa cantidad de caracteres (menos 1) del lado izquierdo de la cadena usando la función IZQUIERDA.
Hay formas menos elaboradas de obtener el resultado, la más simple de las cuales sin duda sería el uso del comando Texto a columnas en la pestaña Datos de la cinta, como sugiere @Barry.
Otra forma de proceder es utilizar una función de coincidencia de patrones REGEX. Esta función no está integrada en Excel, pero se puede construir y acceder a ella con código VBA. Aunque el código es un poco complicado, hay varias versiones disponibles en la red (comoeste ejemplo). Sin embargo, utilizar la función sería muy sencillo. Por ejemplo, la expresión de coincidencia para obtener el día podría ser algo así como REGEXP("./",F8)
, que luego podría usarse en la función FECHA para obtener el valor de fecha de Excel.
Para mayor comodidad, aquí está la fórmula en su forma completa.
=DATE(RIGHT(IFERROR(LEFT(F8,IFERROR(SEARCH(" ",F8),0)-1),F8),MATCH("/",MID(IFERROR(LEFT(F8,IFERROR(SEARCH(" ",F8),0)-1),F8),LEN(IFERROR(LEFT(F8,IFERROR(SEARCH(" ",F8),0)-1),F8))-ROW(1:25),1),0)),LEFT(IFERROR(LEFT(F8,IFERROR(SEARCH(" ",F8),0)-1),F8),SEARCH("/",IFERROR(LEFT(F8,IFERROR(SEARCH(" ",F8),0)-1),F8))-1),MID(IFERROR(LEFT(F8,IFERROR(SEARCH(" ",F8),0)-1),F8),LEN(LEFT(IFERROR(LEFT(F8,IFERROR(SEARCH(" ",F8),0)-1),F8),SEARCH("/",IFERROR(LEFT(F8,IFERROR(SEARCH(" ",F8),0)-1),F8))+1)),LEN(IFERROR(LEFT(F8,IFERROR(SEARCH(" ",F8),0)-1),F8))-MATCH("/",MID(IFERROR(LEFT(F8,IFERROR(SEARCH(" ",F8),0)-1),F8),LEN(IFERROR(LEFT(F8,IFERROR(SEARCH(" ",F8),0)-1),F8))-ROW(1:25),1),0)-LEN(LEFT(IFERROR(LEFT(F8,IFERROR(SEARCH(" ",F8),0)-1),F8),SEARCH("/",IFERROR(LEFT(F8,IFERROR(SEARCH(" ",F8),0)-1),F8))+1))))
Respuesta2
El valor que se pega al lado izquierdo generalmente significa que es un valor textual, mientras que el valor numérico/de fecha está alineado a la derecha.
Quizás también puedas comprobar estas cosas antes de realizar una posible conversión de fecha y hora en Excel:
Verifique la configuración de idioma/región de su sistema, especialmente el formato de fecha y hora. Excel utiliza la configuración de fecha y hora predeterminada del sistema y, como resultado, la conversión de fecha y hora será diferente para las diferentes regiones.
Asegúrese de que no haya espacios en blanco adicionales ni caracteres de salto de línea ocultos adjuntos al valor de su celda; un valor de fecha y hora válido con un espacio en blanco se tratará como el valor de texto, no como la fecha y hora, por lo que Excel no lo convertirá automáticamente. .
Utilice la opción de formato de celda personalizado de Excel, donde puede especificar sus propias reglas de conversión, como DD/MM/AAAA.
Respuesta3
Presumiblemente el formato fuente es dd/mm/aaaa. Intente utilizar la función "Texto a columnas" para realizar la conversión.
Seleccionar columna de fechas
Datos > Texto a columnas > Siguiente > Siguiente > en "formato de datos de columna", seleccione "fecha" y elija el formato de origen en el menú desplegable - "DMY" > Aceptar
Respuesta4
El formato de datos predeterminado en Excel es: dd/m/aaaa. El margen izquierdo no se convierte automáticamente porque usted elige: m/dd/yyyy. Simplemente elija el formato correcto para resolver su problema.