2010-04-14 15 views
109

In una cella di foglio di Excel ho un valore di Data come:Excel Data alla conversione String

01/01/2010 14:30:00 

voglio convertire tale data a Testo e vogliono anche il testo per apparire esattamente come Data. Quindi un valore Data di 01/01/2010 14:30:00 dovrebbe apparire come 01/01/2010 14:30:00 ma internamente dovrebbe essere Testo.

Come posso farlo in Excel?

+5

Un sacco di programmatori snob sostengono excel non è un ambiente di programmazione, quindi potrebbe chiudere questa domanda. Spero che non lo facciano, ma solo per avvertirti. –

+4

Excel potrebbe non essere un IDE completo, ma se i dati vengono forniti in Excel e necessitano di risultati in Excel, alcune programmazioni VBA rendono tutto più ragionevole. – brichins

risposta

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

(24 ore di tempo)

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

(tempo standard)

+0

Hai salvato la mia giornata, grazie! –

+0

Riferimento completo alla funzione TEXT soprattutto per sapere come impostare i formati: vedere Linee guida per i formati di data e ora in questa pagina http://office.microsoft.com/en-us/excel-help/text-function-HP010062580.aspx – codea

+0

Quando provo a fare questa conversione, c'è un "#AD?" testo e dice che c'è qualcosa che non va. – AloneInTheDark

4

In alcuni contesti che utilizzano un carattere "in anticipo funzionerà, ma se si salva in CSV e si carica di nuovo, ciò è impossibile.

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

Ecco un approccio 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 

Se siete alla ricerca di una soluzione senza programmazione, la questione dovrebbe essere spostato SuperUser.

5

Ecco un'altra opzione. Usa la procedura guidata incorporata "Testo su colonne" di Excel. Si trova nella scheda Dati in Excel 2007.

Se è selezionata una colonna, i valori predefiniti per tipo di file e delimitatori dovrebbero funzionare, quindi viene richiesto di modificare il formato dei dati della colonna. La scelta del testo lo costringe al formato testo, per assicurarsi che non sia archiviato come una data.

2

Se non si utilizza la programmazione poi fare il (1) selezionare la colonna (2) fare clic destro e selezionare Formato celle (3) Selezionare (4) appena sotto "Tipo:" segue "Custom" tipo gg/mm/aaaa hh: mm: ss

0

In Excel 2010, marg's answer ha funzionato solo per alcuni dei dati che avevo nel mio foglio di lavoro (era stato importato). La seguente soluzione ha funzionato su tutti i dati.

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 risposta selezionata non ha funzionato per me poiché Excel non ha ancora convertito il testo fino ad oggi. Ecco la mia soluzione.

Dire che nella prima colonna, A, si dispone di dati del tipo 2016/03/25 21:20:00 ma è memorizzato come testo. Quindi nella colonna B scrivi =DATEVALUE(A1) e nella colonna C scrivi =TIMEVALUE(A1).

Quindi nella colonna D fare =B1+C1 per aggiungere i formati numerici di data e ora.

Infine, copiare i valori da D nella colonna E facendo clic con il pulsante destro del mouse nella colonna E e selezionare Paste Special -> Paste as Values.

Evidenzia i valori numerici nella colonna E e modifica il tipo di dati fino alla data - preferisco utilizzare una data personalizzata del modulo YYYY-MM-DD HH:MM:SS.

0

Non ho idea circa l'anno di pubblicazione della domanda; potrebbe essere vecchio ora. Quindi, mi aspetto che la mia risposta sia più di un riferimento per future domande simili dopo il mio post.

Non so se qualcuno là fuori ha già dato una risposta simile a quella che sto per dare, il che potrebbe risultare -Penso- essere il più semplice, più diretto e più efficace: se qualcuno ha già dato mi scuso, ma non l'ho visto. Ecco, la mia risposta utilizzando CStr al posto del testo:

cella A1 Asuming contiene una data, e codice VBA utilizzando:

Dim strDate As String 

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

È possibile, da allora in poi, manipolarlo come qualsiasi normale stringa utilizzando stringa funzioni (MID, sinistra, destra, LEN, concatenare (&), etc.)

0

potuto ottenere il testo() formula per lavorare

più semplice solutio n è stato quello di copia incolla in Blocco note e viceversa in Excel con la colonna impostata su testo prima di incollare di nuovo

Oppure si può fare lo stesso con una formula come questo

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