Formula WEEKDAY in Excel per ottenere il giorno della settimana, i fine settimana e i giorni lavorativi

  • Condividi Questo
Michael Brown

Se state cercando una funzione di Excel per ottenere il giorno della settimana da una data, siete capitati sulla pagina giusta. Questa esercitazione vi insegnerà come usare la formula WEEKDAY in Excel per convertire una data in un nome di giorno della settimana, filtrare, evidenziare e contare i fine settimana o i giorni lavorativi e altro ancora.

Esistono diverse funzioni per lavorare con le date in Excel. La funzione giorno della settimana (WEEKDAY) è particolarmente utile per la pianificazione e la programmazione, ad esempio per determinare l'orizzonte temporale di un progetto e per eliminare automaticamente i fine settimana dal totale. Esaminiamo quindi gli esempi uno alla volta e vediamo come possono aiutarvi a svolgere vari compiti legati alle date in Excel.

    WEEKDAY - Funzione di Excel per il giorno della settimana

    La funzione WEEKDAY di Excel viene utilizzata per restituire il giorno della settimana a partire da una determinata data.

    Il risultato è un numero intero, che per impostazione predefinita va da 1 (domenica) a 7 (sabato). Se la logica aziendale richiede un'enumerazione diversa, è possibile configurare la formula per iniziare il conteggio con qualsiasi altro giorno della settimana.

    La funzione GIORNO DELLA SETTIMANA è disponibile in tutte le versioni di Excel dalla 365 alla 2000.

    La sintassi della funzione WEEKDAY è la seguente:

    WEEKDAY(numero_serie, [tipo_ritorno])

    Dove:

    Numero_di_serie (obbligatorio) - la data che si desidera convertire in numero di giorno della settimana. Può essere fornita come numero progressivo che rappresenta la data, come stringa di testo nel formato compreso da Excel, come riferimento alla cella contenente la data o utilizzando la funzione DATA.

    Tipo_di_ritorno (facoltativo) - determina il giorno della settimana da utilizzare come primo giorno. Se omesso, viene utilizzato il giorno della settimana Sole-Sab.

    Ecco un elenco di tutti i supporti tipo_ritorno valori:

    Tipo_di_ritorno Numero restituito
    1 o omesso Dall'1 (domenica) alle 7 (sabato)
    2 Dall'1 (lunedì) alle 7 (domenica)
    3 Da 0 (lunedì) a 6 (domenica)
    11 Dall'1 (lunedì) alle 7 (domenica)
    12 Dall'1 (martedì) alle 7 (lunedì)
    13 Dall'1 (mercoledì) alle 7 (martedì)
    14 Dall'1 (giovedì) alle 7 (mercoledì)
    15 Dall'1 (venerdì) alle 7 (giovedì)
    16 Dall'1 (sabato) alle 7 (venerdì)
    17 Dall'1 (domenica) alle 7 (sabato)

    Nota. tipo_ritorno I valori da 11 a 17 sono stati introdotti in Excel 2010 e pertanto non possono essere utilizzati nelle versioni precedenti.

    Formula di base WEEKDAY in Excel

    Per cominciare, vediamo come utilizzare la formula WEEKDAY nella sua forma più semplice per ottenere il numero del giorno dalla data.

    Ad esempio, per ottenere il giorno della settimana dalla data in C4 con la settimana predefinita da domenica a sabato, la formula è la seguente:

    =GIORNO SETTIMANALE(C4)

    Se si dispone di un numero di serie che rappresenta la data (ad esempio portato dalla funzione DATEVALUE), è possibile inserire tale numero direttamente nella formula:

    =GIORNO DELLA SETTIMANA(45658)

    Inoltre, è possibile digitare la data come stringa di testo racchiusa tra virgolette direttamente nella formula, assicurandosi di utilizzare il formato di data che Excel si aspetta e può interpretare:

    =GIORNO DELLA SETTIMANA("1/1/2025")

    Oppure, fornire la data di origine in modo affidabile al 100% utilizzando la funzione DATE:

    =GIORNO DELLA SETTIMANA(DATA(2025, 1,1))

    Per utilizzare una mappatura dei giorni diversa da quella predefinita Sole-Sab, inserire un numero appropriato nel secondo argomento. Ad esempio, per iniziare a contare i giorni da lunedì, la formula è:

    =GIORNO DELLA SETTIMANA(C4, 2)

    Nell'immagine seguente, tutte le formule restituiscono il giorno della settimana corrispondente al 1° gennaio 2025, memorizzato internamente in Excel come numero 45658. A seconda del valore impostato nel secondo argomento, le formule producono risultati diversi.

    A prima vista, può sembrare che i numeri restituiti dalla funzione WEEKDAY abbiano poco senso pratico, ma guardiamola da un'altra prospettiva e discutiamo alcune formule che risolvono compiti reali.

    Come convertire la data di Excel in un giorno della settimana

    La funzione WEEKDAY di Excel restituisce il giorno della settimana come numero. Per trasformare il numero del giorno della settimana nel nome del giorno, utilizzare la funzione TEXT.

    Per ottenere nomi per l'intera giornata utilizzare il codice di formato "dddd":

    TESTO(GIORNO DELLA SETTIMANA( data ), "dddd")

    Per tornare nomi abbreviati dei giorni , il codice di formato è "ddd":

    TESTO(GIORNO DELLA SETTIMANA( data ), "ddd")

    Ad esempio, per convertire la data in A3 nel nome del giorno della settimana, la formula è:

    =TEXT(WEEKDAY(A3), "dddd")

    Oppure

    =TEXT(WEEKDAY(A3), "ddd")

    Un'altra possibile soluzione è l'utilizzo di WEEKDAY insieme alla funzione CHOOSE.

    Ad esempio, per ottenere il nome abbreviato di un giorno della settimana dalla data in A3, la formula è la seguente:

    =CHOOSE(WEEKDAY(A3), "Sun", "Mon", "Tus", "Wed", "Thu", "Fri", "Sat")

    In questo caso, WEEKDAY restituisce un numero progressivo da 1 (dom) a 7 (sab) e CHOOSE seleziona il valore corrispondente dall'elenco. Poiché la data in A3 (mercoledì) corrisponde a 4, CHOOSE produce "Wed", che è il quarto valore dell'elenco.

    Sebbene la formula SCEGLI sia un po' più complicata da configurare, offre una maggiore flessibilità, consentendo di produrre i nomi dei giorni nel formato desiderato. Nell'esempio precedente, vengono mostrati i nomi dei giorni abbreviati. È invece possibile fornire i nomi completi, le abbreviazioni personalizzate o persino i nomi dei giorni in una lingua diversa.

    Suggerimento: un altro modo semplice per convertire una data nel nome del giorno della settimana è applicare un formato di data personalizzato. Ad esempio, il formato del codice "dddd, mmmm d, yyyy" farà sì che la data venga visualizzata come " Venerdì 3 gennaio 2025 " mentre "dddd" mostrerà solo " Venerdì ".

    Formula WEEKDAY di Excel per trovare e filtrare i giorni lavorativi e i fine settimana

    Quando si ha a che fare con un lungo elenco di date, si potrebbe voler sapere quali sono i giorni lavorativi e quali i fine settimana.

    A identificare i fine settimana e i giorni feriali in Excel, creare un'istruzione IF con la funzione WEEKDAY annidata. Ad esempio:

    =IF(WEEKDAY(A3, 2)<6, "Giorno lavorativo", "Fine settimana")

    Questa formula va nella cella A3 e viene copiata in tutte le celle necessarie.

    Nella formula WEEKDAY, si imposta tipo_ritorno a 2, che corrisponde alla settimana lun-dom, dove il lunedì è il giorno 1. Quindi, se il numero del giorno della settimana è inferiore a 6 (da lunedì a venerdì), la formula restituisce "Giorno lavorativo", altrimenti "Fine settimana".

    A filtrare i fine settimana o i giorni lavorativi , applicare il filtro di Excel al set di dati ( Dati scheda> Filtro ) e selezionare "Fine settimana" o "Giorno lavorativo".

    Nella schermata qui sotto, i giorni della settimana sono filtrati, quindi sono visibili solo i fine settimana:

    Se qualche ufficio regionale della vostra organizzazione lavora con un orario diverso, in cui i giorni di riposo sono diversi dal sabato e dalla domenica, potete facilmente adattare la formula del GIORNO SETTIMANALE alle vostre esigenze, specificando un'altra formula. tipo_ritorno .

    Per esempio, per trattare Sabato e Lunedì come fine settimana, impostare tipo_ritorno a 12, quindi si otterrà il tipo di settimana "da martedì (1) a lunedì (7)":

    =IF(WEEKDAY(A2, 12)<6, "giorno lavorativo", "fine settimana")

    Come evidenziare i fine settimana e i giorni lavorativi in Excel

    Per individuare a colpo d'occhio i fine settimana e i giorni lavorativi nel foglio di lavoro, è possibile ombreggiarli automaticamente con colori diversi. A tale scopo, utilizzare la formula giorno della settimana/fine settimana discussa nell'esempio precedente con la formattazione condizionale di Excel. Poiché la condizione è implicita, è sufficiente la funzione WEEKDAY senza il wrapper IF.

    A fine settimana da non perdere (sabato e domenica):

    =GIORNO SETTIMANALE($A2, 2)<6

    A evidenziare le giornate di lavoro (lunedì - venerdì):

    =GIORNO SETTIMANALE($A2, 2)>5

    Dove A2 è la cella in alto a sinistra dell'intervallo selezionato.

    Per impostare la regola di formattazione condizionale, i passaggi sono i seguenti:

    1. Selezionare l'elenco di date (A2:A15 nel nostro caso).
    2. Sul Casa nella scheda Stili gruppo, fare clic su Formattazione condizionale > Nuova regola .
    3. Nel Nuova regola di formattazione selezionare la finestra di dialogo Utilizzate una formula per determinare quali celle formattare .
    4. Nel Formatta i valori in cui questa formula è vera, inserire la formula sopra descritta per i fine settimana o i giorni feriali.
    5. Fare clic sul pulsante Formato e selezionare il formato desiderato.
    6. Cliccare OK due volte per salvare le modifiche e chiudere le finestre di dialogo.

    Per informazioni dettagliate su ciascun passaggio, vedere Come impostare la formattazione condizionale con la formula.

    Il risultato è molto bello, vero?

    Come contare i giorni feriali e i fine settimana in Excel

    Per ottenere il numero di giorni della settimana o del fine settimana nell'elenco di date, è possibile utilizzare la funzione WEEKDAY in combinazione con SUM. Ad esempio:

    A contare i fine settimana , la formula in D3 è:

    =SOMMA(--(WEEKDAY(A3:A20, 2)>5))

    A contare i giorni feriali , la formula in D4 assume questa forma:

    =SOMMA(--(WEEKDAY(A3:A20, 2)<6))

    In Excel 365 ed Excel 2021 che gestiscono gli array in modo nativo, questa formula funziona come una formula normale, come mostrato nella schermata sottostante. In Excel 2019 e precedenti, premere Ctrl + Maiusc + Invio per renderla una formula di array.

    Come funzionano queste formule:

    La funzione WEEKDAY con tipo_ritorno impostato su 2 restituisce un numero di giorno da 1 (lun) a 7 (dom) per ogni data dell'intervallo A3:A20. L'espressione logica controlla se i numeri restituiti sono maggiori di 5 (per i fine settimana) o minori di 6 (per i giorni feriali). Il risultato di questa operazione è una matrice di valori VERI e FALSI.

    La doppia negazione (--) costringe i valori logici a 1 e 0. La funzione SOMMA li somma. Dato che 1 (VERO) rappresenta i giorni da contare e 0 (FALSO) quelli da ignorare, si ottiene il risultato desiderato.

    Suggerimento: per calcolare giorni feriali tra due date , utilizzare la funzione GIORNI IN RETE o GIORNI IN RETE.INTL.

    Se giorno feriale, se sabato o domenica, allora

    Infine, discutiamo un caso un po' più specifico che mostra come determinare il giorno della settimana e se è sabato o domenica fare qualcosa, se è un giorno feriale fare qualcos'altro.

    SE(GIORNO DELLA SETTIMANA( cella , 2)>5, se_weekend_allora , se_giorno_settimana_allora )

    Si supponga che si stiano calcolando i pagamenti per i dipendenti che hanno svolto un lavoro extra nei giorni di riposo, per cui è necessario applicare tassi di pagamento diversi per i giorni lavorativi e per i fine settimana. Ciò può essere fatto utilizzando la seguente istruzione IF:

    • Nel test_logico nidifica la funzione WEEKDAY che controlla se un dato giorno è un giorno lavorativo o un fine settimana.
    • Nel valore_se_vero moltiplicare il numero di ore di lavoro per la tariffa del fine settimana (G4).
    • Nel valore_se_falso moltiplicare il numero di ore di lavoro per la tariffa giornaliera (G3).

    La formula completa in D3 ha questa forma:

    =IF(WEEKDAY(B3, 2)>5, C3*$G$4, C3*$G$3)

    Affinché la formula venga copiata correttamente nelle celle sottostanti, assicuratevi di bloccare gli indirizzi delle celle del tasso con il segno $ (come $G$4).

    Funzione WEEKDAY non funzionante

    In generale, ci sono due errori comuni che una formula WEEKDAY può restituire:

    #VALORE! L'errore si verifica se:

    • Numero_di_serie o tipo_ritorno è non numerico.
    • Numero_di_serie non rientra nell'intervallo di date supportato (da 1900 a 9999).

    L'errore #NUM! si verifica quando tipo_ritorno non rientra nell'intervallo consentito (1-3 o 11-17).

    Ecco come utilizzare la funzione WEEKDAY in Excel per manipolare i giorni della settimana. Nel prossimo articolo esploreremo le funzioni di Excel per operare su unità di tempo più grandi come settimane, mesi e anni. Restate sintonizzati e grazie per la lettura!

    Eserciziario da scaricare

    Formula WEEKDAY in Excel - esempi (file .xlsx)

    Michael Brown è un appassionato di tecnologia dedicato con una passione per la semplificazione di processi complessi utilizzando strumenti software. Con oltre un decennio di esperienza nel settore tecnologico, ha affinato le sue competenze in Microsoft Excel e Outlook, nonché in Fogli Google e Documenti. Il blog di Michael è dedicato alla condivisione delle sue conoscenze e competenze con gli altri, fornendo suggerimenti e tutorial facili da seguire per migliorare la produttività e l'efficienza. Che tu sia un professionista esperto o un principiante, il blog di Michael offre spunti preziosi e consigli pratici per ottenere il massimo da questi strumenti software essenziali.