Excel Data Validation mei help fan reguliere útdrukkingen (Regex)

  • Diel Dit
Michael Brown

De tutorial lit sjen hoe't jo gegevensvalidaasje dwaan kinne yn Excel mei help fan reguliere útdrukkingen mei help fan in oanpaste RegexMatch-funksje.

As it giet om it beheinen fan brûkersynfier yn Excel-wurkblêden, Data Validation is ûnmisber. Wolle jo allinich nûmers of datums yn in opjûne sel tastean? Of tekstwearden beheine ta in spesifike lingte? Of miskien kearen bûten in bepaald berik net tastean? Gjin probleem, dit alles kin maklik dien wurde mei foarôf ynstelde of oanpaste falidaasjekritearia. Mar wat as ik allinich jildige e-postadressen as stringen tastimme dy't oerienkomme mei in spesifyk patroan? Och, dat kin net. Regex sizze jo? Hmm ... dat kin wurkje!

    Hoe kinne jo Excel-gegevensfalidaasje dwaan mei Regex

    Spitigernôch stipet gjin fan 'e ynboude Excel-funksjes regexes, en gegevensvalidaasje is gjin útsûndering. Om sel-ynfier te falidearjen mei reguliere útdrukkingen, moatte jo earst in oanpaste Regex-funksje oanmeitsje. In oare komplikaasje is dat VBA troch brûkers definieare funksjes net direkt oan Data Validation kinne wurde tsjinne - jo sille in mediator nedich hawwe yn 'e foarm fan in neamde formule.

    Sjoen it boppesteande, lit ús koart de stappen omskriuwe om gegevens yn Excel te falidearjen mei regexes:

    1. Meitsje in oanpaste Regex-funksje dy't kontrolearret oft in ynfierwearde oerienkomt mei in reguliere ekspresje.
    2. Definiearje in namme foar jo Regex-formule.
    3. Konfigurearje in regel foar gegevensvalidaasje basearre op de neamde formule.
    4. Kopiearje devalidaasje ynstellings foar safolle sellen as jo wolle.

    Klinkt as in plan? Litte wy besykje it yn 'e praktyk út te fieren!

    Excel-gegevensvalidaasje mei oanpaste reguliere útdrukkingen

    Dit foarbyld giet oer in hiel gewoan gefal - hoe kinne jo allinich de wearden fan in spesifyk patroan tastean.

    Stel dat jo wat SKU-koades yn jo wurkblêd hâlde en der wis fan wêze wolle dat allinich de koades dy't oerienkomme mei in bepaald patroan yn 'e list komme. Op betingst dat elke SKU bestiet út 2 groepen karakters skieden mei in koppelteken, de earste groep mei 3 haadletters en de twadde groep - 3 sifers, kinne jo sokke wearden identifisearje mei de ûndersteande regex.

    Patroan : ^[A-Z]{3}-\d{3}$

    Let op dat it begjin (^) en ein ($) fan 'e tekenrige ferankere binne, dus gjin oare tekens as yn' e patroan koe wurde ynfierd yn in sel.

    1. Foegje in oanpaste Regex Match-funksje ta

    Begjin mei it ynfoegjen fan de RegExpMatch-funksje yn jo wurkboek. De koade is al skreaun troch ús Excel-guru's, dus jo moatte it gewoan kopiearje fan 'e hjirboppe keppele side en plakke yn jo VBA-bewurker.

    Hjir is de syntaksis fan de funksje foar jo referinsje:

    RegExpMatch(tekst) , patroan, [match_case])

    Wêr:

    • Tekst (ferplicht) - in boarnestring (yn ús kontekst - in falidearre sel).
    • Patroan (fereaske) - in reguliere ekspresje om te passen.
    • Match_case (opsjoneel) - matchtype. TRUE of weilitten - case-gefoelich; FALSE - hoofdlettergefoel.

    Tip. As jo ​​​​in brûker binne fan ús Ultimate Suite, dan kinne jo Regex Data Validation dwaan yn Excel sûnder in VBA-koade ta te foegjen oan jo wurkboeken. Brûk gewoan in oanpaste AblebitsRegexMatch-funksje opnommen mei ús Regex-ark.

    2. Meitsje in neamde formule

    Selektearje yn jo doelwurkblêd sel A1 (nettsjinsteande de ynhâld en hokker sel jo eins sille falidearje), druk op Ctrl + F3 om de Name Manager te iepenjen, en definiearje in namme foar dizze formule:

    =RegExpMatch(Sheet1!A1, "^[A-Z]{3}-\d{3}$")

    Of jo kinne de regex ynfiere yn guon sel (A2 yn dit foarbyld) en $A$2 oan it twadde argumint leverje:

    =RegExpMatch(Sheet1!A1, Sheet1!$A$2)

    Om de formule goed te wurkjen, wês wis dat jo in relative referinsje brûke foar it tekst -argumint (A1) en absolute referinsje foar patroan ($A$2).

    Sjoen dat ús formule bedoeld is foar it validearjen fan SKU-nûmers, neame wy it dêrmei: Validate_SKU .

    Wichtige opmerking! By it definiearjen fan de formule, kontrolearje dan dûbel dat it earste argumint ferwiist nei de op it stuit selekteare sel , oars sil de formule net wurkje. Bygelyks, as sel A1 is selektearre op it blêd, set A1 yn it earste argumint (lykas ús oanbefellings); as B2 selektearre is, brûk dan B2 foar it earste argumint, en sa ien. It makket net echt út hokker bepaalde referinsje jo brûke, salang't it oerienkomt mei de no selektearre sel.

    Foar stap foar stapynstruksjes, sjoch asjebleaft Hoe meitsje jo in neamde formule yn Excel.

    3. Gegevensvalidaasje ynstelle

    Selektearje de earste sel om te kontrolearjen (A5 yn ús gefal) en meitsje in oanpaste gegevensvalidaasjeregel basearre op de neamde formule. Hjirfoar dwaan it folgjende:

    1. Klik op Data tab > Data Validation .
    2. Yn de Tastean drop-down list, selektearje Aanpast .
    3. Fier de ûndersteande formule yn yn it korrespondearjende fak.

      =Validate_SKU

    4. Unselektearje de opsje Leech negearje , oars wurket jo regel net.

    Opsjoneel kinne jo ynfiere in oanpast flaterberjocht dat werjûn wurde as ûnjildige gegevens yn in sel ynfierd wurde.

    As jo ​​fiele dat jo de detaillearre stappen nedich binne, gean dan hjir: Hoe kinne jo oanpaste gegevensvalidaasje ynstelle yn Excel.

    4. Gegevensvalidaasje kopiearje nei mear sellen

    Om de falidaasjeynstellingen nei mear sellen te kopiearjen, is dit wat jo moatte dwaan:

    1. Selektearje de sel mei gegevensvalidaasje en druk op Ctrl + C om kopiearje it.
    2. Selektearje oare sellen dy't jo falidearje wolle, klikje der mei rjochts op, klik op Spesjaal plakke , en kies de opsje Falidaasje .
    3. Klik OK .

    Mear ynformaasje is te finen yn How to copy Data Validation.

    No, elke kear as immen besiket in ûnjildige SKU yn te fieren yn ien fan 'e falidearre sellen, de folgjende warskôgingsberjocht sil ferskine:

    E-postbefêstiging mei Regex

    Om e-postvalidaasje út te fieren, begjinne jomei it skriuwen fan in reguliere ekspresje dy't oerienkomt mei in e-mailadres.

    Patroan : ^[\w\.\-]+@[A-Za-z0-9]+[A-Za -z0-9\.\-]*[A-Za-z0-9]+\.[A-Za-z]{2,24}$

    Foar de detaillearre útlis fan de syntaksis sjoch Regex om jildige e-mailadressen te passen.

    En spesifisearje no de falidaasjekritearia troch de al bekende stappen út te fieren:

    1. Fier de boppesteande regex yn yn B2.
    2. Selektearje sel A1 en definiearje in namme mei de namme Validate_Email dy't ferwiist nei:

      =RegExpMatch(Sheet1!A1, Sheet1!$B$2)

    3. Foar sel B5, tapasse oanpaste gegevensvalidaasje mei de ûndersteande formule. It is essensjeel dat de opsje Leem negearje net selektearre wurde moat.

      =Validate_Email

      Dêrneist kinne jo in oanpast flaterberjocht ynstelle dat de brûker freget om in jildich e-mailadres yn te fieren.

    4. Kopiearje de regel nei de ûndersteande sellen.

    As in e-mailadres dat jo ynfiere yn in falidearre sel net oerienkomt mei in regex-patroan, sil de folgjende warskôging pop up:

    Wachtwurden falidearje mei reguliere útdrukkingen

    As jo ​​regex brûke foar wachtwurdvalidaasje, is it earste ding dat jo moatte beslute krekt wat jo reguliere ekspresje moat kontrolearje. Hjir binne wat foarbylden dy't jo op it goede spoar bringe kinne.

    In wachtwurd moat op syn minst 6 tekens lang wêze en kin allinnich letters (haad- of lytse letters) en sifers befetsje:

    Pattern : ^[A-Za-z0-9]{6,}$

    In wachtwurd moat minimaal 6 tekens lang wêze en op syn minst ien letter enien sifer:

    Patroan : ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{6 ,}$

    In wachtwurd moat minimaal 6 tekens lang wêze en op syn minst ien haadletter, ien lytse letter en ien sifer befetsje:

    Patroan : ^(?= .*[A-Z])(?=.*[a-z])(?=.*\d)[A-Za-z\d]{6,}$

    In wachtwurd moat minimaal 6 tekens hawwe lang en befetsje op syn minst ien letter, ien sifer en ien spesjaal karakter:

    Patroan : ^(?=.*[A-Za-z])(?=.*\d )(?=.*[@$!%*#?&_-])[A-Za-z\d@$!%*#?&_-]{6,}$

    Mei it fêststelde patroan kinne jo trochgean mei it ynstellen fan Data Validation:

    1. Fier jo wachtwurd regex yn yn C2.
    2. Selektearje sel A1 en meitsje in neamde formule mei de namme Validate_Password :

      =RegExpMatch(Sheet1!A1, Sheet1!$C$2)

    3. Foar sel C5, meitsje in oanpaste falidaasjeregel mei de ûndersteande formule. Unthâld om it karfakje Leech negearje út te selektearjen.

      =Validate_Password

    4. Kopiearje de regel nei safolle sellen as jo wolle.

    No kinne jo feilich nije wachtwurden tafoegje oan de list. As in ynfierstring net oerienkomt mei de regex, sil de folgjende warskôging jo herinnerje hokker soarten wearden wurde akseptearre:

    Regex Data Validation wurket net

    As Regex Data Validation net wurket yn jo Excel , nei alle gedachten komt it troch ien fan de folgjende redenen.

    RegExpMatch-funksje ûntbrekt

    Foardat jo Data Validation tapasse, wês wis dat jo de koade fan 'e RegExpMatch-funksje yn jo wurkboek ynfoegje.

    Ferkearde reguliereexpression

    Om te soargjen dat jo regex wurket lykas ferwachte, kinne jo in RegExpMatch-formule ynfiere yn guon sel en de resultaten ûndersykje. Foar mear ynformaasje, sjoch asjebleaft Excel Reguliere ekspresje dy't oerienkomt mei foarbylden.

    Om jo reguliere útdrukkingen te analysearjen en te debuggen, kinne jo fergese online regex-testtsjinsten brûke, lykas RegEx101 of RegExr.

    Ferkearde neamde formule

    In heul foarkommende reden fan falidaasje fan gegevens is in Regex neamde formule dy't ferwiist nei in ferkearde sel. Yn alle foarbylden riede wy oan om in formule te definiearjen dy't ferwiist nei A1:

    =RegExpMatch(A1, regex)

    Dit wurket allinich as sel A1 aktyf is by it definiearjen fan in namme en in relative referinsje (sûnder it $ teken) wurdt brûkt.

    It idee is dat in relative referinsje oantsjutte yn de formule (A1) automatysk feroaret op basis fan de relative posysje fan de falidearre sel. Mei oare wurden, sel A1 wurdt gewoan keazen foar gemak en konsistinsje. Yn feite kinne jo sel B1 selektearje en ferwize nei B1, selektearje sel C1 en ferwize nei C1, ensfh. It wichtichste ding is dat de ferwiisde sel de aktive sel wêze moat.

    Om te kontrolearjen oft jo neamde formule goed is, selektearje elke sel yn jo wurkblêd, iepenje de Name Manager, en sjoch hokker sel de formule wiist. As it ferwiist nei de op it stuit selekteare sel, is de formule rjocht. Oars moatte jo de referinsje yn it earste argumint feroarje.

    Yn de skermôfbyldinghjirûnder is sel A7 selektearre, wat betsjut dat in neamde formule A7 moat hawwe yn it earste argumint. It twadde argumint ($A$2) ferwiist nei de regex - dizze referinsje moat konstant bliuwe, dus it is beskoattele mei it $-teken.

    Negearje lege opsje selektearre

    By it ynstellen fan in oanpaste Data Validation-regel, is it wichtich om it karfakje Negearje leech út te selektearjen. Oars sil de regel net wurkje fanwege de folgjende reden:

    As in oerienkomst net fûn wurdt, jout de RegExpMatch-funksje FALSE werom. Mei de opsje Leem negearje selektearre, is FALSE lyk oan leech en wurdt negearre.

    In alternative oplossing is eksplisyt oan te jaan dat de formule TRUE werombringe moat:

    =RegExpMatch(…)=TRUE

    Dat is hoe't jo gegevensvalidaasje dwaan yn Excel mei reguliere útdrukkingen. Ik tankje jo foar it lêzen en sjoch út nei jo te sjen op ús blog nije wike!

    Oefeningswurkboek foar download

    Regex Data Validation foarbylden (.xlsm triem)

    Michael Brown is in tawijd technology-entûsjast mei in passy foar it ferienfâldigjen fan komplekse prosessen mei software-ark. Mei mear as in desennium ûnderfining yn 'e tech-yndustry hat hy syn feardigens yn Microsoft Excel en Outlook, lykas Google Blêden en Docs, oanskerpe. Michael's blog is wijd oan it dielen fan syn kennis en ekspertize mei oaren, en biedt maklik te folgjen tips en tutorials foar it ferbetterjen fan produktiviteit en effisjinsje. Oft jo in betûfte profesjonele of in begjinner binne, Michael's blog biedt weardefolle ynsjoch en praktysk advys om it measte út dizze essensjele software-ark te heljen.