Come posso ottenere il nome del giorno in una cella in Excel?
Data una data, come posso ottenere il giorno della settimana (ad esempio “lunedì”) in una cella in Excel?
Data una data, come posso ottenere il giorno della settimana (ad esempio “lunedì”) in una cella in Excel?
La risposta data sopra funziona solo per caso perché Excel pensa che il 1/1/1900 fosse una domenica e per impostazione predefinita Excel usa la domenica come primo giorno della settimana per la funzione Weekday.
Quello che stai effettivamente calcolando in quel metodo è il giorno della settimana come numero, poi formattandolo come giorno basato su quel numero interpretato come data. Per esempio, se la vostra data è 1/2/2003 e usate la funzione WEEKDAY, il risultato sarà 7 (=Sabato). Quando poi formatti questo come “dddd” stai effettivamente ottenendo il nome del giorno del 7° giorno in Excel dalla sua “epoch”, cioè 7/1/1900, che è un sabato*. Questa formula si romperà se qualcuno la apre che ha l'opzione selezionata per usare il sistema di date basato sul 1904, poiché l'1/1/1904 non era una domenica, ma un venerdì. (sì, lo so che quasi nessuno lo usa, ma non volete costruire una soluzione che si basa su questo, vero?)
Potete rendere la formula più corta, veloce e robusta semplicemente usando
=TEXT(A1,"dddd")
Potreste naturalmente formattare le celle della data stesse con un formato personalizzato come già suggerito, a seconda che abbiate davvero bisogno di questo in una colonna separata o no. Io uso spesso formati di data come
ddd dd mmm yyyy
per dare ad esempio Sat 01 Feb 2003 così la data è esplicita ma mostra anche il nome del giorno della settimana.
Usare una seconda colonna e una funzione TEXT è essenziale se vuoi usare il giorno della settimana esplicitamente da qualche parte in un mail merge (per esempio), allo stesso modo per cose come le valute e così via su Excel > La fusione di Word passa l'effettivo valore memorizzato sottostante piuttosto che la versione formattata sullo schermo, quindi indipendentemente dal formato della cella, Word vede un numero orribile. Un vero campo di testo viene passato ‘così com'è’ e viene visualizzato correttamente in Word.
*in realtà è un lunedì ma Excel è stato scritto per corrispondere alle date errate di Lotus 1-2-3 che trattava il 1900 come un anno bisestile quando non lo è.
Ho scoperto che annidare le dichiarazioni IF
può essere ingombrante, ma funziona. Se, tuttavia, volete risparmiare un po’ di battitura, potete provare questo:
=CHOOSE(WEEKDAY(A2), "Sun","Mon","Tue","Wed","Thur","Fri","Sat")
Oppure, se avete bisogno di nomi completi:
=CHOOSE(WEEKDAY(A2), "Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
In questo esempio, “A2” può essere qualsiasi cella (o formula) che contiene la data in questione. Per esempio:
=CHOOSE(WEEKDAY(TODAY()), "Sun","Mon","Tue","Wed","Thur","Fri","Sat")
stamperebbe l'abbreviazione di tre lettere per qualunque data sia oggi.
Cella A1: 1/8/2009 cella B1: =A1 poi premere ctrl+1 (cella formato) selezionare la scheda numero, fare clic su personalizzato poi digitare “DDDD” sul tipo txtbox
puoi anche localizzare la risposta usando [$nnn] prima del formato (quindi il codice personalizzato è: [$nnn]dddd;@). cambia nnn con il codice della lingua corretta. non ho la lista, ma in qualche modo, il codice inglese è -409 (e il mio locale è -421).
penso che tu possa sperimentare il formato Number, cambiare il campo della lingua, poi cambiarlo di nuovo nel formato personalizzato.
Visualizza la data corrente
=TEXT(WEEKDAY(MONTH(TODAY())),"dddd")
Visualizza la data corrente con il testo richiesto.
=CHOOSE(WEEKDAY(MONTH(TODAY())), "S-U-N-D-A-Y","M-O-N-D-A-Y","T-U-E-S-D-A-Y","W-E-D-N-E-S-D-A-Y","T-H-R-S-D-A-Y","F-R-I-D-A-Y","S-A-T-U-R-D-A-Y")
La funzione WEEKDAY può essere usata nei codici Vba. Per esempio:
Label1.Caption = WeekdayName(Weekday(TextBox1, 0), False, 0)
Il nome del giorno è ottenuto da TextBox1 nell'esempio precedente. Il risultato è “Lunedì ”.
Ho usato questa funzione quando ho creato la userform sull'inserimento della data nella cella attiva con il menu del tasto destro del mouse. Il template può essere rivisto qui