Innehållsförteckning
Om du besöker den här bloggen regelbundet har du säkert lagt märke till några artiklar om olika aspekter av villkorlig formatering i Excel. Nu ska vi utnyttja denna kunskap och skapa kalkylblad som skiljer mellan vardagar och helger, markerar helgdagar och visar en kommande deadline eller försening. Med andra ord ska vi tillämpa villkorlig formatering i Excel på datum.
Om du har grundläggande kunskaper om Excel-formler är du troligen bekant med vissa datum- och tidsfunktioner som NU, DAG, DATE, WEEKDAY etc. I den här handledningen kommer vi att ta den här funktionen ett steg längre för att formatera Excel-datum på villkor på det sätt du vill.
Excel villkorlig formatering för datum (inbyggda regler)
Microsoft Excel erbjuder 10 alternativ för att formatera valda celler baserat på det aktuella datumet.
- För att tillämpa formateringen går du helt enkelt till Hem flik> Villkorlig formatering> Markera cellregler och välj Ett datum som inträffar .
- Välj ett av följande alternativ datumalternativ från rullgardinslistan i den vänstra delen av fönstret, från förra månaden till nästa månad.
- Slutligen kan du välja ett av de fördefinierade formaten eller skapa ett eget format genom att välja olika alternativ på Typsnitt , Gränsen och Fyll på flikar. Om Excel standardpalett inte räcker till kan du alltid klicka på fliken Fler färger... knapp.
- Klicka på OK och njut av resultatet! : )
Det här snabba och enkla sättet har dock två betydande begränsningar - 1) det fungerar bara för markerade celler och 2) det villkorliga formatet tillämpas alltid baserat på det aktuella datumet.
Formler för villkorlig formatering av datum i Excel
Om du vill markera celler eller hela rader baserat på ett datum i en annan cell eller skapa regler för större tidsintervall (dvs. mer än en månad från det aktuella datumet) måste du skapa en egen regel för villkorlig formatering baserad på en formel. Nedan hittar du några exempel på mina favoriter bland Excels villkorliga format för datum.
Hur man markerar helger i Excel
Tyvärr har Microsoft Excel inte en inbyggd kalender som liknar Outlooks. Nåväl, låt oss se hur du kan skapa din egen automatiserade kalender med ganska liten ansträngning.
När du utformar din Excel-kalender kan du använda funktionen =DATE(year,month,date) för att visa veckodagarna. Skriv bara in året och månadens nummer någonstans i kalkylbladet och referera till dessa celler i formeln. Du kan förstås skriva in siffrorna direkt i formeln, men det är inte särskilt effektivt eftersom du måste justera formeln för varje månad.
Skärmbilden nedan visar hur DATE-funktionen fungerar. Jag använde formeln =DATE($B$2,$B$1,B$4)
som kopieras över rad 5.
Tips: Om du vill visa endast veckodagarna som du ser i bilden ovan markerar du cellerna med formeln (rad 5 i vårt fall), högerklickar och väljer Formatera celler.> Antal> Anpassad Från rullgardinslistan under Typ Välj antingen ddddd eller . ddd för att visa hela dagsnamn respektive förkortade namn.
Din Excel-kalender är nästan klar och du behöver bara ändra färgen på helgerna. Naturligtvis kommer du inte att färga cellerna manuellt. Vi låter Excel formatera helgerna automatiskt genom att skapa en villkorlig formateringsregel baserad på VECKODAG formel.
- Du börjar med att välja din Excel-kalender där du vill skugga helgerna. I vårt fall är det intervallet $B$4:$AE$10. Var noga med att börja urvalet med Första datumkolumnen - Kolumn B i det här exemplet.
- På den Hem klickar du på Meny för villkorlig formatering> Ny regel .
- Skapa en ny regel för villkorlig formatering baserad på en formel som förklaras i guiden ovan.
- I " Formatera värden där denna formel är sann" och anger följande formel WEEKDAY som bestämmer vilka celler som är lördagar och söndagar:
=WEEKDAY(B$5,2)>5
- Klicka på Format... knappen och ställ in ditt anpassade format genom att växla mellan Typsnitt , Gränsen och Fyll på flikar och leka med olika formateringsalternativ. När du är klar klickar du på OK för att förhandsgranska regeln.
Låt mig nu kortfattat förklara WEEKDAY(serial_number,[return_type])
så att du snabbt kan anpassa den till dina egna kalkylblad.
-
serienummer
Parametern representerar det datum som du försöker hitta. Du anger en referens till den första cellen med ett datum, B$5 i vårt fall. -
[return_type]
bestämmer veckotypen (inom hakparentes är den valfri). Du anger 2 som returtyp för en vecka som börjar från måndag (1) till söndag (7). Du hittar en fullständig lista över tillgängliga returtyper här. - Slutligen skriver du>5 för att markera endast lördagar (6) och söndagar (7).
Skärmbilden nedan visar resultatet i Excel 2013 - helgerna är markerade i rödaktig färg.
Tips:
- Om du har icke-standardiserade helger i ditt företag, t.ex. fredagar och lördagar, måste du ändra formeln så att den börjar räknas från söndag (1) och markerar dag 6 (fredag) och 7 (lördag).
WEEKDAY(B$5,1)>5
. - Om du skapar en horisontell kalender (landskap) använder du en relativ kolumn (utan $) och en absolut rad (med $) i en cellreferens eftersom du ska låsa radreferensen - i exemplet ovan är det rad 5, så vi skrev in B$5. Men om du skapar en kalender i vertikal riktning ska du göra tvärtom, dvs. använda en absolut kolumn och en relativ rad, t.ex. $B5 som du kan se iskärmbilden nedan:
Hur man markerar helgdagar i Excel
För att förbättra din Excel-kalender ytterligare kan du också skugga helgdagar. För att göra det måste du lista de helgdagar du vill lyfta fram i samma eller ett annat kalkylblad.
Jag har till exempel lagt till följande helgdagar i kolumn A ($A$14:$A$17). Naturligtvis är inte alla helgdagar riktiga helgdagar, men de räcker som demonstration : )
Återigen öppnar du Villkorlig formatering > Ny regel . När det gäller helgdagar ska du använda antingen MATCH eller . COUNTIF funktion:
=COUNTIF($A$14:$A$17,B$5)>0
=MATCH(B$5,$A$14:$A$17,0)
Om du har valt en annan färg för helgdagar måste du flytta regeln för helgdagar till toppen av regellistan via Villkorlig formatering> Hantera regler...
Följande bild visar resultatet i Excel 2013:
Formatera en cell villkorligt när ett värde ändras till ett datum
Det är inget stort problem att villkorligt formatera en cell när ett datum läggs till i den cellen eller någon annan cell i samma rad, så länge ingen annan typ av värde tillåts. I det här fallet kan du helt enkelt använda en formel för att markera icke-blankor, enligt beskrivningen i Excel-formler med villkor för blanketter och icke-blankor. Men vad händer om dessa celler redan har vissa värden, t.ex. text, och du vill ändrabakgrundsfärg när texten ändras till ett datum?
Uppgiften kan låta lite komplicerad, men lösningen är mycket enkel.
- Först måste du bestämma formatkoden för datumet. Här är några exempel:
- D1: dd-mmm-yy eller d-mmm-yy
- D2: dd-mmm eller d-mmm
- D3: mmm-yy
- D4: mm/dd/ååå eller m/d/ååå eller m/d/ååå h:mm
Du hittar en fullständig förteckning över datumkoder i den här artikeln.
- Välj en kolumn där du vill ändra färgen på cellerna eller hela tabellen om du vill markera rader.
- Skapa nu en regel för villkorlig formatering med en formel som liknar den här:
=CELL("format",$A2)="D1"
I formeln är A kolumnen med datum och D1 datumformatet.Om din tabell innehåller datum i två eller flera format använder du OR-operatorn, t.ex.
=OR(cell("format", $A2)="D1", cell("format",$A2)="D2", cell("format", $A2)="D3")
Skärmbilden nedan visar resultatet av en sådan regel för villkorlig formatering av datum.
Hur man markerar rader baserat på ett visst datum i en viss kolumn
Anta att du har ett stort Excel-kalkylblad som innehåller två datumkolumner (B och C). Du vill markera varje rad som har ett visst datum, till exempel 13-maj-14, i kolumn C.
Om du vill tillämpa Excel villkorlig formatering på ett visst datum måste du hitta dess numeriskt värde Som du säkert vet lagrar Microsoft Excel datum som löpande serienummer, med början den 1 januari 1900. 1 januari 1900 lagras alltså som 1, 2 januari 1900 som 2 och 13 maj 14 som 41772.
Om du vill hitta datumets nummer högerklickar du på cellen, väljer Formatera celler> Antal och väljer den Allmänt format. Skriv ner det nummer du ser och klicka på Avbryt eftersom du egentligen inte vill ändra datumformatet.
Det var faktiskt den största delen av arbetet och nu behöver du bara skapa en villkorlig formateringsregel för hela tabellen med den här mycket enkla formeln: =$C2=41772
Formeln förutsätter att tabellen har rubriker och att rad 2 är den första raden med data.
Ett alternativt sätt är att använda DATEVALUE formel som omvandlar datumet till det nummerformat som det är lagrat i, t.ex. =$C2=DATEVALUE("5/13/2014")
Oavsett vilken formel du använder har den samma effekt:
Formatera datum i Excel på villkor baserat på det aktuella datumet
Som du säkert vet erbjuder Microsoft Excel en I DAG()
Här är bara några exempel på hur du kan använda den för att formatera datum på villkor i Excel.
Exempel 1. Markera datum som är lika med, större än eller mindre än idag.
Om du vill formatera celler eller hela rader på villkor baserat på dagens datum använder du funktionen TODAY på följande sätt:
Lika mycket som i dag: =$B2=TODAY()
Större än i dag: =$B2>TODAY()
Mindre än i dag: =$B2
Skärmbilden nedan visar hur ovanstående regler fungerar. Observera att i skrivande stund var Dagen i dag den 12 juni 2014.
Exempel 2. Formatera datum på villkor i Excel baserat på flera villkor.
På samma sätt kan du använda funktionen TODAY i kombination med andra Excel-funktioner för att hantera mer komplexa scenarier. Du kanske till exempel vill att din Excel-formel för villkorlig formatering av datum ska färga datumet Faktura kolumnen när den Leveransdatum är lika med eller större än idag MEN du vill att formateringen ska försvinna när du anger fakturanumret.
För den här uppgiften behöver du en extra kolumn med följande formel (där E är din Leverans kolumnen och F den Faktura kolumn):
=IF(E2>=TODAY(),IF(F2="", 1, 0), 0)
Om leveransdatumet är större än eller lika med det aktuella datumet och det inte finns något nummer i kolumnen Faktura ger formeln 1, annars 0.
Därefter skapar du en enkel regel för villkorlig formatering för Faktura kolumnen med formeln =$G2=1
där G är din extra kolumn. Du kommer naturligtvis att kunna dölja denna kolumn senare.
Exempel 3. Lyft fram kommande datum och förseningar
Anta att du har ett projektschema i Excel som listar uppgifter, deras startdatum och varaktighet. Du vill att slutdatumet för varje uppgift ska beräknas automatiskt. En ytterligare utmaning är att formeln även ska ta hänsyn till helger. Om startdatumet till exempel är 13 juni 2014 och antalet arbetsdagar (varaktighet) är 2, ska slutdatumet vara 17 juni 2014,eftersom den 14 och 15 juni är lördag och söndag.
För att göra detta använder vi WORKDAY.INTL(start_datum,dagar,[helg],[helgdagar])
funktion, närmare bestämt =WORKDAY.INTL(B2,C2,1)
.
I formeln anger vi 1 som den tredje parametern eftersom lördag och söndag anges som helgdagar. Du kan använda ett annat värde om dina helger är olika, till exempel fre och lördag. En fullständig lista över helgvärdena finns här. Du kan också använda den fjärde parametern [helgdagar], som är en uppsättning datum (cellintervall) som ska undantas från arbetsdagskalendern.
Slutligen kanske du vill markera rader beroende på hur långt bort tidsfristen är. Till exempel markerar de villkorliga formateringsreglerna baserade på följande två formler kommande respektive nyligen inträffade slutdatum:
=AND($D2-TODAY()>=0,$D2-TODAY()<=7)
- markera alla rader där slutdatumet (kolumn D) ligger inom de kommande 7 dagarna Den här formeln är mycket praktisk när det gäller att hålla reda på kommande utgångsdatum eller betalningar.=AND(TODAY()-$D2>=0,TODAY()-$D2<=7)
- markera alla rader där slutdatumet (kolumn D) ligger inom de senaste 7 dagarna Du kan använda den här formeln för att spåra de senaste försenade betalningarna och andra förseningar.
Här är ytterligare några exempel på formler som kan tillämpas på tabellen ovan:
=$D2
=$D2>TODAY()
- markerar alla framtida datum (dvs. datum som är större än det aktuella datumet). Du kan använda den för att markera kommande händelser.
Naturligtvis kan det finnas oändliga variationer av ovanstående formler, beroende på din specifika uppgift, till exempel:
=$D2-TODAY()>=6
- markerar datum som inträffar om 6 eller fler dagar.
=$D2=TODAY()-14
- markerar datum som inträffade för exakt två veckor sedan.
Hur du markerar datum inom ett datumintervall
Om du har en lång lista med datum i arbetsbladet kan du också vilja markera de celler eller rader som ligger inom ett visst datumintervall, dvs. markera alla datum som ligger mellan två givna datum.
Du kan utföra den här uppgiften genom att använda funktionen TODAY() igen. Du måste bara konstruera lite mer avancerade formler som visas i exemplen nedan.
Formler för att markera tidigare datum
- För mer än 30 dagar sedan:
=TODAY()-$A2>30
- Från 30 till och med 15 dagar sedan:
=AND(TODAY()-$A2>=15, TODAY()-$A2<=30)
- Mindre än 15 dagar sedan:
=AND(TODAY()-$A2>=1, TODAY()-$A2<15)
Det aktuella datumet och eventuella framtida datum är inte färgade.
Formler för att markera framtida datum
- Kommer att inträffa om mer än 30 dagar:
=$A2-TODAY()>30
- Inom 30 till 15 dagar:
=AND($A2-TODAY()>=15, $A2-TODAY()<=30)
- På mindre än 15 dagar:
=AND($A2-TODAY()>=1, $A2-TODAY()<15)
Det aktuella datumet och eventuella tidigare datum är inte färgade.
Hur man skuggar luckor och tidsintervall
I det här sista exemplet ska vi använda ännu en Excel-datafunktion - DATEDIF(start_datum, slut_datum, intervall)
Den här funktionen beräknar skillnaden mellan två datum baserat på det angivna intervallet. Den skiljer sig från alla andra funktioner som vi har diskuterat i den här handledningen genom att den låter dig ignorera månader eller år och endast beräkna skillnaden mellan dagar eller månader, beroende på vad du väljer.
Om du inte förstår hur detta skulle kunna fungera för dig kan du tänka på ett annat sätt... Anta att du har en lista över dina familjemedlemmars och vänners födelsedagar. Skulle du vilja veta hur många dagar det är kvar till deras nästa födelsedag? Dessutom, hur många dagar är det kvar till din bröllopsdag och andra händelser som du inte vill missa? Enkelt!
Formeln du behöver är följande (där A är din Datum kolumn):
=DATEDIF(TODAY(), DATE((YEAR(TODAY())+1), MONTH($A2), DAY($A2)), "yd")
Intervalltypen "yd" i slutet av formeln används för att ignorera årtal och endast beräkna skillnaden mellan dagarna. För en fullständig lista över tillgängliga intervalltyper, se här.
Tips: Om du råkar glömma eller förlägga den komplicerade formeln kan du använda den här enkla formeln i stället: =365-DATEDIF($A2,TODAY(), "yd")
Det ger exakt samma resultat, kom bara ihåg att ersätta 365 med 366 i skottår : )
Och nu ska vi skapa en regel för villkorlig formatering i Excel för att färga olika luckor i olika färger. I det här fallet är det mer logiskt att använda Excel-färgskalor än att skapa en separat regel för varje period.
Skärmdumpen nedan visar resultatet i Excel - en gradient med tre färger med nyanser från grönt till rött och gult.
"Dagar till nästa födelsedag" Excel-webbapplikation
Vi har skapat denna Excel-webbapplikation för att visa dig ovanstående formel i praktiken. Ange bara dina händelser i första kolumnen och ändra motsvarande datum i andra kolumnen för att experimentera med resultatet.
Observera: För att kunna se den inbäddade arbetsboken måste du tillåta cookies för marknadsföring.
Om du är nyfiken på hur man skapar sådana interaktiva Excel-kalkylblad kan du läsa den här artikeln om hur man gör webbaserade Excel-kalkylblad.
Förhoppningsvis har åtminstone ett av de Excel-format för datum som diskuteras i den här artikeln visat sig vara användbart för dig. Om du letar efter en lösning för en annan uppgift är du välkommen att skriva en kommentar. Tack för att du läste!