Innholdsfortegnelse
Hvis du er en vanlig besøkende på denne bloggen, har du sannsynligvis lagt merke til noen få artikler som dekker ulike aspekter av Excel betinget formatering. Og nå skal vi utnytte denne kunnskapen og lage regneark som skiller mellom ukedager og helger, fremheve helligdager og vise en kommende frist eller forsinkelse. Med andre ord, vi skal bruke Excel betinget formatering på datoer.
Hvis du har noen grunnleggende kunnskaper om Excel-formler, så er du mest sannsynlig kjent med noen av dato- og klokkeslettfunksjoner som NÅ, I DAG, DATO, UKEDAG, osv. I denne opplæringen skal vi ta denne funksjonaliteten et skritt videre for å betinget formatere Excel-datoer på den måten du ønsker.
Excel betinget formatering for datoer (innebygde regler)
Microsoft Excel har 10 alternativer for å formatere valgte celler basert på gjeldende dato.
- For å bruke formateringen går du ganske enkelt til Hjem -fanen > Betinget formatering > Marker Cell Rules og velg En dato som forekommer .
- Velg ett av datoalternativene fra rullegardinmenyen liste i venstre del av vinduet, fra forrige måned til neste måned.
- Til slutt velger du et av de forhåndsdefinerte formatene eller konfigurerer det egendefinerte formatet ved å velge forskjellige alternativer på Fanene Font , Border og Fill . Hvis Excel-standardpaletten ikke gjør detforsinkelser.
- For mer enn 30 dager siden :
=TODAY()-$A2>30
- Fra 30 til 15 dager siden, inklusive:
=AND(TODAY()-$A2>=15, TODAY()-$A2<=30)
- For mindre enn 15 dager siden:
=AND(TODAY()-$A2>=1, TODAY()-$A2<15)
- Vil skje om mer enn 30 dager fra nå:
=$A2-TODAY()>30
- Om 30 til 15 dager, inklusive:
=AND($A2-TODAY()>=15, $A2-TODAY()<=30)
- Om mindre enn 15 dager:
=AND($A2-TODAY()>=1, $A2-TODAY()<15)
- Klikk OK og nyt resultatet! : )
Her er noen flere formeleksempler som kan brukes på tabellen ovenfor:
=$D2
=$D2>TODAY()
- fremhever alle fremtidige datoer (dvs. datoer som er større enn gjeldende dato). Du kan bruke den til å fremheve kommende arrangementer.
Selvfølgelig kan det være uendelige variasjoner av formlene ovenfor, avhengig av din spesifikke oppgave. For eksempel:
=$D2-TODAY()>=6
- fremhever datoer som inntreffer på 6 eller flere dager.
=$D2=TODAY()-14
- fremhever datoer som skjedde for nøyaktig 2 uker siden.
Hvordan fremheve datoer innenfor en dato område
Hvis du har en lang liste over datoer i regnearket ditt, kan det hende du også vil markere cellene eller radene som faller innenfor et bestemt datointervall, dvs. markere alle datoer som er mellom to gitte datoer.
Du kan utføre denne oppgaven ved å bruke TODAY()-funksjonen igjen. Du må bare konstruere litt mer forseggjorte formler som vist i eksemplene nedenfor.
Formler for å fremheve tidligere datoer
Gjeldende dato og eventuelle fremtidige datoer er ikke farget .
Formler for å fremheve fremtidige datoer
Gjeldende dato og eventuelle tidligere datoer er ikke farget.
Hvordanå skyggelegge hull og tidsintervaller
I dette siste eksempelet skal vi bruke enda en Excel-datofunksjon - DATEDIF(start_date, end_date, interval)
. Denne funksjonen beregner forskjellen mellom to datoer basert på det angitte intervallet. Den skiller seg fra alle andre funksjoner vi har diskutert i denne opplæringen på den måten at den lar deg ignorere måneder eller år og beregne forskjellen kun mellom dager eller måneder, avhengig av hva du velger.
Ser ikke hvordan dette kan fungere for deg? Tenk på det på en annen måte ... Tenk deg at du har en liste over bursdager til familiemedlemmer og venner. Vil du vite hvor mange dager det er til neste bursdag? Dessuten, hvor mange dager er det igjen til bryllupsdagen din og andre begivenheter du ikke vil gå glipp av? Enkelt!
Formelen du trenger er denne (der A er Dato -kolonnen):
=DATEDIF(TODAY(), DATE((YEAR(TODAY())+1), MONTH($A2), DAY($A2)), "yd")
"yd"-intervalltypen ved slutten av formelen brukes kun til å ignorere år og beregne forskjellen mellom dagene. For en fullstendig liste over tilgjengelige intervalltyper, se her.
Tips. Hvis du tilfeldigvis glemmer eller forlegger den komplekse formelen, kan du bruke denne enkle i stedet: =365-DATEDIF($A2,TODAY(),"yd")
. Den gir nøyaktig de samme resultatene, bare husk å erstatte 365 med 366 i skuddår: )
Og nå skal vi lage en Excel-betinget formateringsregel for å skyggelegge forskjellige hull i forskjellige farger. I dette tilfellet er det mer fornuftig å brukeExcel Color Scales i stedet for å lage en egen regel for hver periode.
Skjermbildet nedenfor viser resultatet i Excel - en gradient 3-fargeskala med nyanser fra grønt til rødt gjennom gult.
"Dager til neste bursdag" Excel Web App
Vi har laget denne Excel Web App for å vise deg formelen ovenfor i aksjon. Bare skriv inn hendelsene dine i 1. kolonne og endre de tilsvarende datoene i 2. kolonne for å eksperimentere med resultatet.
Merk. For å se den innebygde arbeidsboken, vennligst tillat markedsføringskapsler.
Hvis du er nysgjerrig på å vite hvordan du lager slike interaktive Excel-regneark, sjekk ut denne artikkelen om hvordan du lager nettbaserte Excel-regneark.
Forhåpentligvis har minst ett av de betingede Excel-formatene for datoer omtalt i denne artikkelen vist seg nyttig for deg. Hvis du leter etter en løsning på en annen oppgave, er du hjertelig velkommen til å legge inn en kommentar. Takk for at du leser!
Det er nok, du kan alltid klikke på Flere farger... -knappen.
Men denne raske og enkle måten har to betydelige begrensninger - 1) den fungerer kun for utvalgte celler og 2) det betingede formatet brukes alltid basert på gjeldende dato.
Excel betingede formateringsformler for datoer
Hvis du vil markere celler eller hele rader basert på en dato i en annen celle , eller lage regler for større tidsintervaller (dvs. mer enn en måned fra gjeldende dato), må du lage din egen betingede formateringsregel basert på en formel. Nedenfor finner du noen få eksempler på mine favoritt Excel-betingede formater for datoer.
Hvordan markere helger i Excel
Microsoft Excel har dessverre ikke en innebygd kalender som ligner på Outlooks. Vel, la oss se hvordan du kan lage din egen automatiserte kalender med ganske liten innsats.
Når du designer Excel-kalenderen din, kan du bruke funksjonen =DATE(år,måned,dato) for å vise ukedagene . Bare skriv inn året og månedens nummer et sted i regnearket og referer til disse cellene i formelen. Selvfølgelig kan du skrive tallene direkte i formelen, men dette er ikke en veldig effektiv tilnærming fordi du må justere formelen for hver måned.
Skjermbildet nedenfor viserDATE-funksjonen i aksjon. Jeg brukte formelen =DATE($B$2,$B$1,B$4)
som er kopiert over rad 5.
Tips. Hvis du bare vil vise ukedagene slik du ser i bildet ovenfor, velg cellene med formelen (rad 5 i vårt tilfelle), høyreklikk og velg Formater celler...> Nummer > Egendefinert . Fra rullegardinlisten under Type velger du enten dddd eller ddd for å vise henholdsvis heldagsnavn eller forkortede navn.
Excel-kalenderen din er nesten ferdig, og du trenger bare å endre fargen på helgene. Naturligvis skal du ikke fargelegge cellene manuelt. Vi vil la Excel formatere helgene automatisk ved å lage en betinget formateringsregel basert på WEEKDAY -formelen.
- Du starter med å velge Excel-kalenderen din der du vil skyggelegge helgene . I vårt tilfelle er det området $B$4:$AE$10. Sørg for å starte utvalget med 1. datokolonne - Kolonne B i dette eksemplet.
- På kategorien Hjem klikker du på menyen Betinget formatering > Ny regel .
- Opprett en ny betinget formateringsregel basert på en formel som forklart i veiledningen ovenfor.
- I " Formater verdier der denne formelen er sann" -boksen, skriv inn følgende UKEDAGS-formel som vil avgjøre hvilke celler som er lørdager og søndager:
=WEEKDAY(B$5,2)>5
- Klikk Format... -knappen og konfigurer det egendefinerte formatet ved å byttemellom kategoriene Font , Border og Fill og lek med forskjellige formateringsalternativer. Når du er ferdig, klikker du på OK -knappen for å forhåndsvise regelen.
Nå, la meg kort forklare WEEKDAY(serial_number,[return_type])
-formelen slik at du raskt kan juster den for dine egne regneark.
-
serial_number
-parameteren representerer datoen du prøver å finne. Du skriver inn en referanse til din første celle med en dato, B$5 i vårt tilfelle. -
[return_type]
-parameteren bestemmer uketypen (firkantede parenteser betyr at den er valgfri). Du oppgir 2 som returtype for en uke fra mandag (1) til søndag (7). Du finner hele listen over tilgjengelige returtyper her. - Til slutt skriver du >5 for å markere bare lørdager (6) og søndager (7).
Skjermbildet nedenfor demonstrerer resultatet i Excel 2013 - helgene er uthevet i den rødlige fargen.
Tips:
- Hvis du ha ikke-standard helger i din bedrift, f.eks. På fredager og lørdager må du justere formelen slik at den begynner å telle fra søndag (1) og fremheve dag 6 (fredag) og 7 (lørdag) -
WEEKDAY(B$5,1)>5
. - Hvis du oppretter en horisontal ( landskap) kalender, bruk en relativ kolonne (uten $) og absolutt rad (med $) i en cellereferanse fordi du bør låse referansen til raden - i eksemplet ovenfor er det rad 5, så vi skrev inn B$5. Men hvis du designer enkalender i vertikal orientering, bør du gjøre det motsatte, dvs. bruke en absolutt kolonne og relativ rad, f.eks. $B5 som du kan se på skjermbildet nedenfor:
Hvordan markere helligdager i Excel
For å forbedre Excel-kalenderen ytterligere, kan du skygge helligdager også. For å gjøre det, må du liste opp høytidene du vil fremheve i det samme eller et annet regneark.
Jeg har for eksempel lagt til følgende helligdager i kolonne A ($A$14:$A$17 ). Selvfølgelig er ikke alle ekte helligdager, men de vil gjøre det for demonstrasjonsformål: )
Igjen åpner du Betinget formatering > Ny regel . Når det gjelder helligdager, skal du bruke funksjonen MATCH eller COUNTIF :
-
=COUNTIF($A$14:$A$17,B$5)>0
-
=MATCH(B$5,$A$14:$A$17,0)
Merk. Hvis du har valgt en annen farge for helligdager, må du flytte helligdagsregelen til toppen av regellisten via Betinget formatering > Administrer regler...
Følgende bilde viser resultatet i Excel 2013:
Formater en celle med vilkår når en verdi endres til en dato
Det er ikke et stort problem å betinget formatere en celle når en dato legges til den cellen eller en annen celle i samme rad så lenge ingen annen verditype er tillatt. I dette tilfellet kan du ganske enkelt bruke en formel for å markere ikke-blanke felter, som beskrevet i Excel betingede formler forblanks og ikke-blanks. Men hva om disse cellene allerede har noen verdier, f.eks. tekst, og du vil endre bakgrunnsfargen når tekst endres til en dato?
Oppgaven høres kanskje litt intrikat ut, men løsningen er veldig enkel.
- Først av , må du bestemme formatkoden for datoen. Her er bare noen få eksempler:
- D1: dd-mmm-åå eller d-mmm-åå
- D2: dd-mmm eller d-mmm
- D3: mmm -åå
- D4: mm/dd/åå eller m/d/åå eller m/d/åå h:mm
Du finner den komplette listen over datokoder i denne artikkel.
- Velg en kolonne der du vil endre fargen på cellene eller hele tabellen i tilfelle du vil utheve rader.
- Og opprett nå en betinget formateringsregel ved å bruke en formel som ligner på denne:
=CELL("format",$A2)="D1"
. I formelen er A kolonnen med datoer og D1 er datoformatet.Hvis tabellen inneholder datoer i 2 eller flere formater, bruk OR-operatoren, f.eks.
=OR(cell("format", $A2)="D1", cell("format",$A2)="D2", cell("format", $A2)="D3")
Skjermbildet nedenfor viser resultatet av en slik betinget formateringsregel for datoer.
Hvordan markere rader basert på en bestemt dato i en bestemt kolonne
Anta at du har et stort Excel-regneark som inneholder to datokolonner (B og C). Du vil markere hver rad som har en bestemt dato, for eksempel 13. mai-14, i kolonne C.
For å bruke Excel betinget formatering på en bestemt dato, må du finne dens numeriske verdi først. Som du sannsynligvisvet, Microsoft Excel lagrer datoer som sekvensielle serienumre, fra og med 1. januar 1900. Så 1-jan-1900 er lagret som 1, 2-jan-1900 er lagret som 2... og 13-mai-14 som 41772.
For å finne datoens nummer, høyreklikk på cellen, velg Formater celler > Nummer og velg Generelt -formatet. Skriv ned tallet du ser og klikk Avbryt fordi du egentlig ikke vil endre datoformatet.
Det var faktisk hoveddelen av fungerer og nå trenger du bare å lage en betinget formateringsregel for hele tabellen med denne veldig enkle formelen: =$C2=41772
. Formelen innebærer at tabellen din har overskrifter og rad 2 er den første raden med data.
Et alternativ måten er å bruke DATOVERDI -formelen som konverterer datoen til tallformatet som den er lagret, f.eks. =$C2=DATEVALUE("5/13/2014")
Uansett hvilken formel du bruker, vil den ha samme effekt:
Formater datoer i Excel basert på gjeldende dato
Som du sikkert vet tilbyr Microsoft Excel TODAY()
-funksjonene for ulike beregninger basert på gjeldende dato. Her er bare noen få eksempler på hvordan du kan bruke det til å betinget formatere datoer i Excel.
Eksempel 1. Fremhev datoer lik, større enn eller mindre enn i dag
For å betinget formatere celler eller hele rader basert på dagens dato, bruker du TODAY-funksjonen på følgende måte:
Lik med i dag: =$B2=TODAY()
Større enn i dag: =$B2>TODAY()
Mindre enn i dag: =$B2
Skjermbildet nedenfor viser reglene ovenfor i aksjon. Vær oppmerksom på at I DAG var skrivende stund 12. juni 2014.
Eksempel 2. Formater datoer i Excel basert på flere forhold
I På lignende måte kan du bruke TODAY-funksjonen i kombinasjon med andre Excel-funksjoner for å håndtere mer komplekse scenarier. For eksempel vil du kanskje at Excel-formelen for betinget formateringsdato skal farge kolonnen Faktura når Leveringsdato er lik eller større enn i dag, MEN du vil at formateringen skal forsvinne når du går inn fakturanummeret.
For denne oppgaven trenger du en ekstra kolonne med følgende formel (der E er kolonnen Levering og F kolonnen Faktura ):
=IF(E2>=TODAY(),IF(F2="", 1, 0), 0)
Hvis leveringsdatoen er større enn eller lik gjeldende dato og det ikke er noe tall i Faktura-kolonnen, returnerer formelen 1, ellers er den 0.
Deretter oppretter du en enkel betinget formateringsregel for Faktura -kolonnen med formelen =$G2=1
der G er tilleggskolonnen. Selvfølgelig vil du kunne skjule denne kolonnen senere.
Eksempel 3. Fremhev kommende datoer og forsinkelser
Anta at du har en prosjektplan i Excel som viser oppgaver, deres startdatoer og varighet. Det du ønsker er å ha sluttendato for hver oppgave beregnet automatisk. En ekstra utfordring er at formelen også bør vurdere helgene. Hvis for eksempel startdatoen er 13. juni 2014 og antall dager med arbeid (varighet) er 2, bør sluttdatoen være 17. juni 2014, fordi 14. juni og 15. juni er lørdag og søndag .
For å gjøre dette vil vi bruke WORKDAY.INTL(start_date,days,[weekend],[holidays])
-funksjonen, nærmere bestemt =WORKDAY.INTL(B2,C2,1)
.
I formelen legger vi inn 1 som den tredje parameteren siden den angir lørdag og søndag som helligdager. Du kan bruke en annen verdi hvis helgene dine er forskjellige, for eksempel fre og lør. Den fullstendige listen over helgeverdiene er tilgjengelig her. Eventuelt kan du også bruke den fjerde parameteren [helligdager], som er et sett med datoer (celleområde) som skal ekskluderes fra arbeidsdagskalenderen.
Og til slutt vil du kanskje markere rader avhengig av på hvor langt unna fristen er. For eksempel fremhever reglene for betinget formatering basert på følgende to formler henholdsvis kommende og nylige sluttdatoer:
-
=AND($D2-TODAY()>=0,$D2-TODAY()<=7)
- marker alle rader der sluttdatoen (kolonne D) er innenfor neste 7 dager . Denne formelen er veldig nyttig når det gjelder å spore kommende utløpsdatoer eller betalinger. -
=AND(TODAY()-$D2>=0,TODAY()-$D2<=7)
– marker alle rader der sluttdatoen (kolonne D) er innenfor de siste 7 dagene . Du kan bruke denne formelen til å spore de siste forfalte betalingene og annet