2010-04-14 11 views
109

En una celda de la hoja de Excel que tiene un valor de fecha como:Excel Fecha de Conversión de cadenas

01/01/2010 14:30:00 

Quiero convertir a esa Fecha de texto y también desea que el texto se vea exactamente igual fecha. Por lo tanto, un valor de Fecha de 01/01/2010 14:30:00 debe parecerse a 01/01/2010 14:30:00 pero internamente debería ser Texto.

¿Cómo puedo hacer eso en Excel?

+5

Un montón de programadores snobbish argumentan Excel no es un entorno de programación, así que podría cerrar esta pregunta. Espero que no, pero solo para advertirte. –

+4

Puede que Excel no sea un IDE completo, pero si se le proporcionan datos en Excel y se necesitan resultados en Excel, algunos programas de VBA tienen sentido. – brichins

Respuesta

217
=TEXT(A1,"DD/MM/YYYY hh:mm:ss") 

(24 horas de tiempo)

=TEXT(A1,"DD/MM/YYYY hh:mm:ss AM/PM") 

(estándar)

+0

¡Me salvaste el día, gracias! –

+0

Referencia completa a la función TEXTO, especialmente para saber cómo establecer formatos: vea las Pautas para los formatos de fecha y hora en esta página http://office.microsoft.com/en-us/excel-help/text-function-HP010062580.aspx – codea

+0

Cuando intento hacer esta conversión, aparece un "#AD?" texto y dice que algo está mal. – AloneInTheDark

4

En algunos contextos, el uso de un carácter de antemano funcionará, pero si lo guarda en CSV y vuelve a cargarlo, es imposible.

'01/01/2010 14:30:00 
8

Aquí es un enfoque VBA:

Sub change() 
    toText Sheets(1).Range("A1:F20") 
End Sub 

Sub toText(target As Range) 
Dim cell As Range 
    For Each cell In target 
     cell.Value = cell.Text 
     cell.NumberFormat = "@" 
    Next cell 
End Sub 

Si usted está buscando una solución sin necesidad de programación, la pregunta debe ser trasladado a superusuario.

5

Aquí hay otra opción. Utilice el asistente de "Texto a columnas" integrado de Excel. Se encuentra en la pestaña Datos en Excel 2007.

Si tiene seleccionada una columna, los valores predeterminados para el tipo de archivo y los delimitadores deberían funcionar, entonces le solicita que cambie el formato de datos de la columna. Elegir texto lo fuerza al formato de texto, para asegurarse de que no esté almacenado como una fecha.

2

Si no está utilizando la programación y luego hacer la (1) seleccionar la columna (2) Haga clic derecho y seleccionar el formato de celdas (3) Seleccionar (4) justo debajo de "Tipo:" "Custom" siguiente tipo de dd/mm/aaaa hh: mm: ss

0

En Excel 2010, marg's answer solo funcionó para algunos de los datos que tenía en mi hoja de cálculo (se importó). La siguiente solución funcionó en todos los datos.

Sub change() 
    toText Selection 
End Sub 

Sub toText(target As range) 
Dim cell As range 
Dim txt As String 
    For Each cell In target 
     txt = cell.text 
     cell.NumberFormat = "@" 
     cell.Value2 = txt 
    Next cell 
End Sub 
0

La respuesta seleccionada no funcionó porque Excel todavía no estaba convirtiendo el texto a la fecha. Aquí está mi solución.

Diga que en la primera columna, A, tiene datos del tipo 2016/03/25 21:20:00, pero se almacena como texto. Luego, en la columna B, escriba =DATEVALUE(A1) y en la columna C escriba =TIMEVALUE(A1).

Luego, en la columna D, haga =B1+C1 para agregar los formatos numéricos de la fecha y la hora.

Finalmente, copie los valores de D en la columna E haciendo clic derecho en la columna E y seleccione Paste Special -> Paste as Values.

Resalte los valores numéricos en la columna E y cambie el tipo de datos a la fecha. Prefiero usar una fecha personalizada del formulario YYYY-MM-DD HH:MM:SS.

0

No tengo idea del año de publicación de la pregunta; podría ser viejo ahora. Por lo tanto, espero que mi respuesta sea más una referencia para futuras preguntas similares después de mi publicación.

No sé si alguien por ahí ya ha dado una respuesta similar a la que estoy a punto de dar, lo que podría resultar -creo- la más simple, la más directa y la más efectiva: si alguien ya ha dado Lo disculpo, pero no lo he visto. Aquí, mi respuesta por medio CStr en lugar de texto:

celular Asumiendo A1 contiene una fecha, y el uso de código VBA:

Dim strDate As String 

'Convert to string the value contained in A1 (a date) 
strDate = CStr([A1].Value) 

se puede, a partir de entonces, manipularla como cualquier cadena usando cadena ordinaria funciones (MID, izquierda, derecha, LEN, concatenar (&), etc.)

0

podía conseguir la fórmula de texto() para trabajar

solutio más fácil n era copiar pegar en el Bloc de notas y de nuevo en Excel con el conjunto de columnas con texto antes de pegar la espalda

O usted puede hacer lo mismo con una fórmula como esta

=DAY(A2)&"/"&MONTH(A2)&"/"&YEAR(A2)& " "&HOUR(B2)&":"&MINUTE(B2)&":"&SECOND(B2)

Cuestiones relacionadas