Debbie ha un foglio di lavoro che contiene molte date. Per concatenare i dati con le date, deve modificare ogni cella che contiene una data e aggiungere un apostrofo prima della data. Si chiede se esiste un modo rapido per farlo. Ha provato a evidenziare la riga e formattarla come testo, ma non ha funzionato.

Se Debbie vuole automatizzare il lavoro manuale che sta facendo, potrebbe essere fatto con una macro. Quanto segue converte automaticamente le celle selezionate in testo e inserisce nuovamente la data nella cella.

Sub DateToText()

Dim cell As Range     Dim sTemp As String

For Each cell In Selection         With cell             sTemp = .Text             .NumberFormat = "@"

.Value2 = sTemp         End With     Next cell End Sub

Notare l’uso della proprietà .Value2 invece della proprietà .Value quando si inserisce nuovamente il testo nella cella. Questo viene fatto per garantire che Excel non converta inavvertitamente il testo in un valore di data. Non dovrebbe farlo comunque, ma la proprietà .Value2 non supporta il tipo di dati Date, quindi qualsiasi potenziale conversione è, per natura, preclusa.

Dovresti anche notare che la macro convertirà tutto ciò che hai selezionato, anche se non contiene una data. Dovrai assicurarti di selezionare solo celle contenenti date prima di eseguirlo.

Ovviamente, il modo più semplice per fare ciò che Debbie sta cercando di fare è usare la funzione del foglio di lavoro TESTO. Supponiamo, ad esempio, che la cella A1 contenga una data. In una cella diversa si voleva mettere le parole “La scadenza è” prima della data. Potresti farlo con una formula come questa:

="The deadline is " & TEXT(A1, "mmmm d, yyyy")

Notare che la funzione TESTO richiede due parametri: la cella da convertire (A1, in questo caso) e un modello da utilizzare nella conversione (“mmmm d, yyyy”). Se la cella A1 contiene una data come il 25/6/16, la formula restituisce quanto segue:

The deadline is June 25, 2016

Il modello specificato, tra virgolette, segue molto da vicino i modelli che useresti per definire un formato personalizzato per una cella. Ad esempio, “mmm” restituisce un nome di mese di tre caratteri mentre “mmmm”

restituisce un nome del mese completamente scritto. I codici che useresti nel pattern sono stati trattati in altri suggerimenti di Excel, ma puoi anche trovare un pratico riepilogo dei codici che corrispondono convenientemente a ciò che Excel utilizza su Wikipedia:

https://en.wikipedia.org/wiki/Date_format_by_country

Un punto interessante riguardo a questo approccio è che non importa come è formattata la data nella cella A1. Quando si utilizza TESTO, si basa sul numero di serie sottostante utilizzato da Excel per memorizzare la data, quindi la formatta in base al modello specificato, indipendentemente da qualsiasi formattazione nella cella contenente la data.

Ovviamente, se vuoi fare una conversione diretta in testo, non devi concatenare nulla con la data. In questo caso, useresti semplicemente la funzione TEXT da sola:

=TEXT(A1, "mmmm d, yyyy")

La funzione TEXT, per sua natura, restituisce un valore strettamente testuale.

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (13450) si applica a Microsoft Excel 2007, 2010, 2013 e 2016.