Il lavoro di Raymond richiede che formatta le date in modo che vengano mostrate in quello che crede sia un formato piuttosto strano. Se, ad esempio, una cella contiene una data di 10/20/19, deve essere visualizzata come “SU 10/20”, senza virgolette. (SU è una rappresentazione a due caratteri del giorno della settimana, in questo caso la domenica). Raymond si chiede se esiste un modo per farlo come, forse, un formato personalizzato.

Non è possibile farlo esattamente utilizzando un formato personalizzato. Il motivo è che non esiste alcun codice nei formati personalizzati che consenta di creare un giorno della settimana di due caratteri. Il massimo che si potrebbe fare in un formato personalizzato è per un giorno della settimana di tre caratteri:

ddd m/d

Anche questo, però, è un po ‘sbagliato perché non farà il giorno della settimana di tre caratteri in maiuscolo.

Quindi, questo ci porta a utilizzare una formula per ottenere la data formattata.

Se hai la data nella cella A1, puoi usare la seguente formula:

=LEFT(UPPER(TEXT(A1,"ddd")), 2) & " " & TEXT(A1,"m/d")

Questo utilizza la funzione TESTO per restituire, prima, il giorno della settimana di tre caratteri che viene convertito in maiuscolo utilizzando la formula MAIUSCOLO. La funzione SINISTRA viene quindi utilizzata per afferrare i primi due caratteri di quel giorno della settimana che viene quindi aggiunto alla combinazione mese / giorno. Questo restituisce esattamente ciò che Raymond voleva.

Lo svantaggio dell’utilizzo di questo approccio è che la data restituita dalla formula è il testo; non è una data effettiva. Se fossimo stati in grado di utilizzare un formato personalizzato, il valore della data sottostante sarebbe rimasto invariato.

Questo, tuttavia, sarebbe il caso di qualsiasi formattazione di date dispari come questa.

A causa di questo potenziale svantaggio, potresti voler mantenere le date effettive come date, anche se si trova in una colonna nascosta o in un foglio di lavoro nascosto.

È inoltre possibile, se lo si desidera, creare una macro che restituisca una stringa con la data formattata. Ecco una semplice funzione definita dall’utente:

Function FmtDate(d As Date) As String     Dim s As String

s = UCase(Left(WeekdayName(Weekday(d)), 2))

s = s & " " & Format(d, "m/d")

FmtDate = s End Sub

È quindi possibile utilizzare la funzione nel modo seguente nel foglio di lavoro:

=FmtDate(A1)

Ciò presuppone che la data sia in A1 e la funzione restituisca una stringa di data formattata come desidera Raymond.

_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 (13704) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 e Excel in Office 365.