Pasgemaakte data-validering in Excel: formules en reëls

  • Deel Dit
Michael Brown

Die tutoriaal wys hoe om gepasmaakte datavalideringsreëls in Excel te maak. Jy sal 'n paar voorbeelde van E xcel-databekragtigingsformules vind om slegs getalle of tekswaardes in spesifieke selle toe te laat, of slegs teks wat met spesifieke karakters begin, om unieke data toe te laat wat duplikate voorkom, en meer.

In gister se tutoriaal het ons begin kyk na Excel Data Validation - wat die doel daarvan is, hoe dit werk, en hoe om ingeboude reëls te gebruik om data in jou werkblaaie te valideer. Vandag gaan ons 'n stap verder neem en praat oor die netjiese aspekte van pasgemaakte data-validering in Excel, asook eksperimenteer met 'n handvol verskillende valideringsformules.

    Hoe om skep pasgemaakte datavalidering met formule

    Microsoft Excel het verskeie ingeboude datavalideringsreëls vir getalle, datums en teks, maar dit dek net die mees basiese scenario's. As jy selle met jou eie kriteria wil valideer, skep 'n pasgemaakte valideringsreël gebaseer op 'n formule. Dit is hoe:

    1. Kies een of meer selle om te valideer.
    2. Maak die Data Validation dialoogkassie oop. Klik hiervoor op die Datavalidering -knoppie op die Data -oortjie, in die Datanutsgoed -groep of druk die sleutelreeks Alt > D > L (elke sleutel moet afsonderlik gedruk word).
    3. Op die Settings -oortjie van die Data Validation -dialoogvenster, kies Custom in die Laat toe boks, en voer inposisie van rye en kolomme. Dus, vir sel D3 sal die formule verander na =A3/B3 , en vir D4 sal dit =A4/B4 word, wat data-validering heeltemal verkeerd doen!

      Om die formule reg te stel, tik net "$" voor die kolom- en ryverwysings om te sluit hulle: =$A$2/$B$2 . Of, druk F4 om tussen verskillende verwysingstipes te wissel.

      In situasies wanneer jy elke sel op grond van sy eie kriteria wil valideer, gebruik relatiewe selverwysings sonder $-teken om die formule te kry om aan te pas vir elke ry of/en kolom:

      Soos jy sien, is daar geen "absolute waarheid" nie, dieselfde formule kan reg of verkeerd wees afhangende van situasie en jou spesifieke taak.

      Dit is hoe om data-validering in Excel met jou eie formules te gebruik. Om meer begrip te kry, laai gerus ons voorbeeldwerkboek hieronder af en ondersoek die reëlinstellings. Ek bedank jou vir die lees en hoop om jou volgende week op ons blog te sien!

      Oefen werkboek vir aflaai

      Excel Data Validation voorbeelde (.xlsx lêer)

      jou data valideringsformule in die Formule boks.
    4. Klik OK .

    Opsioneel, jy kan 'n pasgemaakte invoerboodskap en Foutwaarskuwing byvoeg wat onderskeidelik sal verskyn wanneer die gebruiker die gevalideerde sel kies of ongeldige data invoer.

    Hieronder sal jy 'n paar voorbeelde van pasgemaakte valideringsreëls vir verskillende datatipes vind.

    Let wel. Alle Excel-datavalideringsreëls, ingebou en pasgemaak, verifieer slegs nuwe data wat in 'n sel getik word nadat die reël geskep is. Gekopieerde data word nie bekragtig nie, en ook nie die data-invoer in die sel voordat die reël gemaak word nie. Om bestaande inskrywings vas te pen wat nie aan jou datavalideringskriteria voldoen nie, gebruik die Kring ongeldige data -kenmerk soos gewys in Hoe om ongeldige data in Excel te vind.

    Excel-datavalidering om slegs getalle toe te laat

    Verbasend genoeg maak nie een van die ingeboude Excel-datavalideringsreëls voorsiening vir 'n baie tipiese situasie wanneer jy gebruikers moet beperk om slegs nommers in spesifieke selle in te voer nie. Maar dit kan maklik gedoen word met 'n pasgemaakte data-valideringsformule gebaseer op die ISNUMBER-funksie, soos hierdie een:

    =ISNUMBER(C2)

    Waar C2 die boonste sel van die reeks is wat jy wil valideer.

    Let wel. Die ISNUMBER-funksie laat enige numeriese waardes in gevalideerde selle toe, insluitend heelgetalle, desimale, breuke sowel as datums en tye, wat ook getalle in terme van Excel is.

    Excel-datavalidering om toe te laatslegs teks

    As jy die teenoorgestelde soek - om slegs teksinskrywings in gegewe reeks selle toe te laat, bou dan 'n pasgemaakte reël met die ISTEXT-funksie, byvoorbeeld:

    =ISTEXT(D2)

    Waar D2 die boonste sel van die geselekteerde reeks is.

    Laat teks toe wat met spesifieke karakter(s) begin

    As alle waardes in 'n sekere reeks moet begin met 'n spesifieke karakter of substring, doen dan Excel-data-validering gebaseer op die COUNTIF-funksie met 'n jokerteken:

    COUNTIF( sel," teks*")

    Byvoorbeeld, om te verseker dat alle bestel-ID's in kolom A begin met die "AA-", "aa-", "Aa-", of "aA-" voorvoegsel (hoofletter-onsensitief), definieer 'n pasgemaakte reël met hierdie datavalideringsformule:

    =COUNTIF(A2,"aa-*")

    Bekragtigingsformule met die OF-logika (veelvuldige kriteria)

    In geval daar 2 of meer geldig is voorvoegsels, tel verskeie COUNTIF-funksies bymekaar, sodat jou Excel-data-valideringsreël met die OF-logika werk:

    =COUNTIF(A2,"aa-*")+COUNTIF(A2,"bb-*")

    Kase-sensitiewe valideringsformule

    As die karakterkas belangrik is, gebruik dan EXACT in kombinasie met die LEFT-funksie om 'n hooflettersensitiewe valideringsformule te skep vir inskrywings wat met spesifieke teks begin:

    EXACT(LEFT( sel, aantal_karakters), teks)

    Byvoorbeeld, om slegs daardie volgorde-ID's toe te laat wat met "AA-" begin (nie "aa-" of "Aa-" word toegelaat nie), gebruik hierdie formule:

    =EXACT(LEFT(A2,3),"AA-")

    In die bogenoemde formule,die LEFT-funksie onttrek die eerste 3 karakters uit sel A2, en EXACT voer 'n hooflettersensitiewe vergelyking met die hardgekodeerde substring ("AA-" in hierdie voorbeeld). As die twee substringe presies ooreenstem, gee die formule TRUE terug en die validering slaag; anders word ONWAAR teruggestuur en die validering misluk.

    Laat inskrywings toe wat sekere teks bevat

    Om inskrywings toe te laat wat spesifieke teks op enige plek in 'n sel bevat (in die begin) , middel of einde), gebruik die ISNUMBER-funksie in kombinasie met óf FIND óf SEARCH, afhangende van of jy hoofletter- of hoofletteronsensitiewe passing wil hê:

    • Hoofletter-onsensitiewe validering: ISNUMBER(SEARCH( teks , sel ))
    • Kleinlettergevoelige validering: ISNUMBER(FIND( teks , sel ))

    Op ons voorbeelddatastel, om slegs inskrywings toe te laat wat die teks "AA" in selle A2:A6 bevat, gebruik een van hierdie formules:

    Hoofletter-onsensitief:

    =ISNUMBER(SEARCH("AA", A2))

    Kleinlettergevoelig:

    =ISNUMBER(FIND("AA", A2))

    Die formules werk met die volgende logika:

    Jy soek die substring "AA" in sel A2 met FIND of SEARCH, en albei gee 'n posisie van die eerste karakter in die substring terug. As die teks nie gevind word nie, word 'n fout teruggestuur. Vir enige numeriese waarde wat as die resultaat van soektog teruggegee word, lewer die ISNUMBER-funksie TRUE, en datavalidering is suksesvol. In die geval van 'n fout, gee ISNUMBER terug ONWAAR, en die inskrywing sal nie toegelaat word in 'nsel.

    Datavalidering om slegs unieke inskrywings toe te laat en duplikate nie toe te laat nie

    In situasies wanneer 'n sekere kolom of 'n reeks sel geen duplikate moet bevat nie, stel 'n pasgemaakte datavalideringsreël op om slegs unieke inskrywings toe te laat. Hiervoor gaan ons die klassieke COUNTIF-formule gebruik om duplikate te identifiseer:

    =COUNTIF( reeks, bovenste_sel)<=1

    Om byvoorbeeld te maak maak seker dat slegs unieke volgorde-ID's in selle A2 tot A6 ingevoer word, skep 'n pasgemaakte reël met hierdie datavalideringsformule:

    =COUNTIF($A$2:$A$6, A2)<=1

    Wanneer 'n unieke waarde ingevoer word, gee die formule TRUE terug en die validering slaag. As dieselfde waarde reeds in die gespesifiseerde reeks bestaan ​​(telling groter as 1), gee COUNTIF ONWAAR terug en die invoer misluk validering.

    Let asseblief daarop dat ons die reeks sluit met absolute selverwysings (A$2:$A) $6) en gebruik 'n relatiewe verwysing vir die boonste sel (A2) om die formule behoorlik aan te pas vir elke sel in die gevalideerde reeks.

    Let wel. Hierdie datavalideringsformules is hoofletter-onsensitief , dit onderskei nie hoofletters en kleinletters nie.

    Validasieformules vir datums en tye

    Ingeboude datumvalidering verskaf nogal baie van voorafbepaalde kriteria om gebruikers te beperk om slegs datums tussen die twee datums wat jy spesifiseer, groter as, minder as of gelyk aan 'n gegewe datum in te voer.

    As jy meer beheer oor data wil hêvalidering in jou werkblaaie, kan jy die ingeboude funksionaliteit herhaal met 'n pasgemaakte reël of jou eie formule skryf wat verder gaan as die ingeboude vermoëns van Excel-data-validering.

    Laat datums tussen twee datums toe

    Om die inskrywing tot 'n datum binne 'n gespesifiseerde reeks te beperk, kan jy óf die voorafbepaalde Datumreël met die "tussen" kriteria gebruik óf 'n pasgemaakte valideringsreël maak met hierdie generiese formule:

    AND( sel> ;= begindatum), sel<= einddatum)

    Waar:

    • sel is die boonste sel in die gevalideerde reeks, en
    • begin en eind datums is geldige datums wat deur die DATE-funksie verskaf word of verwysings na selle wat die datums bevat.

    Om byvoorbeeld slegs datums in die maand Julie van die jaar 2017 toe te laat, gebruik die volgende formule:

    =AND(C2>=DATE(2017,7,1),C2<=DATE(2017,7,31))

    Of, voer die begindatum en einde in datum in sommige selle (F1 en F2 in hierdie voorbeeld), en verwys na daardie selle in jou formule:

    =AND(C2>=$F$1, C2<=$F$2)

    Let asseblief daarop dat die grensdatums ar e gesluit met absolute selverwysings.

    Laat slegs weeksdae of naweke toe

    Om 'n gebruiker te beperk om slegs weeksdae of naweke in te voer, stel 'n pasgemaakte valideringsreël op op die WEEKDAY-funksie.

    Met die return_type -argument op 2 gestel, gee WEEKDAY 'n heelgetal terug wat wissel van 1 (Maandag) tot 7 (Sondag). Dus, vir weeksdae (Ma tot Vr) moet die resultaat van die formule weesminder as 6, en vir naweke (Saterdag en So) groter as 5.

    Laat slegs werksdae toe :

    WEEKDAG( sel,2)<6

    Laat slegs naweke toe :

    WEEKDAG( sel,2)>5

    Om byvoorbeeld slegs werksdae in selle C2:C6 toe te laat, gebruik hierdie formule:

    =WEEKDAY(C2,2)<6

    Bekragtig datums gebaseer op vandag se datum

    In baie situasies wil jy dalk vandag se datum as die begin gebruik datum van die toegelate datumreeks. Om die huidige datum te kry, gebruik die VANDAG-funksie, en voeg dan die verlangde aantal dae daarby om die einddatum te bereken.

    Om byvoorbeeld die data-invoer tot 6 dae van nou af te beperk (7 dae insluitend vandag), gaan ons die ingeboude Datumreël gebruik met die formule-gebaseerde kriteria:

    1. Kies Datum in die Laat toe
    2. Kies tussen in die Data
    3. In die Begindatum -blokkie, voer =TODAY() in
    4. In die Einddatum -blokkie, voer =TODAY() + 6 in

    Op 'n soortgelyke manier kan jy gebruikers beperk tot die invoer van datums voor of na vandag se datum. Kies hiervoor óf minder as óf groter as in die boks Data , en voer dan =TODAY() in die Eind -datum of <1 in>Begin datumblokkie, onderskeidelik.

    Bekragtig tye gebaseer op huidige tyd

    Om data te valideer gebaseer op die huidige tyd, gebruik die vooraf gedefinieerde Tydreël met jou eie datavalideringsformule:

    1. Kies in die Laat toe boks Tyd .
    2. In die Data -blokkie, kies óf minder as om slegs tye voor die huidige tyd toe te laat, óf groter as om tye na die huidige tyd toe te laat.
    3. In die Eindtyd of Begintyd -blokkie (afhangende van watter kriteria jy op die vorige stap gekies het), voer een van die volgende formules in:
      • Om datums en tye te valideer gebaseer op die huidige datum en tyd:

        =NOW()

      • Om te valideer tye gebaseer op die huidige tyd:

        =TIME( HOUR(NOW()), MINUTE(NOW()), SECOND(NOW()))

    Die skermkiekie hieronder wys 'n reël wat slegs tye groter as die huidige tyd toelaat:

    Gepasmaakte Excel-datavalideringsreël werk nie

    As jou formulegebaseerde datavalideringsreël nie werk soos verwag nie, is daar 3 hoofpunte om na te gaan:

    • Datavalideringsformule is korrek
    • Validasieformule verwys nie na 'n leë sel nie
    • Gepaste selverwysings word gebruik

    Gaan die korrektheid na van jou Excel-datavalideringsformule

    Om mee te begin, kopieer jou valideringsformule na een of ander sel om seker te maak dit gee nie 'n fout soos #N/A, #VALUE of #DIV/0! nie.

    As jy 'n pasgemaakte reël<12 skep>, moet die formule die logiese waardes van WAAR en ONWAAR terugstuur of die waardes van 1 en 0 wat onderskeidelik daaraan gelyk is.

    As jy 'n formule-gebaseerde kriteria in 'n ingeboude reël (soos ons gedoen het om tye te valideer gebaseer op diehuidige tyd), kan dit ook 'n ander numeriese waarde terugstuur.

    Excel-datavalideringsformule behoort nie na 'n leë sel te verwys nie

    In baie situasies, as jy die Ignoreer leeg<12 kies> boks wanneer die reël gedefinieer word (gewoonlik by verstek gekies) en een of meer selle waarna verwys word in jou formule leeg is, sal enige waarde in die gevalideerde sel toegelaat word.

    Hier is 'n voorbeeld in die eenvoudigste vorm:

    Absolute en relatiewe selverwysings in datavalideringsformules

    Wanneer 'n formule-gebaseerde Excel-valideringsreël opgestel word, hou asseblief in gedagte dat alle selverwysings in jou formule is relatief tot die boonste linker sel in die geselekteerde reeks.

    As jy 'n reël vir meer as een sel skep en jou valideringskriteria is afhanklik van spesifieke selle , maak seker dat jy absolute selverwysings gebruik (met die $-teken soos $A$1), anders sal jou reël net vir die eerste sel korrek werk. Om die punt beter te illustreer, oorweeg asseblief die volgende voorbeeld.

    Gestel, jy wil data-invoer in selle D2 tot D5 beperk tot heelgetalle tussen 1 (minimum waarde) en die resultaat van deling A2 deur B2. Dus, jy bereken die maksimum waarde met hierdie eenvoudige formule =A2/B2 , soos getoon in die skermkiekie hieronder:

    Die probleem is dat hierdie oënskynlik korrekte formule nie sal werk vir selle D3 tot D5 omdat relatiewe verwysings verander op grond van 'n familielid

    Michael Brown is 'n toegewyde tegnologie-entoesias met 'n passie om komplekse prosesse te vereenvoudig deur sagteware-instrumente te gebruik. Met meer as 'n dekade se ondervinding in die tegnologiebedryf, het hy sy vaardighede in Microsoft Excel en Outlook, sowel as Google Sheets en Docs, opgeskerp. Michael se blog is toegewy daaraan om sy kennis en kundigheid met ander te deel, en verskaf maklik-om-te volg wenke en tutoriale vir die verbetering van produktiwiteit en doeltreffendheid. Of jy nou 'n ervare professionele persoon of 'n beginner is, Michael se blog bied waardevolle insigte en praktiese raad om die meeste uit hierdie noodsaaklike sagteware-nutsmiddels te kry.