Indholdsfortegnelse
Vejledningen viser, hvordan man laver brugerdefinerede datavalideringregler i Excel. Du finder et par eksempler på E xcel-formler til datavalidering, der kun tillader tal eller tekstværdier i bestemte celler eller kun tekst, der begynder med bestemte tegn, tillader unikke data, der forhindrer dubletter m.m.
I gårsdagens tutorial begyndte vi at se på Excel-datavalidering - hvad formålet er, hvordan den fungerer, og hvordan du bruger indbyggede regler til at validere data i dine regneark. I dag vil vi gå et skridt videre og tale om de praktiske aspekter af brugerdefineret datavalidering i Excel samt eksperimentere med en håndfuld forskellige valideringsformler.
Sådan oprettes brugerdefineret datavalidering med formel
Microsoft Excel har flere indbyggede datavalideringsregler for tal, datoer og tekst, men de dækker kun de mest grundlæggende scenarier. Hvis du vil validere celler med dine egne kriterier, skal du oprette en brugerdefineret valideringsregel baseret på en formel. Sådan gør du:
- Vælg en eller flere celler, der skal valideres.
- Åbn dialogboksen Datavalidering. Klik i den forbindelse på Validering af data på knappen på Data under fanen, i fanen Dataværktøjer gruppe eller tryk på tastekonsekvensen Alt> D> L (hver tast skal trykkes separat).
- På den Indstillinger i fanen i Validering af data dialogvinduet, skal du vælge Tilpasset i den Tillad feltet, og indtast din formel til datavalidering i feltet Formel boks.
- Klik på OK .
Du kan eventuelt tilføje en brugerdefineret indtastningsmeddelelse og en fejlmeddelelse, der vises, når brugeren vælger den validerede celle eller indtaster ugyldige data.
Nedenfor finder du et par eksempler på brugerdefinerede valideringsregler for forskellige datatyper.
Bemærk. Alle Excel-regler for datavalidering, både indbyggede og brugerdefinerede, kontrollerer kun nye data, der indtastes i en celle efter oprettelsen af reglen. Kopierede data valideres ikke, og det samme gælder de data, der blev indtastet i cellen, før reglen blev oprettet. Hvis du vil finde eksisterende indtastninger, der ikke opfylder dine datavalideringskriterier, skal du bruge Cirkel ugyldige data funktion som vist i Sådan finder du ugyldige data i Excel.
Excel-datavalidering for kun at tillade tal
Overraskende nok er der ingen af de indbyggede Excel-regler for datavalidering, der tager højde for en meget typisk situation, hvor du skal begrænse brugerne til kun at indtaste tal i bestemte celler. Men det kan nemt gøres med en brugerdefineret datavalideringsformel baseret på funktionen ISNUMBER, som f.eks. denne:
=ISNUMBER(C2)
Hvor C2 er den øverste celle i det område, du vil validere.
Bemærk. Funktionen ISNUMBER tillader alle numeriske værdier i de validerede celler, herunder hele tal, decimaler, brøker samt datoer og tidspunkter, som også er tal i Excel.
Excel-datavalidering til kun at tillade tekst
Hvis du ønsker det modsatte - at kun tillade tekstindtastninger i et givet område af celler - skal du f.eks. oprette en brugerdefineret regel med funktionen ISTEXT:
=ISTEXT(D2)
Hvor D2 er den øverste celle i det valgte område.
Tillad tekst, der begynder med et eller flere bestemte tegn
Hvis alle værdier i et bestemt område skal begynde med et bestemt tegn eller en bestemt delstreng, skal du udføre Excel-datavalidering baseret på funktionen COUNTIF med et jokertegn:
COUNTIF( celle ," tekst *")Hvis du f.eks. vil sikre, at alle ordre-id'er i kolonne A begynder med præfikset "AA-", "aa-", "Aa-" eller "aA-" (uden hensyn til store og små bogstaver), skal du definere en brugerdefineret regel med denne formel til datavalidering:
=COUNTIF(A2, "aa-*")
Valideringsformel med OR-logik (flere kriterier)
Hvis der er 2 eller flere gyldige præfikser, skal du tilføje flere COUNTIF-funktioner, så din Excel-datavalideringsregel fungerer med OR-logikken:
=COUNTIF(A2,"aa-*")+COUNTIF(A2,"bb-*")
Valideringsformel med hensyn til store og små bogstaver
Hvis skiftet mellem bogstaver er vigtigt, skal du bruge EXACT sammen med funktionen LEFT til at oprette en formel til validering af poster, der begynder med en bestemt tekst, og som tager hensyn til skiftet mellem store og små bogstaver:
EXACT(LEFT( celle , number_of_chars ), tekst )Hvis du f.eks. kun vil tillade de ordre-id'er, der begynder med "AA-" (hverken "aa-" eller "Aa-" er tilladt), skal du bruge denne formel:
=EKSPEKT(LEFT(A2,3), "AA-")
I ovenstående formel uddrager LEFT-funktionen de første 3 tegn fra celle A2, og EXACT foretager en sammenligning mellem store og små bogstaver med den hårdt kodede delstreng ("AA-" i dette eksempel). Hvis de to delstrenge passer nøjagtigt sammen, returnerer formlen TRUE, og valideringen er godkendt; ellers returneres FALSE, og valideringen mislykkes.
Tillad poster, der indeholder en bestemt tekst
Hvis du vil tillade indtastninger, der indeholder en bestemt tekst et hvilket som helst sted i en celle (i begyndelsen, midten eller slutningen), skal du bruge funktionen ISNUMBER i kombination med enten FIND eller SEARCH, afhængigt af om du vil have et match, der tager hensyn til store og små bogstaver eller ikke tager hensyn til store og små bogstaver:
- Validering uden hensyn til store og små bogstaver: ISNUMBER(SEARCH( tekst , celle ))
- Validering med hensyntagen til store og små bogstaver: ISNUMBER(FIND( tekst , celle ))
Hvis du i vores eksempeldatasæt kun vil tillade poster, der indeholder teksten "AA" i cellerne A2:A6, skal du bruge en af disse formler:
Der tages ikke hensyn til store og små bogstaver:
=ISNUMBER(SEARCH("AA", A2))
Skrivefølsom:
=ISNUMBER(FIND("AA", A2))
Formlerne fungerer efter følgende logik:
Du søger i delstrengen "AA" i celle A2 ved hjælp af FIND eller SEARCH, og begge returnerer en position for det første tegn i delstrengen. Hvis teksten ikke findes, returneres en fejl. For enhver numerisk værdi, der returneres som resultat af søgningen, giver ISNUMBER-funktionen TRUE, og datavalidering er vellykket. I tilfælde af en fejl returnerer ISNUMBER FALSE, og indtastningen vil ikke være tilladt i en celle.
Datavalidering for kun at tillade unikke poster og for at udelukke dubletter
I situationer, hvor en bestemt kolonne eller et celleområde ikke må indeholde dubletter, skal du konfigurere en brugerdefineret datavalideringsregel for kun at tillade unikke poster. Til dette formål bruger vi den klassiske COUNTIF-formel til at identificere dubletter:
=COUNTIF( rækkevidde , øverste_celle )<=1Hvis du f.eks. vil sikre, at kun unikke ordre-id'er indtastes i cellerne A2 til A6, skal du oprette en brugerdefineret regel med denne formel til datavalidering:
=COUNTIF($A$2:$A$6, A2)<=1
Når der indtastes en unik værdi, returnerer formlen TRUE, og valideringen lykkes. Hvis den samme værdi allerede findes i det angivne område (antal større end 1), returnerer COUNTIF FALSE, og valideringen af indtastningen mislykkes.
Vær opmærksom på, at vi låser området med absolutte cellehenvisninger (A$2:$A$6) og bruger en relativ reference til den øverste celle (A2) for at få formlen til at justere korrekt for hver celle i det validerede område.
Bemærk. Denne datavalideringsformel er skift mellem store og små bogstaver , den skelner ikke mellem store og små bogstaver i tekst.
Valideringsformler for datoer og tidspunkter
Indbygget datovalidering giver en hel del foruddefinerede kriterier til at begrænse brugerne til kun at indtaste datoer mellem de to datoer, du angiver, større end, mindre end eller lig med en given dato.
Hvis du vil have mere kontrol over datavalidering i dine regneark, kan du kopiere den indbyggede funktionalitet med en brugerdefineret regel eller skrive din egen formel, der går ud over de indbyggede funktioner i Excel-datavalidering.
Tillad datoer mellem to datoer
Hvis du vil begrænse indtastningen til en dato inden for et bestemt interval, kan du enten bruge den foruddefinerede dataregel med "mellem"-kriteriet eller lave en brugerdefineret valideringsregel med denne generiske formel:
AND( celle >= start_dato ), celle <= end_date )Hvor:
- celle er den øverste celle i det validerede område, og
- start og end datoer er gyldige datoer, der er angivet via funktionen DATE eller referencer til celler, der indeholder datoerne.
Hvis du f.eks. kun vil tillade datoer i juli måned i året 2017, skal du bruge følgende formel:
=AND(C2>=DATE(2017,7,1),C2<=DATE(2017,7,31))
Du kan også indtaste startdatoen og slutdatoen i nogle celler (F1 og F2 i dette eksempel) og henvise til disse celler i din formel:
=AND(C2>=$F$1, C2<=$F$2)
Bemærk venligst, at de afgrænsede datoer er låst med absolutte cellehenvisninger.
Tillad kun hverdage eller weekender
Hvis du vil begrænse en bruger til kun at indtaste hverdage eller weekender, skal du konfigurere en brugerdefineret valideringsregel baseret på funktionen WEEKDAY.
Med den return_type argumentet er sat til 2, returnerer WEEKDAY et heltal fra 1 (mandag) til 7 (søndag). Så for hverdage (mandag til fredag) skal resultatet af formlen være mindre end 6, og for weekender (lørdag og søndag) skal det være større end 5.
Tillad kun arbejdsdage :
UGEDAG( celle ,2)<6Tillad kun weekender :
UGEDAG( celle ,2)>5Hvis du f.eks. kun vil tillade indtastning af arbejdsdage i cellerne C2:C6, skal du bruge denne formel:
=WEEKDAY(C2,2)<6
Validering af datoer baseret på dagens dato
I mange situationer vil du måske bruge dagens dato som startdato for det tilladte datointerval. Du kan få den aktuelle dato ved at bruge funktionen TODAY og derefter tilføje det ønskede antal dage til den for at beregne slutdatoen.
Hvis vi f.eks. vil begrænse dataindtastningen til 6 dage fra nu af (7 dage inklusive i dag), skal vi bruge den indbyggede regel Dato med formelbaserede kriterier:
- Vælg Dato i den Tillad
- Vælg mellem i den Data
- I den Startdato feltet, skal du indtaste
=TODAY()
- I den Slutdato feltet, skal du indtaste
=TODAY() + 6
På samme måde kan du begrænse brugerne til at indtaste datoer før eller efter dagens dato. Vælg enten mindre end eller større end i den Data feltet, og indtast derefter =TODAY()
i den Slut dato eller Start henholdsvis datoboks.
Validering af tider baseret på det aktuelle tidspunkt
Hvis du vil validere data baseret på det aktuelle tidspunkt, skal du bruge den foruddefinerede tidsregel med din egen formel til validering af data:
- I den Tillad boksen, vælg Tid .
- I den Data boksen, vælg enten mindre end for kun at tillade tidspunkter før det aktuelle tidspunkt, eller større end for at tillade tidspunkter efter det aktuelle tidspunkt.
- I den Sluttidspunkt eller Starttidspunkt (afhængigt af hvilke kriterier du valgte i det foregående trin), skal du indtaste en af følgende formler:
- For at validere datoer og tidspunkter baseret på den aktuelle dato og det aktuelle klokkeslæt:
=NOW()
- For at validere gange baseret på det aktuelle tidspunkt:
=TIME( TIME(TIME(NU()), MINUT(NU()), SEKUND(NU()))
- For at validere datoer og tidspunkter baseret på den aktuelle dato og det aktuelle klokkeslæt:
Skærmbilledet nedenfor viser en regel, der kun tillader tider, der er større end det aktuelle tidspunkt:
Brugerdefineret Excel-datavalideringsregel fungerer ikke
Hvis din formelbaserede datavalideringsregel ikke fungerer som forventet, er der tre hovedpunkter, du skal kontrollere:
- Formlen for datavalidering er korrekt
- Valideringsformlen henviser ikke til en tom celle
- Der anvendes passende cellehenvisninger
Kontroller, om din formel til datavalidering i Excel er korrekt
Til at begynde med skal du kopiere din valideringsformel ind i en celle for at sikre dig, at den ikke returnerer en fejl som #N/A, #VALUE eller #DIV/0!!.
Hvis du opretter en brugerdefineret regel skal formlen returnere de logiske værdier TRUE og FALSE eller værdierne 1 og 0, der svarer til dem.
Hvis du bruger et formelbaseret kriterium i en indbygget regel (som vi gjorde for at validere tidspunkter baseret på det aktuelle tidspunkt), kan den også returnere en anden numerisk værdi.
Excel-formel til datavalidering bør ikke henvise til en tom celle
I mange situationer kan du, hvis du vælger den Ignorer blank når du definerer reglen (normalt valgt som standard), og en eller flere celler, som der henvises til i formlen, er tomme, vil enhver værdi være tilladt i den validerede celle.
Her er et eksempel i den enkleste form:
Absolutte og relative cellehenvisninger i formler til datavalidering
Når du opretter en formelbaseret Excel-valideringsregel, skal du huske på, at alle cellehenvisninger i din formel er i forhold til den øverste venstre celle i det valgte område.
Hvis du opretter en regel for mere end én celle, og dine valideringskriterier er afhængige af specifikke celler skal du sørge for at bruge absolutte cellereferencer (med $-tegnet, f.eks. $A$1), ellers vil din regel kun fungere korrekt for den første celle. For at illustrere det bedre, kan du se på følgende eksempel.
Antag, at du ønsker at begrænse dataindtastningen i cellerne D2 til D5 til hele tal mellem 1 (mindste værdi) og resultatet af at dividere A2 med B2. Så du beregner den maksimale værdi med denne enkle formel =A2/B2
, som vist i skærmbilledet nedenfor:
Problemet er, at denne tilsyneladende korrekte formel ikke vil fungere for cellerne D3 til D5, fordi relative referencer ændres baseret på en relativ position af rækker og kolonner. For celle D3 vil formlen således ændres til =A3/B3
, og for D4 bliver det til =A4/B4
, gør datavalidering helt forkert!
For at rette formlen skal du blot skrive "$" før kolonne- og rækkehenvisningerne for at låse dem: =$A$2/$B$2
Eller tryk på F4 for at skifte mellem forskellige referencetyper.
I situationer, hvor du ønsker at validere hver enkelt celle på baggrund af dens egne kriterier, skal du bruge relative cellehenvisninger uden $-tegn for at få formlen til at justere for hver række og/eller kolonne:
Som du kan se, findes der ingen "absolut sandhed", den samme formel kan være rigtig eller forkert afhængigt af situationen og din særlige opgave.
Sådan bruger du datavalidering i Excel med dine egne formler. For at få mere forståelse, er du velkommen til at downloade vores prøvearbejdsmappe nedenfor og undersøge regelindstillingerne. Jeg takker for læsningen og håber at se dig på vores blog i næste uge!
Arbejdsbog til download
Eksempler på datavalidering i Excel (.xlsx-fil)