Mifano ya Excel RegEx: kutumia misemo ya kawaida katika fomula

  • Shiriki Hii
Michael Brown

Huwezi kamwe kuelewa kwa nini misemo ya kawaida haitumiki katika fomula za Excel? Sasa, wao ni :) Kwa utendakazi wetu maalum, unaweza kupata, kubadilisha, kutoa na kuondoa mifuatano inayolingana na muundo maalum kwa urahisi.

Mwanzoni, Excel ina kila kitu unachoweza kuhitaji kwa mfuatano wa maandishi. ghiliba. Hmm… vipi kuhusu misemo ya kawaida? Lo, hakuna vitendaji vya Regex vilivyojengwa ndani katika Excel. Lakini hakuna anayesema hatuwezi kuunda zetu wenyewe :)

    Usemi wa kawaida ni nini?

    Usemi wa kawaida (aka regex au <8)>regexp ) ni mfuatano uliosimbwa maalum wa vibambo ambao unafafanua muundo wa utafutaji. Kwa kutumia mchoro huo, unaweza kupata mseto wa herufi zinazolingana katika mfuatano au uthibitishe ingizo la data. Ikiwa unafahamu nukuu ya wildcard, unaweza kufikiria regexes kama toleo la kina la wildcards.

    Maneno ya kawaida yana sintaksia yake inayojumuisha herufi maalum, waendeshaji, na miundo. Kwa mfano, [0-5] inalingana na tarakimu yoyote kutoka 0 hadi 5.

    Semi za kawaida hutumika katika lugha nyingi za programu zikiwemo JavaScript na VBA. Mwisho una kipengee maalum cha RegExp, ambacho tutakitumia kuunda vitendaji vyetu maalum.

    Je, Excel inasaidia regex?

    Kwa kusikitisha, hakuna vitendaji vya Regex vilivyojengwa ndani katika Excel. Ili kuweza kutumia misemo ya kawaida katika fomula zako, itabidi uunde kitendakazi chako kilichofafanuliwa na mtumiaji (VBA).hoja:

    =IF(RegExpMatch(A5, $A$2), "Yes", "No")

    Kwa mifano zaidi ya fomula, tafadhali angalia:

    • Jinsi ya kulinganisha mifuatano kwa kutumia maneno ya kawaida
    • Uthibitishaji wa Data ya Excel kwa kutumia regeksi

    Kitendakazi cha Excel Regex Extract

    Kitendaji cha RegExpExtract hutafuta mifuatano midogo inayolingana na usemi wa kawaida na kutoa zinazolingana zote au inayolingana mahususi.

    RegExpExtract(maandishi, mchoro, [instance_num], [match_case])

    Wapi:

    • Nakala (inahitajika) - mfuatano wa maandishi wa kutafuta katika.
    • Muundo (inahitajika) - usemi wa kawaida wa kulinganisha.
    • Nambari_ya_Mfano (hiari) - nambari ya mfululizo inayoonyesha ni mfano gani dondoo. Ikiondolewa, hurejesha ulinganifu wote uliopatikana (chaguo-msingi).
    • kesi_ya_ya_ya_ya_ya_ya_ya_ya_chaguo (si lazima) - hufafanua iwapo italingana (TRUE au imeachwa) au kupuuza herufi ya maandishi (FALSE).

    Unaweza kupata msimbo wa chaguo la kukokotoa hapa.

    Mfano: jinsi ya kutoa mifuatano kwa kutumia maneno ya kawaida

    Tukichukua mfano wetu mbele kidogo, hebu tutoe nambari za ankara. Kwa hili, tutakuwa tukitumia regex rahisi sana inayolingana na nambari yoyote ya tarakimu 7:

    Muundo : \b\d{7}\b

    Weka mchoro katika A2 na utakamilisha kazi kwa kutumia fomula hii fupi na maridadi:

    =RegExpExtract(A5, $A$2)

    Mchoro ukilinganishwa, fomula hiyo hutoa nambari ya ankara, ikiwa hakuna inayolingana inayopatikana. - hakuna kinachorejeshwa.

    Kwa mifano zaidi, tafadhali angalia: Jinsi ya kutoa mifuatano katika Excelkwa kutumia regex.

    Kitendaji cha Kubadilisha cha Excel Regex

    Kitendaji cha RegExpReplace kinachukua nafasi ya thamani zinazolingana na regex na maandishi unayobainisha.

    RegExpReplace(maandishi, mchoro, uingizwaji , [instance_num], [match_case])

    Wapi:

    • Nakala (inahitajika) - mfuatano wa maandishi wa kutafuta.
    • Mchoro (unahitajika) - usemi wa kawaida wa kulinganisha.
    • Ubadilishaji (unahitajika) - maandishi ya kuchukua nafasi ya mistari midogo inayolingana na.
    • Instance_num. (hiari) - mfano wa kuchukua nafasi. Chaguo-msingi ni "zote zinazolingana".
    • kesi_ya_yanayolingana (si lazima) - hudhibiti iwapo italingana (TRUE au imeachwa) au kupuuza (FALSE) herufi ya maandishi.

    Msimbo wa chaguo za kukokotoa unapatikana hapa.

    Mfano: jinsi ya kubadilisha au kuondoa mifuatano kwa kutumia regexes

    Baadhi ya rekodi zetu zina nambari za kadi ya mkopo. Taarifa hii ni ya siri, na unaweza kutaka kuibadilisha na kitu au kufuta kabisa. Kazi zote mbili zinaweza kukamilishwa kwa usaidizi wa kitendakazi cha RegExpReplace . Vipi? Katika hali ya pili, tutakuwa tukibadilisha na mfuatano tupu.

    Katika jedwali letu la sampuli, nambari zote za kadi zina tarakimu 16, ambazo zimeandikwa katika vikundi 4 vilivyotenganishwa na nafasi. Ili kuzipata, tunaiga muundo kwa kutumia usemi huu wa kawaida:

    Muundo : \b\d{4} \d{4} \d{4} \d{4}\ b

    Kwa uingizwaji, mfuatano ufuatao unatumika:

    Uingizwaji : XXXX XXXX XXXXXXXX

    Na hapa kuna fomula kamili ya kubadilisha nambari za kadi ya mkopo kwa taarifa zisizo na hisia:

    =RegExpReplace(A5, "\b\d{4} \d{4} \d{4} \d{4}\b", "XXXX XXXX XXXX XXXX")

    Na regex na maandishi badala katika seli tofauti ( A2 na B2), fomula inafanya kazi kwa usawa:

    Katika Excel, "kuondoa" ni kesi fulani ya "kubadilisha". Ili kuondoa nambari za kadi ya mkopo, tumia tu mfuatano tupu ("") kwa hoja ya badala :

    =RegExpReplace(A5, "\b\d{4} \d{4} \d{4} \d{4}\b", "")

    Kidokezo. Ili kupata safu ya mistari tupu katika matokeo, unaweza kutumia kitendakazi kingine cha RegExpReplace kama inavyoonyeshwa katika mfano huu: Jinsi ya kuondoa mistari tupu kwa kutumia regex.

    Kwa maelezo zaidi, tafadhali angalia:

    • Jinsi ya kubadilisha mifuatano katika Excel kwa kutumia regex
    • Jinsi ya kuondoa mifuatano kwa kutumia regex
    • Jinsi ya kuvua nafasi nyeupe kwa kutumia regexes

    Zana za Regex ili kulinganisha, kutoa , badilisha na uondoe kamba ndogo

    Watumiaji wa Ultimate Suite yetu wanaweza kupata nguvu zote za misemo ya kawaida bila kuingiza safu moja ya msimbo kwenye vitabu vyao vya kazi. Msimbo wote unaohitajika umeandikwa na wasanidi programu wetu na kuunganishwa vizuri katika Excel yako wakati wa usakinishaji.

    Tofauti na vitendaji vya VBA vilivyojadiliwa hapo juu, utendakazi wa Ultimate Suite ni .NET, ambayo inatoa faida kuu mbili:

      .maneno ya kawaida, ambayo hukuwezesha kuunda ruwaza za kisasa zaidi.

    Jinsi ya kutumia Regex katika Excel

    Huku Ultimate Suite imesakinishwa, kutumia misemo ya kawaida katika Excel ni rahisi kama hatua hizi mbili. :

    1. Kwenye kichupo cha Ablebits Data , katika kikundi cha Nakala , bofya Zana za Regex .

    2. Kwenye kidirisha cha Zana za Regex , fanya yafuatayo:
      • Chagua chanzo cha data.
      • Ingiza mchoro wako wa regex.
      • Chagua chanzo cha data. 24>Chagua chaguo unalotaka: Mechi , Dondoo , Ondoa au Badilisha .
      • Ili kupata matokeo kama fomula na si thamani, chagua Ingiza kama fomula kisanduku tiki.
      • Bofya kitufe cha kitendo.

      Kwa mfano, ili kuondoa nambari za kadi ya mkopo kutoka kwa visanduku. A2:A6, tunasanidi mipangilio hii:

    Katika sehemu ndogo, chaguo la kukokotoa la AblebitsRegex litawekwa kwenye safu wima mpya upande wa kulia wa yako asilia. data. Kwa upande wetu, fomula ni:

    =AblebitsRegexRemove(A2, "\b\d{4} \d{4} \d{4} \d{4}\b")

    Pindi fomula inapatikana, unaweza kuihariri, kunakili au kuihamisha kama fomula yoyote asili.

    Jinsi ya kuingiza fomula ya Regex moja kwa moja kwenye kisanduku

    Vitendaji vya AblebitsRegex vinaweza pia kuingizwa moja kwa moja kwenye kisanduku bila kutumia kiolesura cha programu jalizi. Hivi ndivyo unavyofanya:

    1. Bofya kitufe cha fx kwenye upau wa fomula au Ingiza Kazi kwenye kichupo cha Mfumo .
    2. Katika Ingiza Kitendaji kisanduku kidadisi, chagua AblebitsUDFs kategoria, chagua chaguo la kukokotoa, na ubofye SAWA.

    3. Fafanua hoja za chaguo la kukokotoa kama unavyofanya kawaida na ubofye SAWA. Imekamilika!

    Kwa maelezo zaidi, tafadhali angalia Zana za Regex za Excel.

    Hiyo ndiyo jinsi ya kutumia misemo ya kawaida ili kulinganisha, kutoa, kubadilisha na kuondoa maandishi katika visanduku vya Excel. Ninakushukuru kwa kusoma na kutarajia kukuona kwenye blogu yetu wiki ijayo!

    Vipakuliwa vinavyopatikana

    Excel Regex - mifano ya fomula (.xlsm file)

    Ultimate Suite - toleo la majaribio (.exe faili)

    au .NET msingi) au usakinishe zana za wahusika wengine zinazosaidia regeksi.

    Laha ya kudanganya ya Excel Regex

    Iwapo muundo wa regex ni rahisi sana au wa kisasa sana, umeundwa kwa kutumia sintaksia ya kawaida. Mafunzo haya hayalengi kukufundisha usemi wa kawaida. Kwa hili, kuna nyenzo nyingi mtandaoni, kutoka kwa mafunzo ya bila malipo kwa wanaoanza hadi kozi zinazolipishwa kwa watumiaji wa hali ya juu.

    Hapa chini tunatoa rejeleo la haraka la ruwaza kuu za RegEx ambazo zitakusaidia kupata ufahamu wa mambo ya msingi. Inaweza pia kufanya kazi kama laha lako la kudanganya unaposoma mifano zaidi.

    Ikiwa umeridhika na usemi wa kawaida, unaweza kuruka moja kwa moja hadi kwenye vitendaji vya RegExp.

    Herufi

    Hizi ndio mifumo inayotumika sana ili kulinganisha herufi fulani.

    Mchoro Maelezo Mfano Zinazolingana
    . Herufi ya kadi-mwitu: inalingana na herufi yoyote isipokuwa kikomo cha mstari .ot dot , moto , pot , @ot
    \d Herufi ya tarakimu: tarakimu yoyote kutoka 0 hadi 9 \d Katika a1b , mechi 1
    \D Herufi yoyote ambayo SI tarakimu \D Katika a1b , inalingana a na b
    \s Herufi ya nafasi nyeupe: nafasi, kichupo, laini mpya na urejeshaji wa gari .\s. Katika Senti 3 , inalingana 3 c
    \S Yoyoteherufi isiyo ya nafasi nyeupe \S+ Katika senti 30 , inalingana 30 na senti
    \w Herufi ya neno: herufi yoyote ya ASCII, tarakimu au kistari \w+ Katika 5_paka*** , inalingana 5_paka
    \W Herufi yoyote ambayo SI herufi na nambari au kusisitiza \W+ Katika 5_paka*** , inalingana ***
    \t Tab
    \n Mstari mpya \n\d+ Katika mistari miwili kamba iliyo hapa chini, inalingana na paka 10

    5

    mbwa 10

    \ Inaepuka maana maalum ya mhusika, ili uweze itafute \.

    \w+\.

    Huepuka kipindi ili uweze kupata neno halisi "." herufi katika mfuatano

    Bw. , Bi. , Prof.

    Madarasa ya wahusika

    Kwa kutumia ruwaza hizi, unaweza kulinganisha vipengele vya seti tofauti za wahusika.

    Muundo Maelezo Mfano Inayolingana
    [herufi] Inalingana na herufi yoyote kwenye mabano d[oi]g mbwa na chimba
    [^herufi] Inalingana na herufi yoyote SI kwenye mabano d[^oi]g Inayolingana dag, dug , d1g

    Hailingani na mbwa na chimba

    [from–to] Inalingana na herufi yoyote katika safu kati yamabano [0-9]

    [a-z]

    [A-Z]

    Nambari yoyote kutoka 0 hadi 9

    Herufi ndogo yoyote

    Herufi kubwa yoyote

    Vikadiriaji

    Vikadiriaji ni vielezi maalum vinavyobainisha idadi ya herufi zinazolingana. Kikadiriaji hutumika kila mara kwa herufi kabla yake.

    Muundo Maelezo Mfano Zinazolingana
    * Matukio sufuri au zaidi 1a* 1, 1a , 1aa, 1aaa , nk.
    + Tukio moja au zaidi po+ Katika pot , mechi po

    Katika duni , mechi poo

    ? Sifuri au tukio moja roa?d barabara, fimbo
    *? Sifuri au matukio zaidi, lakini machache iwezekanavyo 1a*? Katika 1a , 1aa na 1aaa , zinazolingana 1a
    +? Tukio moja au zaidi, lakini machache iwezekanavyo po+? Katika sufuria na maskini , inalingana po
    ?? Sifuri au tukio moja , lakini chache iwezekanavyo roa?? Katika barabara na rod , inalingana ro
    {n} Inalingana na muundo uliotangulia n mara \d{3} Nambari 3 haswa
    {n ,} Inalingana na mchoro uliotangulia n au mara zaidi \d{3,} tarakimu 3 au zaidi
    {n,m} Inalingana namchoro uliotangulia kati ya n na mara m \d{3,5} Kutoka tarakimu 3 hadi 5

    Kupanga

    Miundo ya kikundi hutumiwa kunasa kamba ndogo kutoka kwa mfuatano wa chanzo, ili uweze kufanya operesheni nayo.

    Syntax Maelezo Mfano Zinazolingana
    (muundo) Kikundi cha kunasa: hunasa kamba ndogo inayolingana na kuikabidhi nambari ya kawaida 14>(\d+) Katika paka 5 na mbwa 10 , inanasa 5 (kikundi 1) na 10 (kikundi 2)
    (?:pattern) Kikundi kisichokamata watu: kinalingana na kikundi lakini hakinaki (\d+)(?: mbwa) Katika paka 5 na mbwa 10 , inanasa 10
    \1 Yaliyomo kwenye kikundi 1 (\d+)\+(\d+)=\2\+\1 Inalingana na 5+10=10+5 na kunasa 5 na 10 , ambazo ziko kwenye vikundi vya kunasa
    \2 Yaliyomo kwenye kikundi 2

    Nanga

    Nanga hubainisha nafasi katika mfuatano wa ingizo pa kutafuta mechi.

    Nanga Maelezo Mfano Inayolingana
    ^ Mwanzo wa mfuatano

    Kumbuka: [^ndani ya mabano] inamaanisha "si"

    ^\d+ Nambari yoyote ya tarakimu kwenye mwanzo wa kamba.

    Katika paka 5 na mbwa 10 , inalingana 5

    $ Mwisho wa mfuatano \d+$ Nambari yoyote ya tarakimu mwishoni mwa mfuatano.

    Katika 10Y

    (?<=) Mtazamo mzuri nyuma (?<=Y)X Inalingana na usemi X inapotanguliwa na Y (yaani ikiwa kuna Y nyuma ya X)
    (? Nyuma hasi (? ) 14>Inalingana na usemi X wakati HAJATANGULIWA na Y

    Kwa kuwa sasa unajua mambo muhimu, wacha tuendelee hadi sehemu inayovutia zaidi - kwa kutumia regexes kwenye data halisi ili kuchanganua mifuatano na kupata taarifa inayohitajika. Ikiwa unahitaji maelezo zaidi kuhusu sintaksia, mwongozo wa Microsoft kuhusu Lugha ya Maonyesho ya Kawaida inaweza kusaidia.

    Vitendaji maalum vya RegEx kwa Excel

    Kama ilivyotajwa tayari, Microsoft Excel haina vitendaji vya ndani vya RegEx. Ili kuwezesha usemi wa kawaida, tumeunda vitendaji vitatu maalum vya VBA (vitendaji vilivyobainishwa na mtumiaji). Unaweza kunakili misimbo kutoka kwa kurasa zilizounganishwa hapa chini au kutoka kwa sampuli yetu. kitabu cha kazi, na kisha ubandike katika faili zako za Excel.

    Jinsi VBA RegExp inavyofanya kazi

    Sehemu hii inafafanua ufundi wa ndani na inaweza kuwa int. inawahusu wale wanaotaka kujua hasa kile kinachotokea upande wa nyuma.

    Ili kuanza kutumia misemo ya kawaida katika VBA, unahitaji ama kuamilisha maktaba ya marejeleo ya kitu cha RegEx au utumie kitendakazi cha CreateObject. Ili kukuepusha na matatizo ya kuweka marejeleo katika kihariri cha VBA, tulichagua mbinu ya mwisho.

    Kipengee cha RegExp kina sifa 4:

    • Mchoro - ni muundo ili kuendana na mfuatano wa ingizo.
    • Ulimwengu - hudhibiti iwapo utapata zinazolingana zote katika mfuatano wa ingizo au wa kwanza pekee. Katika utendakazi wetu, imewekwa kuwa Kweli ili kupata zinazolingana zote .
    • MultiLine - huamua kama italingana na mchoro kwenye nafasi za mistari katika mifuatano ya mistari mingi au pekee. katika mstari wa kwanza. Katika misimbo yetu, imewekwa kuwa Kweli kutafuta katika kila mstari .
    • IgnoreCase - inafafanua kama usemi wa kawaida ni nyeti kwa herufi (chaguomsingi) au kesi- isiyojali (imewekwa kuwa Kweli). Kwa upande wetu, hiyo inategemea jinsi unavyosanidi kigezo cha hiari cha match_case . Kwa chaguomsingi, vitendaji vyote ni nyeti kwa kesi .

    vikomo vya VBA RegExp

    Excel VBA hutekelezea mifumo muhimu ya regex, lakini haina vipengele vingi vya kina. inapatikana katika .NET, Perl, Java, na injini nyingine za regex. Kwa mfano, VBA RegExp haitumii virekebishaji vya ndani kama vile (?i) kwa ulinganishaji usio na hisia au (?m) kwa hali ya mistari mingi, kuangalia nyuma, madarasa ya POSIX, kutaja machache.

    Excel Regex Chaguo za kukokotoa za Kulinganisha

    Kitendo cha kukokotoa cha RegExpMatch hutafuta mfuatano wa ingizo kwa maandishi yanayolingana na usemi wa kawaida na kurejesha TRUE ikipatana na inayolingana, FALSE vinginevyo.

    RegExpMatch(text, pattern, [ match_case])

    Wapi:

    • Maandishi (inahitajika) - mfuatano mmoja au zaidi wa kutafuta.
    • Muundo ( inahitajika) - ya kawaidausemi wa kufananisha.
    • Kesi_ya_match (si lazima) - aina ya mechi. TRUE au imeachwa - nyeti kwa kesi; FALSE - insensitive

    Msimbo wa chaguo za kukokotoa upo hapa.

    Mfano: jinsi ya kutumia misemo ya kawaida ili kulinganisha mifuatano

    Katika mkusanyiko wa data ulio hapa chini, tuseme unataka ili kutambua maingizo yaliyo na misimbo ya SKU.

    Kwa kuzingatia kwamba kila SKU inaanza na herufi kubwa 2, ikifuatiwa na kistari, ikifuatiwa na tarakimu 4, unaweza kuzilinganisha kwa kutumia usemi ufuatao.

    Muundo : \b[A-Z]{2}-\d{4}\b

    Ambapo [A-Z]{2} ina maana ya herufi kubwa zozote 2 kutoka A hadi Z na \d{4 } inamaanisha tarakimu zozote 4 kutoka 0 hadi 9. Mpaka wa neno \b unaonyesha kuwa SKU ni neno tofauti na si sehemu ya mfuatano mkubwa zaidi.

    Mchoro ukiwa umeanzishwa, anza kuandika fomula kama kawaida. , na jina la kitendakazi litaonekana katika orodha iliyopendekezwa na Excel's AutoComplete:

    Kwa kudhani kuwa mfuatano asili uko katika A5, fomula inakwenda kama ifuatavyo:

    =RegExpMatch(A5, "\b[A-Z]{2}-\d{3}\b")

    Kwa urahisi, unaweza kuingiza usemi wa kawaida katika kisanduku tofauti na utumie marejeleo kamili ($A$2) kwa hoja ya muundo t. Hii inahakikisha kwamba anwani ya seli itasalia bila kubadilika unaponakili fomula kwenye visanduku vingine:

    =RegExpMatch(A5, $A$2)

    Ili kuonyesha lebo zako za maandishi badala ya TRUE na FALSE, nest RegExpMatch katika kitendakazi cha IF na bainisha maandishi unayotaka katika thamani_kama_kweli na thamani_if_false pamoja na 5 inatoa 15 , inalingana 15

    \b Mpaka wa maneno \bjoy\b Inalingana na furaha kama neno tofauti, lakini si katika ya kufurahisha . \B SIO mpaka wa neno 15> \Bjoy\B Inalingana furaha katika ya kufurahisha , lakini si kama neno tofauti.

    Unda mbadala (AU)

    Operesheni mbadala huwezesha mantiki ya AU, kwa hivyo unaweza kulinganisha kipengele hiki au kile.

    Jenga Maelezo Mfano Zinazolingana

    Michael Brown ni mpenda teknolojia aliyejitolea na mwenye shauku ya kurahisisha michakato changamano kwa kutumia zana za programu. Akiwa na uzoefu wa zaidi ya muongo mmoja katika tasnia ya teknolojia, ameboresha ujuzi wake katika Microsoft Excel na Outlook, pamoja na Majedwali ya Google na Hati. Blogu ya Michael imejitolea kushiriki maarifa na ujuzi wake na wengine, kutoa vidokezo na mafunzo ambayo ni rahisi kufuata ili kuboresha tija na ufanisi. Iwe wewe ni mtaalamu aliyebobea au umeanza, blogu ya Michael inatoa maarifa muhimu na ushauri wa vitendo ili kupata manufaa zaidi kutoka kwa zana hizi muhimu za programu.