Innehållsförteckning
Microsoft Excel tillhandahåller en rad funktioner för att arbeta med veckodagar, månader och år, men det finns bara en funktion för veckor - funktionen WEEKNUM. Om du letar efter ett sätt att få fram ett veckonummer från ett datum är WEEKNUM den funktion du vill ha.
I den här korta handledningen kommer vi kortfattat att tala om syntaxen och argumenten för Excel WEEKNUM och sedan diskutera några formelexempel som visar hur du kan använda funktionen WEEKNUM för att beräkna veckonummer i dina Excel-arbetsblad.
Excel WEEKNUM-funktionen - syntax
Funktionen WEEKNUM används i Excel för att återge veckonumret för ett visst datum under året (ett tal mellan 1 och 54). Den har två argument, det första är obligatoriskt och det andra är valfritt:
WEEKNUM(serienummer, [return_type])- Serienummer - ett datum inom veckan vars nummer du försöker hitta. Detta kan vara en referens till en cell som innehåller datumet, ett datum som matats in med hjälp av funktionen DATE eller som returnerats med någon annan formel.
- Returtyp (valfritt) - ett tal som anger vilken dag veckan börjar. Om det utelämnas används standardtypen 1 (veckan börjar på söndag).
Här finns en fullständig förteckning över return_type
värden som stöds i WEEKNUM-formler.
Returtyp | Veckan börjar den |
1 eller 17 eller utelämnat | Söndag |
2 eller 11 | Måndag |
12 | Tisdag |
13 | Onsdag |
14 | Torsdag |
15 | Fredag |
16 | Lördag |
21 | Måndag (används i system 2, se närmare information nedan.) |
I WEEKNUM-funktionen kan två olika System för veckonummerering. används:
- System 1. Veckan som innehåller den 1 januari anses vara årets första vecka och numreras vecka 1. I detta system börjar veckan traditionellt på söndag.
- System 2. Detta är ISO:s veckodatumsystem som ingår i ISO 8601-standarden för datum och tid. I detta system börjar veckan på måndag och den vecka som innehåller årets första torsdag betraktas som vecka 1. Det är allmänt känt som det europeiska veckonumreringssystemet och används främst inom myndigheter och företag för räkenskapsår och tidtagning.
Alla returtyper som anges ovan gäller för system 1, utom returtyp 21 som används i system 2.
Obs. I Excel 2007 och tidigare versioner är endast alternativ 1 och 2 tillgängliga. Returtyperna 11 till 21 stöds endast i Excel 2010 och Excel 2013.
Excel WEEKNUM-formler för att konvertera datum till veckonummer (från 1 till 54)
Följande skärmdump visar hur du kan få fram veckonummer från datum med den enklaste metoden =WEEKNUM(A2)
formel:
I formeln ovan är return_type
Om argumentet utelämnas används standardtyp 1 - veckan som börjar på söndag.
Om du hellre vill börja med en annan veckodag, till exempel måndag, använder du 2 i det andra argumentet:
=WEEKNUM(A2, 2)
I stället för att hänvisa till en cell kan du ange datumet direkt i formeln genom att använda funktionen DATE(år, månad, dag):
=WEEKNUM(DATUM(2015,4,15), 2)
Formeln ovan ger 16, vilket är numret på den vecka som innehåller den 15 april 2015, med en vecka som börjar på måndag.
I verkliga scenarier används Excel-funktionen WEEKNUM sällan ensam, utan oftast i kombination med andra funktioner för att utföra olika beräkningar baserade på veckonumret, vilket visas i ytterligare exempel.
Hur man konverterar veckonummer till datum i Excel
Som du just har sett är det inte svårt att omvandla ett datum till ett veckonummer med hjälp av Excel-funktionen WEEKNUM. Men vad händer om du är ute efter det motsatta, dvs. att omvandla ett veckonummer till ett datum? Tyvärr finns det ingen Excel-funktion som kan göra detta direkt, så vi måste skapa våra egna formler.
Antag att du har ett årtal i cell A2 och ett veckonummer i B2, och nu vill du beräkna start- och slutdatum för den här veckan.
Observera: Detta exempel på formel är baserat på ISO-veckor, med en vecka som börjar på måndag.
Formeln för att återge Startdatum Veckans schema är som följer:
=DATUM(A2, 1, -2) - VECKODAG(DATUM(A2, 1, 3)) + B2 * 7
Där A2 är året och B2 är veckonumret.
Observera att formeln returnerar datumet som ett serienummer, och för att det ska visas som ett datum måste du formatera cellen i enlighet med detta. Du hittar detaljerade instruktioner i Ändra datumformat i Excel. Och här är resultatet som returneras av formeln:
Naturligtvis är formeln för att konvertera ett veckonummer till ett datum inte trivial, och det kan ta ett tag att förstå logiken. Jag ska göra mitt bästa för att ge en meningsfull förklaring för dem som är nyfikna på att gå till botten.
Som du ser består vår formel av två delar:
DATUM(A2, 1, -2) - VECKODAG(DATUM(A2, 1, 3))
- beräknar datumet för den sista måndagen under föregående år.B2 * 7
- adderar antalet veckor multiplicerat med 7 (antalet dagar i en vecka) för att få fram måndagen (startdatum) för veckan i fråga.
I ISO:s veckonummereringssystem är vecka 1 den vecka som innehåller årets första torsdag. Den första måndagen ligger alltså alltid mellan den 29 december och den 4 januari. För att hitta detta datum måste vi alltså hitta måndagen omedelbart före den 5 januari.
I Microsoft Excel kan du extrahera en veckodag från ett datum med hjälp av funktionen WEEKDAY. Och du kan använda följande generiska formel för att få fram måndagen omedelbart före ett visst datum:
= datum - VECKODAG( datum - 2)Om vårt slutmål är att hitta måndagen omedelbart före den 5 januari året i A2 kan vi använda följande DATE-funktioner:
=DATUM(A2,1,5) - VECKODAG(DATUM(A2,1,3))
Men vad vi egentligen behöver är inte den första måndagen i år, utan snarare den sista måndagen i föregående år. Du måste alltså subtrahera 7 dagar från den 5 januari och får därför -2 i den första DATE-funktionen:
=DATUM(A2,1,-2) - VECKODAG(DATUM(A2,1,3))
Jämfört med den knepiga formeln du just har lärt dig är det lättare att beräkna Slutdatum för veckan är en barnlek :) För att få fram söndagen för veckan i fråga, lägger du helt enkelt till 6 dagar till Startdatum , dvs. =D2+6
Alternativt kan du lägga till 6 direkt i formeln:
=DATUM(A2, 1, -2) - VECKODAG(DATUM(A2, 1, 3)) + B2 * 7 + 6
För att se till att formlerna alltid levererar rätt datum kan du ta en titt på följande skärmdump: Formlerna Startdatum och Slutdatum som diskuterats ovan kopieras över kolumn D respektive E:
Andra sätt att konvertera veckonummer till datum i Excel
Om formeln ovan, som bygger på ISO-veckodatumssystemet, inte uppfyller dina krav, kan du prova en av följande lösningar.
Formel 1. En vecka som innehåller Jan-1 är vecka 1, mån-sön vecka.
Som du minns fungerar den tidigare formeln enligt ISO-datumssystemet där den första torsdagen på året räknas som vecka 1. Om du arbetar enligt ett datumssystem där den vecka som innehåller den 1 januari räknas som vecka 1, använd följande formler:
Startdatum:
=DATUM(A2,1,1) - VECKODAG(DATUM(A2,1,1),2) + (B2-1)*7 + 1
Slutdatum:
=DATUM(A2,1,1)- VECKODAG(DATUM(A2,1,1),2) + B2*7
Formel 2. En vecka som innehåller Jan-1 är vecka 1, sön-söndag vecka.
Dessa formler liknar de ovanstående med den enda skillnaden att de är skrivna för en vecka från söndag till lördag.
Startdatum:
=DATUM(A2,1,1) - VECKODAG(DATUM(A2,1,1),1) + (B2-1)*7 + 1
Slutdatum:
=DATUM(A2,1,1)- VECKODAG(DATUM(A2,1,1),1) + B2*7
Formel 3. Börja alltid räkna den 1 januari, mån-sön-veckan.
Medan de tidigare formlerna returnerar måndag (eller söndag) i vecka 1, oavsett om den infaller i år eller föregående år, returnerar den här formeln för startdatum alltid Den 1 januari som startdatum för vecka 1 oavsett veckodag. På motsvarande sätt ger formeln för slutdatum alltid följande resultat 31 december som slutdatum för den sista veckan på året, oavsett veckodag. I alla andra avseenden fungerar dessa formler på samma sätt som formel 1 ovan.
Startdatum:
=MAX(DATUM(A2,1,1), DATUM(A2,1,1) - VECKODAG(DATUM(A2,1,1),2) + (B2-1)*7 + 1)
Slutdatum:
=MIN(DATUM(A2+1,1,0), DATUM(A2,1,1) - VECKODAG(DATUM(A2,1,1),2) + B2*7)
Formel 4. Börja alltid räkna den 1 januari, sön-sön-söndag vecka.
För att beräkna start- och slutdatum för en vecka från söndag till lördag räcker det med en liten justering i formlerna ovan :)
Startdatum:
=MAX(DATUM(A2,1,1), DATUM(A2,1,1) - VECKODAG(DATUM(A2,1,1),1) + (B2-1)*7 + 1)
Slutdatum:
=MIN(DATUM(A2+1,1,0), DATUM(A2,1,1) - VECKODAG(DATUM(A2,1,1),1) + B2*7)
Hur man får fram månad från veckonummer
För att få fram en månad som motsvarar veckonumret hittar du den första dagen i en viss vecka som förklaras i det här exemplet, och sedan lindar du in formeln i Excel-funktionen MONTH på följande sätt:
=MÅNAD(DATUM(A2, 1, -2) - VECKODAG(DATUM(A2, 1, 3)) + B2 * 7)
Observera: Kom ihåg att formeln ovan fungerar på grundval av den System för datum för ISO-veckor , där veckan börjar på måndag och den vecka som innehåller den första torsdagen på året anses vara vecka 1. Exempelvis är den första torsdagen på 2016 den 7 januari och därför börjar vecka 1 den 4 januari 2016.
Hur man får ett veckonummer i en månad (från 1 till 6)
Om din affärslogik kräver att ett visst datum konverteras till veckonumret i motsvarande månad kan du använda en kombination av funktionerna WEEKNUM, DATE och MONTH:
Om du antar att cell A2 innehåller det ursprungliga datumet kan du använda följande formel för en vecka som börjar den Måndag (lägg märke till 21 i WEEKNUMs return_type-argument):
=WEEKNUM($A2,21)-WEEKNUM(DATE(YEAR($A2), MONTH($A2),1),21)+1
Under en vecka med början den Söndag utelämna argumentet return_type:
=WEEKNUM($A2)-WEEKNUM(DATE(YEAR($A2), MONTH($A2),1))+1
Hur man summerar värden och hittar genomsnittet med veckonumret
Nu när du vet hur du konverterar ett datum till ett veckonummer i Excel, ska vi se hur du kan använda veckonummer i andra beräkningar.
Antag att du har några månatliga försäljningssiffror och vill veta summan för varje vecka.
Till att börja med ska vi ta reda på ett veckonummer som motsvarar varje försäljning. Om dina datum finns i kolumn A och försäljningarna i kolumn B, kopiera =WEEKNUM(A2)
formeln i kolumn C med början i cell C2.
Gör sedan en lista med veckonummer i en annan kolumn (t.ex. i kolumn E) och beräkna försäljningen för varje vecka med hjälp av följande SUMIF-formel:
=SUMIF($C$2:$C$15, $E2, $B$2:$B$15)
Där E2 är veckans nummer.
I det här exemplet arbetar vi med en lista över försäljningen i mars, så vi har veckonummer 10-14, vilket visas i följande skärmdump:
På samma sätt kan du beräkna försäljningsgenomsnittet för en viss vecka:
= MEDELVÄRDE($C$2:$C$15, $E2, $B$2:$B$15)
Om hjälpkolumnen med WEEKNUM-formeln inte passar bra in i din datalayout måste jag tyvärr säga att det inte finns något enkelt sätt att bli av med den, eftersom Excel WEEKNUM är en av de funktioner som inte accepterar intervallargument. Därför kan den inte användas inom SUMPRODUCT eller någon annan matrisformel som MONTH-funktionen i ett liknande scenario.
Hur man markerar celler baserat på veckonumret
Låt oss säga att du har en lång lista med datum i en kolumn och att du vill markera endast de datum som hör till en viss vecka. Allt du behöver är en regel för villkorlig formatering med en WEEKNUM-formel som liknar den här:
=WEEKNUM($A2)=10
Som visas i skärmdumpen nedan markerar regeln försäljningar som gjordes under vecka 10, vilket är den första veckan i mars 2015. Eftersom regeln gäller för A2:B15 markerar den värden i båda kolumnerna. Du kan läsa mer om hur du skapar regler för villkorlig formatering i den här handledningen: Excel villkorlig formatering baserad på ett annat cellvärde.
Så här kan du beräkna veckonummer i Excel, konvertera veckonummer till datum och extrahera veckonummer från datum. Förhoppningsvis kommer de WEEKNUM-formler du lärt dig idag att vara användbara i dina kalkylblad. I nästa handledning kommer vi att prata om att beräkna ålder och år i Excel. Jag tackar dig för att du läste och hoppas att vi ses nästa vecka!