Jedwali la yaliyomo
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. :
- Kwenye kichupo cha Ablebits Data , katika kikundi cha Nakala , bofya Zana za Regex .
- 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:
- Bofya kitufe cha fx kwenye upau wa fomula au Ingiza Kazi kwenye kichupo cha Mfumo .
- Katika Ingiza Kitendaji kisanduku kidadisi, chagua AblebitsUDFs kategoria, chagua chaguo la kukokotoa, na ubofye SAWA.
- 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
Unda mbadala (AU)
Operesheni mbadala huwezesha mantiki ya AU, kwa hivyo unaweza kulinganisha kipengele hiki au kile.
Jenga | Maelezo | Mfano | Zinazolingana |