Excel-Datenvalidigo uzante regulajn esprimojn (Regex)

  • Kundividu Ĉi Tion
Michael Brown

La lernilo montras kiel fari datumvalidigon en Excel uzante regulajn esprimojn helpe de kutima RegexMatch-funkcio.

Se temas pri limigi uzantan enigon en Excel-laborfolioj, Datenvalidigo. estas nemalhavebla. Ĉu vi volas permesi nur nombrojn aŭ datojn en donita ĉelo? Aŭ limigi tekstovalorojn al specifa longo? Aŭ eble malpermesu tempojn ekster difinita intervalo? Neniu problemo, ĉio ĉi povas esti facile farita per antaŭdifinitaj aŭ kutimaj validigaj kriterioj. Sed kio se mi volas permesi nur validajn retadresojn aŭ ĉenojn kiuj kongruas kun specifa ŝablono? Ve, tio ne eblas. Regex vi diras? Hmm... tio eble funkcios!

    Kiel fari Excel-Datumvalidadon kun Regex

    Bedaŭrinde, neniu el la enkonstruitaj Excel-ecoj subtenas regeksojn, kaj Datumvalidado ne estas escepto. Por povi validigi ĉelan enigon per regulaj esprimoj, vi unue devas krei kutiman Regex-funkcion. Alia komplikaĵo estas, ke VBA-uzant-difinitaj funkcioj ne povas esti servataj rekte al Data Validation - vi bezonos mediaciiston en formo de nomita formulo.

    Konsiderante la supre, ni mallonge skizu la paŝojn por fari. por validigi datumojn en Excel uzante regeksojn:

    1. Kreu kutiman Regex-funkcion kiu kontrolas ĉu eniga valoro kongruas kun regula esprimo.
    2. Difinu nomon por via Regex-formulo.
    3. Agordu regulon de Datenvalidigo bazita sur la nomita formulo.
    4. Kopiu lavalidaj agordoj al tiom da ĉeloj kiom vi volas.

    Ĉu ŝajnas plano? Ni provu efektivigi ĝin praktike!

    Excel-datumvalidigo per kutimaj regulaj esprimoj

    Ĉi tiu ekzemplo traktas tre oftan kazon - kiel permesi nur la valorojn de specifa ŝablono.

    Supozante, ke vi konservas iujn SKU-kodojn en via laborfolio kaj volas certigi, ke nur la kodoj kongruaj kun difinita ŝablono eniras la liston. Kondiĉe ke ĉiu SKU konsistas el 2 grupoj de signoj apartigitaj per streketo, la unua grupo inkluzive de 3 ĉapelitaj literoj kaj la dua grupo - 3 ciferoj, vi povas identigi tiajn valorojn per la suba regex.

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

    Bonvolu rimarki, ke la komenco (^) kaj fino ($) de la ĉeno estas ankritaj, do neniuj signoj krom en la ŝablono povus esti enigita en ĉelon.

    1. Aldonu kutiman RegExpMatch-funkcion

    Komencu enmeti la RegExpMatch-funkcion en vian laborlibron. La kodo jam estas skribita de niaj Excel-guruoj, do vi nur bezonas kopii ĝin el la supre ligita paĝo kaj alglui en vian VBA-redaktilon.

    Jen la sintakso de la funkcio por via referenco:

    RegExpMatch(text , ŝablono, [match_case])

    Kie:

    • Teksto (postulata) - fontoĉeno (en nia kunteksto - validigita ĉelo).
    • Ŝablono (postulata) - regula esprimo kongrua.
    • Match_case (laŭvola) - kongrua tipo. VERA aŭ preterlasita - kazo-sentema; MALSO - nedistinga majuskloj.

    Konsileto. Se vi estas uzanto de nia Ultimate Suite, tiam vi povas fari Regex Data Validation en Excel sen aldoni ajnan VBA-kodon al viaj laborlibroj. Nur utiligu kutiman funkcion AblebitsRegexMatch inkluzivita kun niaj Regex Iloj.

    2. Kreu nomitan formulon

    En via cela laborfolio, elektu ĉelon A1 (sendepende de ĝia enhavo kaj negrave kiun ĉelon vi efektive validigos), premu Ctrl + F3 por malfermi la Noman Administranton, kaj difinu nomon. por ĉi tiu formulo:

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

    Aŭ vi povas enigi la regex en iu ĉelo (A2 en ĉi tiu ekzemplo) kaj provizi $A$2 al la dua argumento:

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

    Por ke la formulo funkciu ĝuste, nepre uzu relativan referencon por la argumento teksto (A1) kaj absolutan referencon por ŝablono ($A$2).

    Konsiderante ke nia formulo estas celita por validigi SKU-numerojn, ni nomas ĝin laŭe: Validi_SKU .

    Grava noto! Difininte la formulon, bonvolu kontroli, ke la unua argumento rilatas al la nuntempe elektita ĉelo , alie la formulo ne funkcios. Ekzemple, se ĉelo A1 estas elektita sur la folio, metu A1 en la unuan argumenton (laŭ niaj rekomendoj); se B2 estas elektita, tiam uzu B2 por la unua argumento, kaj tiel unu. Ne vere gravas, kiun apartan referencon vi uzas, kondiĉe ke ĝi kongruas kun la nuntempe elektita ĉelo.

    Por paŝo post paŝo.instrukcioj, bonvolu vidi Kiel fari nomitan formulon en Excel.

    3. Agordu Datumvalidigon

    Elektu la unuan ĉelon por esti kontrolita (A5 en nia kazo) kaj faru kutiman datuman validigan regulon bazitan sur la nomita formulo. Por tio, faru la jenon:

    1. Alklaku la langeton Datumoj > Valumado de datumoj .
    2. En la Permesi falliston, elektu Persona .
    3. Enigu la suban formulon en la responda skatolo.

      =Validate_SKU

    4. Malelektu la opcion Ignori malplenan , alie via regulo ne funkcios.

    Laŭvole, vi povas tajpi kutima erarmesaĝo por esti montrata kiam nevalidaj datumoj estas enmetitaj en ĉelo.

    Se vi sentas, ke vi bezonas la detalajn paŝojn, jen vi iras: Kiel agordi laŭmendan Valumado de Datumoj en Excel.

    4. Kopiu datumvalidigon al pli da ĉeloj

    Por kopii la validajn agordojn al pli da ĉeloj, jen kion vi devas fari:

    1. Elektu la ĉelon kun datumvalidigo kaj premu Ctrl + C por kopiu ĝin.
    2. Elektu aliajn ĉelojn, kiujn vi volas validigi, dekstre alklaku ilin, alklaku Alglui Specialan , kaj elektu la opcion Valimigo .
    3. Alklaku OK .

    Pliaj informoj troveblas en Kiel kopii datuman validigon.

    Nun, ĉiufoje kiam iu provas enigi nevalidan SKU en iu el la validigitaj ĉeloj, jen averta mesaĝo aperos:

    Retpoŝta validigo kun Regex

    Por fari retpoŝtan validigon, vi komencaskun skribado de regula esprimo, kiu kongruas kun retadreso.

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

    Por la detala klarigo de la sintakso, bv. vidu Regex por kongrui kun validaj retadresoj.

    Kaj nun, specifu la validigajn kriteriojn plenumante la jam konatajn paŝojn:

    1. Enigu la supran regex en B2.
    2. Elektu ĉelon A1 kaj difinu nomon nomitan Validi_Retpoŝton kiu rilatas al:

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

    3. Por ĉelo B5, apliku laŭmendan Datuman Valumado uzante la suban formulon. Nepras, ke la opcio Ignori malplenan estu malelektita.

      =Validate_Email

      Aldone, vi povas agordi kutiman erarmesaĝon instigante la uzanton enigi validan retadreson.

    4. Kopiu la regulon al la subaj ĉeloj.

    Se retpoŝtadreso, kiun vi enigas en validigita ĉelo, ne kongruas kun regexmodelo, la sekva atentigo estos pop up:

    Konvalidante pasvortojn per regulaj esprimoj

    Kiam oni uzas regex por pasvorvalidigo, la unua afero por decidi estas ĝuste kion via regula esprimo devus kontroli. Jen kelkaj ekzemploj, kiuj povus starigi vin sur la ĝusta vojo.

    Pasvorto devas havi almenaŭ 6 signojn longa kaj povas enhavi nur literojn (majusklojn aŭ minusklojn) kaj ciferojn:

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

    Pasvorto devas havi minimume 6 signojn longa kaj inkluzivi almenaŭ unu literon kajunu cifero:

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

    Pasvorto devas esti almenaŭ 6 signojn longa kaj inkluzivi almenaŭ unu majusklan literon, unu minusklan literon kaj unu ciferon:

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

    Pasvorto devas esti min 6 signoj longa kaj inkluzivu almenaŭ unu literon, unu ciferon kaj unu specialan signon:

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

    Kun la ŝablono establita, vi povas pluiri al agordo de Datenvalidigo:

    1. Enigu vian pasvorton regex en C2.
    2. Elektu ĉelon A1 kaj kreu nomitan formulon nomitan Validu_Pasvorton :

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

    3. Por ĉelo C5, kreu kutiman validigan regulon kun la suba formulo. Memoru malelekti la markobutonon Ignori malplenan .

      =Validate_Password

    4. Kopiu la regulon al tiom da ĉeloj kiom vi volas.

    Nun, vi povas sekure aldoni novajn pasvortojn al la listo. Se eniga ĉeno ne kongruas kun la regex, la sekva atentigo memorigos al vi kiajn valorojn oni akceptas:

    Regex-Datuma Valido ne funkcias

    Se Regex-Datuma Valido ne funkcias en via Excel. , plej verŝajne ĝi estas pro unu el la sekvaj kialoj.

    Mankas funkcio RegExpMatch

    Antaŭ ol apliki Datan Validadon, nepre enmetu la kodon de la funkcio RegExpMatch en vian laborlibron.

    Malĝusta regulaesprimo

    Por certigi, ke via regex funkcias kiel atendite, vi povas enigi formulon RegExpMatch en iu ĉelo kaj ekzameni la rezultojn. Por pliaj informoj, bonvolu vidi Excel-regula esprimo kongruanta kun ekzemploj.

    Por analizi kaj sencimigi viajn regulajn esprimojn, vi povas uzi senpagajn interretajn regex-testservojn kiel RegEx101 aŭ RegExr.

    Malĝusta nomita formulo

    Tre ofta kialo de fiasko de validumado de datumoj estas Regex nomita formulo rilatanta al malĝusta ĉelo. En ĉiuj ekzemploj, ni rekomendis difini formulon rilatantan al A1:

    =RegExpMatch(A1, regex)

    Ĉi tio funkcias nur se ĉelo A1 estas aktiva dum difinado de nomo kaj relativa referenco (sen la $-signo) estas uzata.

    La ideo estas ke relativa referenco specifita en la formulo (A1) aŭtomate ŝanĝiĝos surbaze de la relativa pozicio de la validigita ĉelo. Alivorte, ĉelo A1 estas elektita nur por oportuno kaj konsistenco. Fakte, vi povas elekti ĉelon B1 kaj rilati al B1, elekti ĉelon C1 kaj raporti al C1, ktp. La ŝlosilo estas, ke la referenca ĉelo estu la aktiva ĉelo .

    Por kontroli ĉu via nomita formulo estas ĝusta, elektu iun ajn ĉelon en via laborfolio, malfermu la Nomu Administranton, kaj vidu al kiu ĉelo montras la formulo. Se ĝi rilatas al la nuntempe elektita ĉelo, la formulo estas ĝusta. Alie, vi devus ŝanĝi la referencon en la unua argumento.

    En la ekrankopiosube, ĉelo A7 estas elektita, kio signifas, ke nomita formulo havu A7 en la unua argumento. La dua argumento ($A$2) rilatas al la regex - ĉi tiu referenco supozeble restas konstanta, do ĝi estas ŝlosita per la $-signo.

    Ignori malplenan opcion elektitan

    Kiam agordas kutiman regulon pri Validado de Datumoj, estas grave malelekti la markobutonon Ignori malplenan . Alie, la regulo ne funkcios pro la sekva kialo:

    Se kongruo ne estas trovita, la funkcio RegExpMatch liveras FALSE. Kun la opcio Ignori malplenan elektita, FALSO egalas al malplena kaj estas ignorita.

    Alternativa solvo eksplicite asertas, ke la formulo devas redoni VERA:

    =RegExpMatch(…)=TRUE

    Tiel fari Datumvalidigon en Excel uzante regulajn esprimojn. Mi dankas vin pro legado kaj antaŭĝojas vidi vin en nia blogo venontsemajne!

    Praktiku laborlibron por elŝuto

    Ekzemploj pri Regex Data Validation (.xlsm-dosiero)

    Michael Brown estas diligenta teknologia entuziasmulo kun pasio por simpligi kompleksajn procezojn uzante programarajn ilojn. Kun pli ol jardeko da sperto en la teknologia industrio, li perfektigis siajn kapablojn en Microsoft Excel kaj Outlook, same kiel Google Sheets kaj Docs. La blogo de Mikaelo estas dediĉita al kunhavigi siajn sciojn kaj kompetentecon kun aliaj, provizante facilajn sekvajn konsiletojn kaj lernilojn por plibonigi produktivecon kaj efikecon. Ĉu vi estas sperta profesiulo aŭ komencanto, la blogo de Mikaelo ofertas valorajn komprenojn kaj praktikajn konsilojn por eltiri la plej multajn el ĉi tiuj esencaj programaj iloj.