Innehållsförteckning
Dagens blogginlägg handlar om att räkna ut skillnaden mellan två datum i Google Sheets. Du kommer att se många DATEDIF-formler för att räkna dagar, månader och år, och lära dig hur NETWORKDAYS används för att räkna arbetsdagar även om semestern är baserad på ett anpassat schema.
Många användare av kalkylblad tycker att datum är förvirrande, om inte extremt svårt, att hantera. Men tro det eller ej, det finns några praktiska och enkla funktioner för det ändamålet. DATEDIF och NETWORKDAYS är ett par av dem.
DATEDIF-funktionen i Google Sheets
Som det är fallet med funktioner, så anger deras namn vad de ska göra. Samma sak gäller för DATEDIF. Det måste läsas som datum dif , inte daterad om , och det står för skillnad i datum DATEDIF i Google Sheets beräknar alltså datumskillnaden mellan två datum.
Låt oss dela upp den i bitar. Funktionen kräver tre argument:
=DATEDIF(start_datum, slut_datum, enhet)- start_datum - Ett datum som används som utgångspunkt och som måste vara något av följande:
- ett datum i sig självt inom dubbla citattecken: "8/13/2020"
- en referens till en cell med ett datum: A2
- en formel som returnerar ett datum: DATUM(2020, 8, 13)
- ett tal som står för ett visst datum och som kan tolkas som ett datum av Google Sheets, t.ex. 44056 representerar 13 augusti 2020 .
- end_date - ett datum som används som slutpunkt. Det måste vara i samma format som start_datum .
- enhet - används för att tala om för funktionen vilken skillnad den ska återge. Här finns en fullständig lista över alla enheter som du kan använda:
- "D" - (förkortning för dagar ) anger antalet dagar mellan två datum.
- "M" - (månader) antalet hela månader mellan två datum.
- "Y" - (år) antalet hela år.
- "MD" - (dagar utan hänsyn till månader) antalet dagar efter avdrag för hela månader.
- "YD" - (dagar utan hänsyn till år) antalet dagar efter avdrag för hela år.
- "YM" - (månader utan hänsyn till år) antalet hela månader efter avdrag för hela år.
Observera: Alla enheter måste sättas in i formlerna på samma sätt som de visas ovan - inom dubbla citattecken.
Nu ska vi sätta ihop alla dessa delar och se hur DATEDIF-formler fungerar i Google Sheets.
Beräkna dagar mellan två datum i Google Sheets
Exempel 1. Räkna alla dagar
Jag har en liten tabell för att spåra några beställningar. Alla har skickats under första halvan av augusti - Leveransdatum - vilket kommer att vara mitt startdatum. Det finns också ett ungefärligt leveransdatum - Förfallodag .
Jag ska beräkna dagar - "D" - mellan leverans- och förfallodatum för att se hur lång tid det tar för varorna att anlända. Här är formeln som jag ska använda:
=DATEDIF(B2, C2, "D")
Jag skriver in DATEDIF-formeln i D2 och kopierar den sedan nedåt i kolumnen för att tillämpa den på andra rader.
Tips: Du kan alltid beräkna hela kolumnen på en gång med en enda formel med hjälp av ARRAYFORMULA:
=ArrayFormula(DATEDIF(B2:B13, C2:C13, "D"))
Exempel 2. Räkna dagar och ignorera månader
Föreställ dig att det är några månader mellan två datum:
Hur räknar du bara dagar som om de hörde till samma månad? Det stämmer: genom att ignorera hela månader som har passerat. DATEDIF beräknar detta automatiskt när du använder "MD" enhet:
=DATEDIF(A2, B2, "MD")
Funktionen subtraherar de förflutna månaderna och räknar de återstående dagarna.
Exempel 3. Räkna dagar och ignorera år
En annan enhet - "YD" - kommer att användas när det är mer än ett år mellan datumen:
=DATEDIF(A2, B2, "YD")
Formeln subtraherar först åren och beräknar sedan de återstående dagarna som om de hörde till samma år.
Räkna arbetsdagar i Google Sheets
Det finns ett specialfall när du bara behöver räkna arbetsdagar i Google Sheets. DATEDIF-formler är inte till någon större hjälp här. Och jag tror att du håller med om att det inte är det mest eleganta alternativet att subtrahera helger manuellt.
Som tur är har Google Sheets ett par inte så magiska trollformler för detta :)
Exempel 1. Funktionen NETWORKDAYS
Den första funktionen heter NETWORKDAYS och beräknar antalet arbetsdagar mellan två datum exklusive helger (lördag och söndag) och även helgdagar om det behövs:
=NETWORKDAYS(start_datum, slut_datum, [helgdagar])- start_datum - ett datum som används som utgångspunkt. Krävs.
Om detta datum inte är en helgdag räknas det som en arbetsdag.
- end_date - ett datum som används som slutpunkt. Krävs.
Om detta datum inte är en helgdag räknas det som en arbetsdag.
- semester - Den här är valfri när du vill ange särskilda helgdagar. Det måste vara ett intervall av datum eller siffror som representerar datum.
För att illustrera hur det fungerar kommer jag att lägga till en lista över helgdagar som infaller mellan leverans- och förfallodagar:
Kolumn B är alltså mitt startdatum, kolumn C - slutdatum. Datum i kolumn E är de helgdagar som ska beaktas. Så här ska formeln se ut:
=NÄTARBETSDAGAR(B2, C2, $E$2:$E$4)
Tips: Om du ska kopiera formeln till andra celler ska du använda absoluta cellreferenser för helgdagar för att undvika fel eller felaktiga resultat. Du kan också överväga att skapa en matrisformel i stället.
Har du lagt märke till att antalet dagar har minskat jämfört med DATEDIF-formlerna? Nu drar funktionen automatiskt bort alla lördagar, söndagar och två helgdagar som infaller på fredag och måndag.
Observera: Till skillnad från DATEDIF i Google Sheets räknas NETWORKDAYS start_dag och end_day som arbetsdagar om de inte är helgdagar. Därför returnerar D7 1 .
Exempel 2. NETWORKDAYS.INTL för Google Sheets
Om du har ett eget helgschema kan du dra nytta av en annan funktion: NETWORKDAYS.INTL. Med den kan du räkna arbetsdagar i Google Sheets baserat på personligen fastställda helger:
=NETWORKDAYS.INTL(start_datum, slut_datum, [helg], [helgdagar])- start_datum - ett datum som används som utgångspunkt. Krävs.
- end_date - ett datum som används som slutpunkt. Krävs.
Observera att NETWORKDAYS.INTL i Google Sheets också räknas. start_dag och end_day som arbetsdagar om de inte är helgdagar.
- helg - Den här är valfri. Om den inte anges anses lördag och söndag vara helger. Men du kan ändra detta på två sätt:
- Masker .
Tips: Det här sättet är perfekt när dina lediga dagar är utspridda över hela veckan.
Mask är ett sjusiffrigt mönster av 1:or och 0:or. 1 står för en helg och 0 för en arbetsdag. Den första siffran i mönstret är alltid måndag och den sista siffran är söndag.
Till exempel, "1100110" innebär att du arbetar på onsdag, torsdag, fredag och lördag.
Observera att masken måste sättas inom dubbla citattecken.
- Nummer .
Använd ensiffriga siffror (1-7) som anger ett par fasta helger:
Antal Helgen 1 Lördag, söndag 2 Söndag, måndag 3 Måndag, tisdag 4 Tisdag, onsdag 5 Onsdag, torsdag 6 Torsdag, fredag 7 Fredag, lördag Eller arbeta med tvåsiffriga tal (11-17) som anger en vilodag inom en vecka:
Antal Dag på helgen 11 Söndag 12 Måndag 13 Tisdag 14 Onsdag 15 Torsdag 16 Fredag 17 Lördag
- Masker .
- semester - Den är också valfri och används för att ange helgdagar.
Funktionen kan verka komplicerad på grund av alla dessa siffror, men jag uppmuntrar dig att prova den.
Först och främst måste du få en klar uppfattning om dina lediga dagar. Söndag och Måndag . Bestäm sedan hur du ska ange dina helger.
Om du väljer en mask kommer den att se ut så här - 1000001 :
=NETWORKDAYS.INTL(B2, C2, "1000001")
Men eftersom jag har två helgdagar i rad kan jag använda en siffra från tabellerna ovan, 2 i mitt fall:
=NETWORKDAYS.INTL(B2, C2, 2)
Lägg sedan till det sista argumentet - hänvisar till helgdagar i kolumn E - och formeln är klar:
=NETWORKDAYS.INTL(B2, C2, 2, $E$2:$E$4)
Google Sheets och datumskillnad i månader
Ibland är månader viktigare än dagar. Om detta gäller för dig och du föredrar att få datumskillnaden i månader i stället för dagar, kan du låta Google Sheets DATEDIF göra jobbet.
Exempel 1. Antalet hela månader mellan två datum.
Övningen är densamma: den start_datum först, följt av end_date och "M" - som står för månader - som ett slutargument:
=DATEDIF(A2, B2, "M")
Tips: Glöm inte funktionen ARRAUFORMULA som kan hjälpa dig att räkna månader på alla rader samtidigt:
=ARRAYFORMULA(DATEDIF(A2:A13, B2:B13, "M"))
Exempel 2. Antalet månader ignorerar år
Du behöver kanske inte räkna månader under alla år mellan start- och slutdatum och det kan du göra med DATEDIF.
Använd bara "YM" och formeln subtraherar först hela år och räknar sedan antalet månader mellan datumen:
=DATEDIF(A2, B2, "YM")
Beräkna år mellan två datum i Google Sheets
Det sista (men inte minst) jag vill visa dig är hur Google Sheets DATEDIF beräknar datumskillnaden i år.
Jag ska beräkna hur många år paren har varit gifta utifrån deras bröllopsdatum och dagens datum:
Som du kanske redan har gissat kommer jag att använda "Y" enhet för detta:
=DATEDIF(A2, B2, "Y")
Alla dessa DATEDIF-formler är de första att prova när det gäller att beräkna dagar, månader och år mellan två datum i Google Sheets.
Om ditt fall inte kan lösas med dessa metoder eller om du har några frågor kan du dela dem med oss i kommentarsfältet nedan.