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?
Risposte:
Esempio semplice:
Cella A1: 1/8/2009
Cella B1: = TEXT (WEEKDAY (A1), "dddd")
Questo, per la data indicata, stamperà il giorno corrispondente.
È questo quello che hai desiderato?
La risposta di cui sopra funziona solo con fluke perché Excel pensa che l'1 / 1/1900 sia stata una domenica * e per impostazione predefinita Excel sta usando la domenica come primo giorno della settimana per la funzione Weekday.
Quello che stai effettivamente calcolando in quel metodo è il giorno della settimana come un numero, quindi formattandolo come un giorno in base a quel numero interpretato come una data. Ad esempio, se la data è 1/2/2003 e si utilizza la funzione WEEKDAY, il risultato è 7 (= sabato). Quando poi lo formatti come "dddd" stai effettivamente ottenendo il nome del giorno del settimo giorno in Excel dalla sua "epoca", cioè 7/1/1900, che sembra essere un sabato *. Questa formula si interromperà se qualcuno la apre con l'opzione selezionata per utilizzare il sistema di date basato sul 1904, poiché l'1 / 1/904 non era una domenica, ma un venerdì. (sì, lo so quasi nessuno lo usa, ma non vuoi costruire una soluzione su cui fai affidamento, vero?)
Puoi rendere la formula più breve, più veloce e più robusta semplicemente usando
=TEXT(A1,"dddd")
Ovviamente potresti semplicemente formattare le celle della data con un formato personalizzato come già suggerito, a seconda che tu ne abbia davvero bisogno in una colonna separata o meno. Uso spesso formati di data come
ddd dd mmm yyyy
per es. sabato 01 febbraio 2003, quindi la data è esplicita ma mostra anche il nome del giorno della settimana.
L'uso di una seconda colonna e una funzione TESTO è essenziale se si desidera utilizzare il giorno della settimana in modo esplicito da qualche parte in una stampa unione (ad esempio), allo stesso modo per cose come valute e così su Excel> La fusione di Word passa il valore memorizzato sottostante effettivo anziché il versione formattata con 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 effetti è un lunedì ma Excel è stato scritto in modo da corrispondere alle date errate in Lotus 1-2-3 che ha trattato il 1900 come un anno bisestile quando non lo è.
Un'altra possibilità, a seconda di ciò che si desidera fare con la data successiva, è impostare il formato della cella su Personalizzato: dddd
=A1
nell'esempio della prima risposta.
Ho scoperto che le IF
dichiarazioni di nidificazione possono essere ingombranti, ma funziona. Se, tuttavia, desideri salvare un po 'di battitura, puoi provare questo:
=CHOOSE(WEEKDAY(A2), "Sun","Mon","Tue","Wed","Thur","Fri","Sat")
Oppure, se hai bisogno di nomi completi:
=CHOOSE(WEEKDAY(A2), "Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
In questo esempio, "A2" può essere qualunque cella (o formula) contenga la data in questione. Per esempio:
=CHOOSE(WEEKDAY(TODAY()), "Sun","Mon","Tue","Wed","Thur","Fri","Sat")
stamperebbe l'abbreviazione di tre lettere per qualunque cosa sia oggi.
puoi anche localizzare la risposta usando [$ nnn] prima del formato (quindi il codice personalizzato è: [$ nnn] dddd; @). cambia nnn con il codice lingua corretto. non ho la lista, ma in qualche modo, il codice inglese è -409 (e il mio locale è -421).
penso che puoi sperimentare il formato numerico, cambiare il campo della lingua, quindi cambiarlo nel formato personalizzato.
Cella A1: 1/8/2009 Cella B1: = A1 quindi premere ctrl + 1 (formatta cella) selezionare la scheda numerica, fare clic su personalizzato quindi digitare "DDDD" nella casella txt
Visualizza la data corrente
=TEXT(WEEKDAY(MONTH(TODAY())),"dddd")
Visualizza la data corrente con il testo richiesto 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 utilizzata nei codici Vba. Per esempio :
Label1.Caption = WeekdayName(Weekday(TextBox1, 0), False, 0)
Il nome del giorno è ottenuto da TextBox1 nell'esempio sopra. Il risultato è "lunedì" .
Ho usato questa funzione quando ho creato un modulo utente per l'immissione della data nella cella attiva con il menu di scelta rapida.