Sommario
Il post di oggi è dedicato al calcolo della differenza tra due date in Google Sheets. Vedrete molte formule DATEDIF per contare i giorni, i mesi e gli anni, e imparerete come si usa NETWORKDAYS per contare solo i giorni lavorativi anche se le vostre vacanze sono basate su un calendario personalizzato.
Molti utenti di fogli di calcolo trovano le date confuse, se non addirittura estremamente difficili da gestire. Ma, che ci crediate o no, esistono alcune funzioni pratiche e dirette per questo scopo. DATEDIF e NETWORKDAYS sono un paio di queste.
Funzione DATEDIF in Google Sheets
Come accade per le funzioni, i loro nomi suggeriscono l'azione. Lo stesso vale per DATEDIF, che deve essere letto come data dif , non datato se e sta per differenza di data Quindi, DATEDIF in Google Sheets calcola la differenza di data tra due date.
La funzione richiede tre argomenti:
=DATEDIF(data_inizio, data_fine, unità)- data_inizio - una data utilizzata come punto di partenza, che deve essere una delle seguenti:
- una data stessa tra virgolette doppie: "8/13/2020"
- un riferimento a una cella con una data: A2
- una formula che restituisce una data: DATA(2020, 8, 13)
- un numero che sta per una data particolare e che può essere interpretato come data da Google Sheets, ad es. 44056 rappresenta 13 agosto 2020 .
- data_fine - una data utilizzata come endpoint. Deve essere dello stesso formato dell'elemento data_inizio .
- unità - viene utilizzato per indicare alla funzione quale differenza restituire. Ecco un elenco completo delle unità che si possono utilizzare:
- "D" - (abbreviazione di giorni ) restituisce il numero di giorni tra due date.
- "M" - (mesi) il numero di mesi interi tra due date.
- "Y" - (anni) il numero di anni interi.
- "MD" - (giorni senza mesi) il numero di giorni dopo aver sottratto i mesi interi.
- "YD" - (giorni senza anni) il numero di giorni dopo aver sottratto gli anni interi.
- "YM" - (mesi senza anni) il numero di mesi completi dopo aver sottratto gli anni interi.
Nota: tutte le unità devono essere inserite nelle formule nello stesso modo in cui appaiono sopra, ovvero tra virgolette doppie.
Ora mettiamo insieme tutte queste parti e vediamo come funzionano le formule DATEDIF in Google Sheets.
Calcolo dei giorni tra due date in Google Sheets
Esempio 1. Conteggio di tutti i giorni
Ho una piccola tabella per tracciare alcuni ordini. Tutti sono stati spediti nella prima metà di agosto -. Data di spedizione - che sarà la mia data di inizio. C'è anche una data di consegna approssimativa... Data di scadenza .
Calcolo i giorni. "D" - tra la data di spedizione e quella di scadenza per vedere quanto tempo ci vuole per l'arrivo degli articoli. Ecco la formula che dovrei usare:
=DATAIF(B2, C2, "D")
Inserisco la formula DATEDIF in D2 e poi la copio lungo la colonna per applicarla alle altre righe.
Suggerimento: è sempre possibile calcolare l'intera colonna in una sola volta con un'unica formula utilizzando ARRAYFORMULA:
=ArrayFormula(DATEDIF(B2:B13, C2:C13, "D"))
Esempio 2. Contare i giorni ignorando i mesi
Immaginate che ci siano alcuni mesi tra due date:
Come si fa a contare solo i giorni come se appartenessero allo stesso mese? Esatto: ignorando i mesi interi trascorsi. DATEDIF lo calcola automaticamente quando si utilizza l'opzione "MD" unità:
=DATAIF(A2, B2, "MD")
La funzione sottrae i mesi trascorsi e conta i giorni rimanenti.
Esempio 3. Contare i giorni ignorando gli anni
Un'altra unità - "YD" - sarà di aiuto quando le date hanno più di un anno di distanza:
=DATEDIF(A2, B2, "YD")
La formula sottrae prima gli anni e poi calcola i giorni rimanenti come se appartenessero allo stesso anno.
Conteggio dei giorni lavorativi in Google Sheets
Esiste un caso particolare in cui è necessario contare solo i giorni lavorativi in Google Sheets. Le formule DATEDIF non saranno di grande aiuto in questo caso. E credo che sarete d'accordo che sottrarre manualmente i fine settimana non è l'opzione più elegante.
Fortunatamente, Google Sheets ha un paio di incantesimi non proprio magici per questo :)
Esempio 1. Funzione RETE-GIORNI
La prima si chiama GIORNI DI RETE. Questa funzione calcola il numero di giorni lavorativi tra due date escludendo i fine settimana (sabato e domenica) e anche i giorni festivi, se necessario:
=NETWORKDAYS(data_inizio, data_fine, [festività])- data_inizio - una data utilizzata come punto di partenza. Richiesto.
Nota: se questa data non è un giorno festivo, viene considerata come giorno lavorativo.
- data_fine - una data utilizzata come punto finale. Richiesto.
Nota: se questa data non è un giorno festivo, viene considerata come giorno lavorativo.
- vacanze - Questa opzione è facoltativa per indicare festività specifiche. Deve essere un intervallo di date o numeri che rappresentano date.
Per illustrare il funzionamento, aggiungerò un elenco di festività che si verificano tra le date di spedizione e di scadenza:
Quindi, la colonna B è la mia data di inizio, la colonna C - la data di fine. Le date nella colonna E sono le festività da considerare. Ecco come dovrebbe apparire la formula:
=GIORNI LAVORATIVI IN RETE(B2, C2, $E$2:$E$4)
Suggerimento: se si intende copiare la formula in altre celle, utilizzare riferimenti assoluti alle celle per le vacanze, per evitare errori o risultati errati. Oppure considerare la possibilità di creare una formula di matrice.
Avete notato che il numero di giorni è diminuito rispetto alle formule DATEDIF? Perché ora la funzione sottrae automaticamente tutti i sabati, le domeniche e le due festività che si svolgono il venerdì e il lunedì.
Nota: a differenza di DATEDIF in Google Fogli, NETWORKDAYS conta giorno_inizio e fine_giorno come giorni lavorativi, a meno che non si tratti di giorni festivi. Quindi, D7 restituisce 1 .
Esempio 2. NETWORKDAYS.INTL per Google Sheets
Se avete un programma personalizzato per il fine settimana, potrete beneficiare di un'altra funzione: NETWORKDAYS.INTL. Essa consente di contare i giorni lavorativi in Google Fogli in base ai fine settimana impostati personalmente:
=NETWORKDAYS.INTL(data_inizio, data_fine, [fine settimana], [giorni festivi])- data_inizio - una data utilizzata come punto di partenza. Richiesto.
- data_fine - una data utilizzata come punto finale. Richiesto.
Nota: in Google Sheets conta anche NETWORKDAYS.INTL. giorno_inizio e fine_giorno come giorni lavorativi, a meno che non si tratti di giorni festivi.
- fine settimana - Se omesso, il sabato e la domenica vengono considerati come fine settimana. Ma è possibile modificarlo in due modi:
- Maschere .
Suggerimento: questo modo è perfetto per quando i vostri giorni liberi sono sparsi per tutta la settimana.
La maschera è uno schema a sette cifre composto da 1 e 0. 1 indica il fine settimana, 0 il giorno lavorativo. La prima cifra dello schema è sempre il lunedì, l'ultima la domenica.
Ad esempio, "1100110" significa che si lavora mercoledì, giovedì, venerdì e sabato.
Nota: la maschera deve essere inserita tra virgolette doppie.
- Numeri .
Utilizzare numeri a una cifra (1-7) che indicano una coppia di fine settimana:
Numero Fine settimana 1 Sabato, domenica 2 Domenica, lunedì 3 Lunedì, martedì 4 Martedì, mercoledì 5 Mercoledì, giovedì 6 Giovedì, venerdì 7 Venerdì, sabato Oppure lavorate con numeri a due cifre (11-17) che indicano un giorno di riposo in una settimana:
Numero Giorno del fine settimana 11 Domenica 12 Lunedì 13 Martedì 14 Mercoledì 15 Giovedì 16 Venerdì 17 Sabato
- Maschere .
- vacanze - è anch'esso facoltativo e viene utilizzato per specificare le festività.
Questa funzione può sembrare complicata a causa di tutti quei numeri, ma vi invito a provarla.
Per prima cosa, è necessario avere una visione chiara dei propri giorni di riposo. Domenica e Lunedì Poi, decidete il modo in cui indicare i vostri fine settimana.
Se si sceglie una maschera, il risultato sarà questo 1000001 :
=NETWORKDAYS.INTL(B2, C2, "1000001")
Ma dato che ho due weekend di fila, posso usare un numero dalle tabelle precedenti, 2 nel mio caso:
=NETWORKDAYS.INTL(B2, C2, 2)
Quindi basta aggiungere l'ultimo argomento - riferito alle vacanze nella colonna E - e la formula è pronta:
=NETWORKDAYS.INTL(B2, C2, 2, $E$2:$E$4)
Fogli Google e differenza di data in mesi
Se questo è vero e preferite ottenere la differenza di data in mesi anziché in giorni, lasciate che sia DATEDIF di Google Sheets a farlo.
Esempio 1. Il numero di mesi completi tra due date
La procedura è la stessa: il data_inizio va per prima, seguita dal file data_fine e "M" - che si protrae da mesi - come argomento finale:
=DATAIF(A2, B2, "M")
Suggerimento: non dimenticate la funzione ARRAUFORMULA che può aiutarvi a contare i mesi su tutte le righe contemporaneamente:
=ARRAYFORMULA(DATEDIF(A2:A13, B2:B13, "M"))
Esempio 2. Il numero di mesi che ignorano gli anni
Non è detto che sia necessario contare i mesi di tutti gli anni che intercorrono tra le date di inizio e fine, e DATEDIF permette di farlo.
Basta usare il tasto "YM" e la formula sottrarrà prima gli anni interi e poi conterà il numero di mesi tra le date:
=DATEDIF(A2, B2, "YM")
Calcolo degli anni tra due date in Google Sheets
L'ultima (ma non meno importante) cosa da mostrare è come Google Sheets DATEDIF calcola la differenza di data in anni.
Calcolerò il numero di anni in cui le coppie sono state sposate in base alle date di matrimonio e alla data odierna:
Come avrete già intuito, utilizzerò il metodo "Y" unità per questo:
=DATAIF(A2, B2, "Y")
Tutte queste formule DATEDIF sono le prime da provare quando si tratta di calcolare giorni, mesi e anni tra due date in Google Fogli.
Se il vostro caso non può essere risolto con queste soluzioni o se avete delle domande, vi invito a condividerle con noi nella sezione commenti qui sotto.