Innehållsförteckning
Om du letar efter en Excel-funktion för att få fram veckodag från ett datum har du hamnat på rätt sida. I den här handledningen lär du dig hur du använder formeln WEEKDAY i Excel för att konvertera ett datum till en veckodag, filtrera, markera och räkna helger eller arbetsdagar och mycket mer.
Det finns en mängd olika funktioner för att arbeta med datum i Excel. Funktionen veckodag (WEEKDAY) är särskilt användbar för planering och schemaläggning, t.ex. för att bestämma tidsramen för ett projekt och automatiskt ta bort helger från totalsumman. Låt oss gå igenom exemplen ett i taget och se hur de kan hjälpa dig att hantera olika datumrelaterade uppgifter i Excel.
WEEKDAY - Excel-funktion för veckodag
Excel-funktionen WEEKDAY används för att ange veckodagen från ett visst datum.
Resultatet är ett heltal, som standardmässigt sträcker sig från 1 (söndag) till 7 (lördag). Om din affärslogik kräver en annan uppräkning kan du konfigurera formeln så att den börjar räkna med någon annan veckodag.
Funktionen WEEKDAY finns i alla versioner av Excel 365 till och med 2000.
Syntaxen för funktionen WEEKDAY är följande:
WEEKDAY(serial_number, [return_type])Var:
Serienummer (obligatoriskt) - det datum som du vill konvertera till veckodagsnummer. Det kan anges som ett löpnummer som representerar datumet, som en textsträng i det format som Excel förstår, som en referens till cellen som innehåller datumet eller genom att använda funktionen DATE.
Returtyp (valfritt) - bestämmer vilken veckodag som ska användas som första dag. Om den utelämnas är standardvärdet sol-söndag.
Här är en lista över alla som stöds return_type värden:
Returtyp | Antal som returnerats |
---|---|
1 eller utelämnas | Från 1 (söndag) till 7 (lördag) |
2 | Från 1 (måndag) till 7 (söndag) |
3 | Från 0 (måndag) till 6 (söndag) |
11 | Från 1 (måndag) till 7 (söndag) |
12 | Från 1 (tisdag) till 7 (måndag) |
13 | Från 1 (onsdag) till 7 (tisdag) |
14 | Från 1 (torsdag) till 7 (onsdag) |
15 | Från 1 (fredag) till 7 (torsdag) |
16 | Från 1 (lördag) till 7 (fredag) |
17 | Från 1 (söndag) till 7 (lördag) |
Observera. return_type Värdena 11 till 17 infördes i Excel 2010 och kan därför inte användas i tidigare versioner.
Grundläggande WEEKDAY-formel i Excel
Till att börja med ska vi se hur du använder WEEKDAY-formeln i sin enklaste form för att få fram dagnumret från datumet.
Om du till exempel vill få fram veckodagen från datumet i C4 med standardveckan söndag-lördag är formeln följande:
=VECKADAG(C4)
Om du har ett serienummer som representerar datumet (t.ex. med hjälp av funktionen DATEVALUE) kan du ange det numret direkt i formeln:
= VECKODAG(45658)
Du kan också skriva in datumet som en textsträng inom citationstecken direkt i formeln. Se bara till att använda det datumformat som Excel förväntar sig och kan tolka:
= VECKODAG("1/1/2025")
Du kan också ange källdatumet på ett 100 % tillförlitligt sätt med hjälp av funktionen DATE:
= VECKODAG(DATUM(2025, 1,1))
Om du vill använda en annan dagmappning än standardalternativet sön-sön, anger du ett lämpligt nummer i det andra argumentet. Om du till exempel vill börja räkna dagar från måndag är formeln:
= VECKODAG(C4, 2)
I bilden nedan ger alla formlerna veckodagen som motsvarar den 1 januari 2025, vilket lagras som siffran 45658 internt i Excel. Beroende på värdet i det andra argumentet ger formlerna olika resultat.
Vid första anblicken kan det tyckas att de siffror som returneras av WEEKDAY-funktionen inte har någon praktisk betydelse. Men låt oss titta på det från en annan vinkel och diskutera några formler som löser verkliga uppgifter.
Hur man konverterar Excel-datum till veckodagsnamn
Excel-funktionen WEEKDAY returnerar veckodagen som ett nummer. Om du vill omvandla veckodagsnumret till ett namn på dagen använder du TEXT-funktionen.
För att få namn för hela dagen , använd formatkoden "dddd":
TEXT(VECKEDAG( datum ), "dddd")För att återvända förkortade namn på dagar , formatkoden är "ddd":
TEXT(VECKEDAG( datum ), "ddd")Om du till exempel vill konvertera datumet i A3 till veckodagsnamnet är formeln:
=TEXT(veckodag(A3), "dddd")
Eller
=TEXT(veckodag(A3), "ddd")
En annan möjlig lösning är att använda WEEKDAY tillsammans med CHOOSE-funktionen.
Om du till exempel vill få fram ett förkortat veckodagsnamn från datumet i A3, går formeln till på följande sätt:
=CHOOSE(WEEKDAY(A3), "Sun", "Mon", "Tus", "Wed", "Thu", "Fri", "Sat")
Här returnerar WEEKDAY ett löpnummer från 1 (sön) till 7 (lördag) och CHOOSE väljer motsvarande värde från listan. Eftersom datumet i A3 (onsdag) motsvarar 4, ger CHOOSE ut "Wed", som är det fjärde värdet i listan.
Även om formeln CHOOSE är något mer besvärlig att konfigurera ger den mer flexibilitet, vilket gör att du kan ge ut dagsnamnen i vilket format du vill. I exemplet ovan visar vi förkortade dagsnamn. Du kan istället ge fullständiga namn, anpassade förkortningar eller till och med dagsnamn på ett annat språk.
Tips. Ett annat enkelt sätt att konvertera ett datum till veckodagsnamn är att använda ett anpassat datumformat. Om du till exempel använder kodformatet "ddddd, mmmm d, yyyy" kommer datumet att visas som " Fredag den 3 januari 2025 " medan "dddd" bara visar " Fredag ".
Excel WEEKDAY-formeln för att hitta och filtrera arbetsdagar och helger
När du har en lång lista med datum vill du kanske veta vilka dagar som är arbetsdagar och vilka som är helger.
Till identifiera helger och vardagar i Excel, skapa ett IF-uttalande med den inbäddade funktionen WEEKDAY. Till exempel:
=IF(WEEKDAY(A3, 2)<6, "Arbetsdag", "Helg")
Formeln placeras i cell A3 och kopieras ner i så många celler som behövs.
I formeln WEEKDAY ställer du in return_type till 2, vilket motsvarar mån-sön-veckan där måndag är dag 1. Om veckodagnumret är mindre än 6 (måndag till fredag) ger formeln alltså "arbetsdag", annars - "helg".
Till filter helger eller arbetsdagar , tillämpa Excel-filter på ditt dataset ( Uppgifter flik> Filter ) och välj antingen "Weekend" eller "Workday".
I skärmbilden nedan har vi filtrerat bort vardagar, så att endast helger syns:
Om något regionalt kontor i din organisation arbetar enligt ett annat schema där vilodagarna är andra än lördag och söndag, kan du enkelt anpassa formeln WEEKDAY till dina behov genom att ange en annan return_type .
Till exempel för att behandla Lördag och Måndag som helger, ange return_type till 12, så du får veckotypen "tisdag (1) till måndag (7)":
=IF(WEEKDAY(A2, 12)<6, "Arbetsdag", "Helg")
Hur man markerar helger, arbetsdagar och i Excel
Om du vill se helger och arbetsdagar i ditt kalkylblad på ett ögonblick kan du få dem automatiskt skuggade i olika färger. För detta använder du formeln för veckodag/helgdag som diskuterades i det föregående exemplet med villkorlig formatering i Excel. Eftersom villkoret är underförstått behöver vi bara kärnfunktionen WEEKDAY utan IF-omslaget.
Till höjdpunktshelger (lördag och söndag):
=WEEKDAY($A2, 2)<6
Till lyfta fram arbetsdagar (måndag - fredag):
=WEEKDAY($A2, 2)>5
Där A2 är den övre vänstra cellen i det valda intervallet.
Stegen för att konfigurera regeln för villkorlig formatering är följande:
- Välj listan med datum (A2:A15 i vårt fall).
- På den Hem på fliken Stilar grupp, klicka på Villkorlig formatering > Ny regel .
- I Ny formateringsregel dialogrutan, välj Använd en formel för att bestämma vilka celler som ska formateras .
- I Formatera värden där den här formeln är sant, ange den ovannämnda formeln för helger eller vardagar.
- Klicka på Format och välj önskat format.
- Klicka på OK två gånger för att spara ändringarna och stänga dialogrutorna.
Detaljerad information om varje steg finns i Så här ställer du in villkorlig formatering med formler.
Resultatet ser ganska bra ut, eller hur?
Hur du räknar vardagar och helger i Excel
Om du vill få fram antalet veckodagar eller helger i listan med datum kan du använda funktionen WEEKDAY i kombination med SUM. Exempel:
Till räkna helger , formeln i D3 är:
=SUM(--(VECKDAG(A3:A20, 2)>5))
Till räkna vardagar , formeln i D4 har följande form:
=SUMMA(--(VECKDAG(A3:A20, 2)<6))
I Excel 365 och Excel 2021 som hanterar matriser automatiskt fungerar detta som en vanlig formel, vilket visas i skärmdumpen nedan. I Excel 2019 och tidigare trycker du på Ctrl + Shift + Enter för att göra det till en matrisformel.
Hur dessa formler fungerar:
Funktionen WEEKDAY med return_type satt till 2 returnerar ett dagnummer från 1 (mån) till 7 (sön) för varje datum i intervallet A3:A20. Det logiska uttrycket kontrollerar om de returnerade siffrorna är större än 5 (för helger) eller mindre än 6 (för vardagar). Resultatet av denna operation är en matris med TRUE- och FALSE-värden.
Den dubbla negationen (--) tvingar de logiska värdena till 1 och 0. SUM-funktionen adderar dem. Eftersom 1 (TRUE) representerar de dagar som ska räknas och 0 (FALSE) de dagar som ska ignoreras, får du det önskade resultatet.
Tips. För att beräkna vardagar mellan två datum använder du funktionen NETWORKDAYS eller NETWORKDAYS.INTL.
Om vardag då, om lördag eller söndag då
Slutligen ska vi diskutera ett lite mer specifikt fall som visar hur man bestämmer veckodagen, och om det är lördag eller söndag ska man göra något, om det är en vardag ska man göra något annat.
IF(WEEKDAY( cell , 2)>5, if_weekend_then , if_weekday_then )Anta att du beräknar betalningar för anställda som har gjort extra arbete på sina lediga dagar, så du måste tillämpa olika betalningssatser för arbetsdagar och helger. Detta kan göras med följande IF-anvisning:
- I logisk_test argumentet, inbäddar funktionen WEEKDAY som kontrollerar om en viss dag är en arbetsdag eller en helg.
- I value_if_true argument, multiplicera antalet arbetstimmar med helgtaxan (G4).
- I value_if_false argument, multiplicera antalet arbetstimmar med arbetsdagssatsen (G3).
Den fullständiga formeln i D3 har följande form:
=IF(WEEKDAY(B3, 2)>5, C3*$G$4, C3*$G$3)
För att formeln ska kunna kopieras korrekt till cellerna nedan måste du se till att låsa adresserna till kurscellerna med $-tecknet (t.ex. $G$4).
Funktionen WEEKDAY fungerar inte
I allmänhet finns det två vanliga fel som en WEEKDAY-formel kan ge upphov till:
Felet #VALUE! uppstår om antingen:
- Serienummer eller . return_type är icke-numerisk.
- Serienummer ligger utanför det datumintervall som stöds (1900 till 9999).
Felet #NUM! uppstår när return_type ligger utanför det tillåtna intervallet (1-3 eller 11-17).
Så här använder du funktionen WEEKDAY i Excel för att manipulera veckodagar. I nästa artikel kommer vi att utforska Excel-funktioner för att hantera större tidsenheter som veckor, månader och år. Håll ögonen öppna och tack för att du läste!
Arbetsbok för övning för nedladdning
Formeln WEEKDAY i Excel - exempel (.xlsx-fil)