He estado buscando durante una hora cómo hacer esto en Excel.
Tengo un archivo de Excel que se creó a partir de un sistema antiguo y estoy sacando información de una base de datos de SQL Server, voy a introducir la información de nuevo en la base de datos de SQL Server y me gustaría que las fechas coincidan.
He intentado crear un formato personalizado, pero no estoy seguro de haberlo hecho correctamente. He encontrado varios sitios donde quieren ir al revés mm/dd/yyyy
a yyymmdd
pero no han sido de ayuda.
No estoy familiarizado con el uso de VBA en cualquier producto de Microsoft, de lo contrario estoy seguro de que esto sería una tarea sencilla.
Tengo dos columnas separadas que necesitan ser cambiadas.
¿Cómo puedo formatear la columna completa de (float)
yyymmdd a un (Date)
mm/dd/yy?
Puede convertir el valor en una fecha utilizando una fórmula como ésta, junto a la celda:
=DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2))
Donde A1 es el campo que necesita convertir.
También puede utilizar este código en VBA:
Sub ConvertYYYYMMDDToDate()
Dim c As Range
For Each c In Selection.Cells
c.Value = DateSerial(Left(c.Value, 4), Mid(c.Value, 5, 2), Right(c.Value, 2))
'Following line added only to enforce the format.
c.NumberFormat = "mm/dd/yyyy"
Next
End Sub
Sólo tienes que resaltar las celdas que quieras arreglar y ejecutar el código.
Tenga en cuenta que, como mencionó RJohnson en los comentarios, este código dará un error si una de las celdas seleccionadas está vacía. Puedes añadir una condición en c.value para omitir la actualización si está en blanco.
¿Tiene filas de datos (horizontales) como ha dicho o columnas (verticales)?
Si es esto último, puede utilizar la función "Texto a columnas" para convertir una columna entera "in situ":
Seleccione la columna > Datos > Texto a columnas > Siguiente > Elija "Fecha" en "formato de datos de la columna" y "YMD" en el menú desplegable > Finalizar
.... también puede convertir con una fórmula utilizando
=TEXT(A1,"0000-00-00")+0
y formatear en el formato de fecha requerido
Esta es una versión básica:
Digamos que tienes una fecha en la celda A1 en el formato que has descrito. Por ejemplo: 19760210
.
Entonces esta fórmula te dará la fecha que quieres:
=DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2)).
En mi sistema (Excel 2010) funciona con cadenas o flotantes.