Innholdsfortegnelse
Opplæringen viser hvordan du lager tilpassede regler for datavalidering i Excel. Du vil finne noen få eksempler på E xcel-datavalideringsformler for å tillate bare tall eller tekstverdier i spesifikke celler, eller bare tekst som begynner med spesifikke tegn, tillate unike data som forhindrer duplikater og mer.
I gårsdagens opplæring begynte vi å se på Excel Data Validation - hva formålet er, hvordan det fungerer og hvordan du bruker innebygde regler for å validere data i regnearkene dine. I dag skal vi ta et skritt videre og snakke om de greie aspektene ved tilpasset datavalidering i Excel, samt eksperimentere med en håndfull forskjellige valideringsformler.
Hvordan gjøre lag tilpasset datavalidering med formel
Microsoft Excel har flere innebygde datavalideringsregler for tall, datoer og tekst, men de dekker bare de mest grunnleggende scenariene. Hvis du vil validere celler med dine egne kriterier, oppretter du en egendefinert valideringsregel basert på en formel. Slik gjør du:
- Velg én eller flere celler for å validere.
- Åpne dialogboksen Datavalidering. For dette, klikk Datavalidering -knappen på Data -fanen, i Dataverktøy -gruppen eller trykk på tastesekvensen Alt > D > L (hver tast skal trykkes separat).
- I kategorien Innstillinger i dialogvinduet Datavalidering velger du Egendefinert i Tillat -boksen, og skriv innplassering av rader og kolonner. For celle D3 vil formelen endres til
=A3/B3
, og for D4 vil den bli=A4/B4
, noe som gjør datavalidering helt feil!For å fikse formelen, skriv bare "$" før kolonne- og radreferansene for å låse dem:
=$A$2/$B$2
. Eller trykk F4 for å veksle mellom ulike referansetyper.I situasjoner der du ønsker å validere hver celle basert på dens egne kriterier, bruk relative cellereferanser uten $-tegn for å få formelen å justere for hver rad eller/og kolonne:
Som du ser, er det ingen "absolutt sannhet", den samme formelen kan være riktig eller gal avhengig av situasjon og din spesielle oppgave.
Slik bruker du datavalidering i Excel med dine egne formler. For å få mer forståelse kan du gjerne laste ned eksempelarbeidsboken nedenfor og undersøke regelinnstillingene. Jeg takker for at du leser og håper å se deg på bloggen vår neste uke!
Øvningsarbeidsbok for nedlasting
Eksempler på Excel-datavalidering (.xlsx-fil)
datavalideringsformelen i boksen Formel . - Klikk OK .
Valgfritt, du kan legge til en egendefinert inndatamelding og feilvarsel som vises når brukeren velger henholdsvis den validerte cellen eller legger inn ugyldige data.
Nedenfor finner du noen få eksempler på tilpassede valideringsregler for ulike datatyper.
Merk. Alle Excel-datavalideringsregler, innebygde og tilpassede, bekrefter kun nye data som er skrevet inn i en celle etter at regelen er opprettet. Kopierte data blir ikke validert, og heller ikke dataene som legges inn i cellen før regelen lages. For å feste eksisterende oppføringer som ikke oppfyller datavalideringskriteriene dine, bruk Sirkel ugyldige data -funksjonen som vist i Hvordan finne ugyldige data i Excel.
Excel-datavalidering for kun å tillate tall.
Overraskende nok er det ingen av de innebygde Excel-datavalideringsreglene som dekker en veldig typisk situasjon når du trenger å begrense brukere til kun å skrive inn tall i bestemte celler. Men dette kan enkelt gjøres med en tilpasset datavalideringsformel basert på ISNUMBER-funksjonen, som denne:
=ISNUMBER(C2)
Hvor C2 er den øverste cellen i området du vil validere.
Merk. ISNUMBER-funksjonen tillater alle numeriske verdier i validerte celler, inkludert heltall, desimaler, brøker samt datoer og klokkeslett, som også er tall i form av Excel.
Excel-datavalidering for å tillatebare tekst
Hvis du ser etter det motsatte - for å bare tillate tekstoppføringer i et gitt celleområde, bygg deretter en egendefinert regel med ISTEXT-funksjonen, for eksempel:
=ISTEXT(D2)
Hvor D2 er den øverste cellen i det valgte området.
Tillat tekst som begynner med spesifikke tegn
Hvis alle verdier i en bestemt området skal begynne med et bestemt tegn eller delstreng, og deretter utføre Excel-datavalidering basert på COUNTIF-funksjonen med et jokertegn:
COUNTIF( celle," tekst*")For eksempel, for å sikre at alle ordre-ID-er i kolonne A begynner med prefikset "AA-", "aa-", "Aa-" eller "aA-" (uavhengig av store og små bokstaver), definer en egendefinert regel med denne datavalideringsformel:
=COUNTIF(A2,"aa-*")
Valideringsformel med OR-logikken (flere kriterier)
Hvis det er to eller flere gyldige prefikser, legg sammen flere COUNTIF-funksjoner, slik at Excel-datavalideringsregelen fungerer med ELLER-logikken:
=COUNTIF(A2,"aa-*")+COUNTIF(A2,"bb-*")
Stillingssensitiv valideringsformel
Hvis store og små bokstaver er viktige, bruk EXACT i kombinasjon med VENSTRE-funksjonen for å lage en valideringsformel som skiller mellom store og små bokstaver for oppføringer som begynner med spesifikk tekst:
EXACT(LEFT( celle, antall_tegn), tekst)For for eksempel å tillate bare de ordre-ID-ene som begynner med "AA-" (verken "aa-" eller "Aa-" er tillatt), bruk denne formel:
=EXACT(LEFT(A2,3),"AA-")
I formelen ovenfor,VENSTRE-funksjonen trekker ut de første 3 tegnene fra celle A2, og EXACT utfører en sammenligning mellom store og små bokstaver med den hardkodede understrengen ("AA-" i dette eksemplet). Hvis de to understrengene samsvarer nøyaktig, returnerer formelen TRUE og valideringen går gjennom; ellers returneres FALSE og valideringen mislykkes.
Tillat oppføringer som inneholder bestemt tekst
For å tillate oppføringer som inneholder spesifikk tekst hvor som helst i en celle (i begynnelsen , midt eller slutt), bruk ISNUMBER-funksjonen i kombinasjon med enten FIND eller SEARCH avhengig av om du vil ha treff uten store og små bokstaver:
- Stilling uten store og små bokstaver: ISNUMBER(SEARCH( tekst , celle ))
- Stillingssensitiv validering: ISNUMBER(FINN( tekst , celle ))
På vårt eksempeldatasett, for kun å tillate oppføringer som inneholder teksten "AA" i cellene A2:A6, bruk en av disse formlene:
Stilling av store og små bokstaver:
=ISNUMBER(SEARCH("AA", A2))
Stilling mellom store og små bokstaver:
=ISNUMBER(FIND("AA", A2))
Formlene fungerer med følgende logikk:
Du søker på delstrengen "AA" i celle A2 ved å bruke FIND eller SEARCH, og begge returnerer posisjonen til det første tegnet i understrengen. Hvis teksten ikke blir funnet, returneres en feil. For enhver numerisk verdi som returneres som resultat av søk, gir ISNUMBER-funksjonen TRUE, og datavalideringen er vellykket. Ved en feil returnerer ISNUMBER FALSE, og oppføringen vil ikke tillates i encelle.
Datavalidering for kun å tillate unike oppføringer og ikke tillate duplikater
I situasjoner der en bestemt kolonne eller et celleområde ikke skal inneholde noen duplikater, konfigurer en egendefinert datavalideringsregel for å tillate bare unike oppføringer. For dette skal vi bruke den klassiske ANTALLHVIS-formelen for å identifisere duplikater:
=ANTALLHVIS( område, øverste_celle)<=1For eksempel for å lage sørg for at bare unike ordre-IDer legges inn i cellene A2 til A6, lag en egendefinert regel med denne datavalideringsformelen:
=COUNTIF($A$2:$A$6, A2)<=1
Når en unik verdi angis, returnerer formelen TRUE og validering lykkes. Hvis den samme verdien allerede eksisterer i det angitte området (antall større enn 1), returnerer COUNTIF FALSE og inndata mislykkes ved validering.
Vær oppmerksom på at vi låser området med absolutte cellereferanser (A$2:$A $6) og bruk en relativ referanse for den øverste cellen (A2) for å få formelen til å justere riktig for hver celle i det validerte området.
Merk. Disse datavalideringsformlene er ufølsomme for store og små bokstaver , den skiller ikke mellom store og små bokstaver.
Valideringsformler for datoer og klokkeslett
Innebygd datovalidering gir ganske mye av forhåndsdefinerte kriterier for å begrense brukere til kun å legge inn datoer mellom de to datoene du angir, større enn, mindre enn eller lik en gitt dato.
Hvis du vil ha mer kontroll over datavalidering i regnearkene dine, kan du replikere den innebygde funksjonaliteten med en tilpasset regel eller skrive din egen formel som går utover de innebygde egenskapene til Excel-datavalidering.
Tillat datoer mellom to datoer
For å begrense oppføringen til en dato innenfor et spesifisert område, kan du enten bruke den forhåndsdefinerte datoregelen med "mellom"-kriteriene eller lage en egendefinert valideringsregel med denne generiske formelen:
OG( celle> ;= startdato), celle<= sluttdato)Hvor:
- celle er den øverste cellen i det validerte området, og
- start - og slutt -datoer er gyldige datoer levert via DATE-funksjonen eller referanser til celler som inneholder datoene.
For eksempel, for å tillate bare datoer i juli måned i år 2017, bruk følgende formel:
=AND(C2>=DATE(2017,7,1),C2<=DATE(2017,7,31))
Eller skriv inn startdato og slutt dato i noen celler (F1 og F2 i dette eksemplet), og referer til disse cellene i formelen din:
=AND(C2>=$F$1, C2<=$F$2)
Vær oppmerksom på at grensedatoene er e låst med absolutte cellereferanser.
Tillat kun ukedager eller helger
For å begrense en bruker til å angi bare ukedager eller helger, konfigurer en tilpasset valideringsregel basert på WEEKDAY-funksjonen.
Med argumentet return_type satt til 2, returnerer WEEKDAY et heltall fra 1 (mandag) til 7 (søndag). Så for ukedager (man til fre) bør resultatet av formelen væremindre enn 6, og for helger (lør og søn) mer enn 5.
Tillat bare arbeidsdager :
WEEKDAY( celle,2)<6Tillat bare helger :
WEEKDAY( celle,2)>5For å tillate inntasting av bare arbeidsdager i cellene C2:C6, bruk for eksempel denne formel:
=WEEKDAY(C2,2)<6
Valider datoer basert på dagens dato
I mange situasjoner kan det være lurt å bruke dagens dato som start dato for den tillatte datoperioden. For å få gjeldende dato, bruk IDAG-funksjonen, og legg deretter til ønsket antall dager for å beregne sluttdatoen.
For eksempel, for å begrense dataregistreringen til 6 dager fra nå (7 dager inkludert i dag), skal vi bruke den innebygde datoregelen med de formelbaserte kriteriene:
- Velg Dato i Tillat
- Velg mellom i Data
- I boksen Startdato skriver du inn
=TODAY()
- I Sluttdato -boksen, skriv inn
=TODAY() + 6
På lignende måte kan du begrense brukere til å angi datoer før eller etter dagens dato. For dette, velg enten mindre enn eller større enn i boksen Data , og skriv deretter inn =TODAY()
i Slutt -datoen eller Start datoboks, henholdsvis.
Valider tider basert på gjeldende tid
For å validere data basert på gjeldende tid, bruk den forhåndsdefinerte tidsregelen med din egen datavalideringsformel:
- I boksen Tillat velger du Tid .
- I Data -boksen velger du enten mindre enn for å tillate bare tider før gjeldende tid, eller større enn for å tillate tider etter gjeldende tid.
- I boksen Sluttid eller Starttid (avhengig av hvilke kriterier du valgte i forrige trinn), angi en av følgende formler:
- For å validere datoer og klokkeslett basert på gjeldende dato og klokkeslett:
=NOW()
- For å validere ganger basert på gjeldende klokkeslett:
=TIME( HOUR(NOW()), MINUTE(NOW()), SECOND(NOW()))
- For å validere datoer og klokkeslett basert på gjeldende dato og klokkeslett:
Skjermbildet nedenfor viser en regel som tillater bare tider høyere enn gjeldende tid:
Egendefinert Excel-datavalideringsregel fungerer ikke
Hvis den formelbaserte datavalideringsregelen din ikke fungerer som forventet, er det tre hovedpunkter å sjekke:
- Datavalideringsformel er korrekt
- Valideringsformel refererer ikke til en tom celle
- Passelige cellereferanser er brukt
Kontroller riktigheten av Excel-datavalideringsformelen
For det første, kopier valideringsformelen inn i en celle for å sikre at den ikke returnerer en feil som #N/A, #VALUE eller #DIV/0!.
Hvis du oppretter en egendefinert regel , skal formelen returnere de logiske verdiene til TRUE og FALSE eller verdiene av 1 og 0 som tilsvarer dem, henholdsvis.
Hvis du bruker et formelbasert kriterium i en innebygd regel (som vi gjorde for å validere tider basert pågjeldende tid), kan den også returnere en annen numerisk verdi.
Excel-datavalideringsformelen skal ikke referere til en tom celle
I mange situasjoner, hvis du velger Ignorer blank boksen når du definerer regelen (vanligvis valgt som standard) og en eller flere celler referert til i formelen din er tom, vil enhver verdi tillates i den validerte cellen.
Her er et eksempel i den enkleste formen:
Absolute og relative cellereferanser i datavalideringsformler
Når du setter opp en formelbasert Excel-valideringsregel, må du huske at alle cellereferanser i formelen er i forhold til den øvre venstre cellen i det valgte området.
Hvis du oppretter en regel for mer enn én celle og valideringskriteriene dine er avhengige av spesifikke celler , pass på å bruke absolutte cellereferanser (med $-tegnet som $A$1), ellers vil regelen din fungere riktig bare for den første cellen. For bedre å illustrere poenget, vennligst tenk på følgende eksempel.
Anta at du vil begrense datainntasting i cellene D2 til D5 til hele tall mellom 1 (minimumsverdi) og resultatet av å dele A2 med B2. Så du beregner maksimalverdien med denne enkle formelen =A2/B2
, som vist i skjermbildet nedenfor:
Problemet er at denne tilsynelatende riktige formelen ikke vil fungere for cellene D3 til D5 fordi relative referanser endres basert på en relativ