Kendu zuriuneak eta lerro hutsak Excel-en Regex erabiliz

  • Partekatu Hau
Michael Brown

Zune zuriak modu eraginkorrenean kudeatu nahi dituzu? Erabili adierazpen erregularrak gelaxka bateko zuriune guztiak kentzeko, hainbat zuriune karaktere bakarrarekin ordezkatzeko, zenbakien arteko zuriuneak soilik moztu eta abar.

Erabilitzen ari zaren sarrerako datuak edozein dela ere, nekez aurkituko duzu zuriunerik gabeko datu multzoa. Kasu gehienetan, zuriuneak ona dira: informazio-zati desberdinak bisualki bereizteko erabiltzen dituzu, errazago hautemateko. Zenbait egoeratan, ordea, gaiztoa izan daiteke - espazio gehigarriek zure formulak nahas ditzakete eta zure lan-orriak ia kudeaezinak izan daitezke.

    Zergatik erabili adierazpen erregularrak Excel-en zuriuneak mozteko?

    Exelen lan-orrietako zuriuneak kentzeko esamolde erregularrak erabiltzearen oinarrian murgildu baino lehen, lehenik eta behin burura etortzen zaigun galderari erantzun nahiko nioke: zergatik behar ditugu regexeak Excel-ek TRIM dagoeneko baduenean. funtzioa?

    Desberdintasuna ulertzeko, ikus dezagun kasu bakoitzean zuriunetzat hartzen den:

    • Trim funtzio integratuak espazio karakterea bakarrik kendu dezake. 7 biteko ASCII sisteman 32 balioa duena.
    • Adierazpen erregularrek zuriune mota batzuk identifikatu ditzakete, hala nola, zuriunea ( ), tabulazioa (\t), orga-itzulera (\r) eta berria. lerroa (\n). Horrez gain, mota guzti hauekin bat datorren hutsune karakterea (\s) dago eta oso lagungarria da sarrera gordina garbitzeko.datuak.

    Eszenaren atzean zer gertatzen den zehatz-mehatz jakinda, askoz errazagoa da irtenbide bat lantzea, ezta?

    Nola gaitu adierazpen erregularrak Excel-en

    Gauza jakina da kutxaz kanpoko Excel-ek ez duela adierazpen erregularrak onartzen. Horiek gaitzeko, VBA funtzio pertsonalizatu bat sortu behar duzu. Zorionez, dagoeneko badugu bat, RegExpReplace izenekoa. Itxaron, zergatik "ordezkatu" kentzeaz ari garen bitartean? Excel hizkuntzan, "kendu" "ordezkatu kate huts batekin" beste hitz bat baino ez da :)

    Funtzioa zure Excel-era gehitzeko, kopiatu bere kodea orrialde honetatik, itsatsi VBA editorean. , eta gorde zure fitxategia makro-gaitutako lan-liburua gisa (.xlsm).

    Hona hemen funtzioaren sintaxia erreferentzia gisa:

    RegExpReplace(testua, eredua, ordezkapena, [instantzia_zenbakia] , [match_case])

    Lehenengo hiru argumentuak beharrezkoak dira, azken biak aukerakoak dira.

    Non:

    • Testua - jatorrizko katea. bilatu.
    • Eredua - bilatu beharreko adierazpen erregularra.
    • Ordezpena - ordezkatu beharreko testua. zuriak kentzeko, argumentu hau honela ezarriko zenuke:
      • kate hutsa ("") zuriune guztiak mozteko
      • zuriune karaktere (" ") zuriune bat baino gehiago zuriune karaktere batekin ordezkatzeko
    • Instantzia_zenbakia (aukerakoa) - instantziaren zenbakia. Kasu gehienetan, instantzia guztiak ordezkatzeko utziko duzu(lehenetsia).
    • Match_case (aukerakoa) - balio boolearra bat (EGIA) edo ez ikusi (FALSE) testuaren maiuskulak eta minuskulak bat etorri behar den adierazten duena. Zuriunerako, ez du garrantzirik eta, beraz, baztertu egiten da.

    Informazio gehiagorako, ikusi RegExpReplace funtzioa.

    Zuzki zuriak nola kendu regexekin - adibideak

    Horrekin RegExpReplace funtzioa gehitu da zure lan-koadernoan, aurre ditzagun eszenatoki desberdinak banan-banan.

    Kendu zuriune guztiak regex erabiliz

    Kate bateko zuriune guztiak kentzeko, besterik gabe, edozein zuriune karaktere bilatu behar duzu, barne. zuriune bat, fitxa bat, orga-itzulera eta lerro-jarrera bat, eta ordezkatu kate huts batekin ("").

    Eredua : \s+

    Ordezkatzea : ""

    Iturburu-katea A5-n dagoela suposatuz, B5-ko formula hau da:

    =RegExpReplace(A5, "\s+", "")

    Zure ereduak kudeatzea errazteko. , regex sartu dezakezu aurrez definitutako gelaxka batean eta eman formulari $A$2 bezalako erreferentzia absolutu bat erabiliz, beraz, gelaxka-helbidea aldatu gabe geratuko da formula zutabean behera kopiatzean.

    =RegExpReplace(A5, $A$2, "")

    Kendu zuriune bat baino gehiago

    Kendu zuri gehigarriak (hau da, zuriune gehiago). n ondoz ondoko zuriune bat), erabili \s+ regex bera baina ordezkatu aurkitutako bat-etortzeak zuriune bakarreko karaktere batekin.

    Eredua : \s+

    Ordezpena : " "

    =RegExpReplace(A5, "\s+", " ")

    Mesedez, kontuz formula honek zuriune bat mantentzen duela artean ez ezikdatu-multzoaren azpian, demagun hasierako/azkeneko espazio guztiak eta tarteko zuriune guztiak moztu nahi dituzula, hainbat lerro osorik mantenduz. Ataza betetzeko, bi RegExpReplace funtzio desberdin beharko dituzu.

    Lehenengo funtzioak zuriune bat baino gehiago ordezkatzen ditu zuriune bakar batekin.

    =RegExpReplace(A5, " +", " ")

    Besteak zuriuneak kentzen ditu. lerro baten hasieratik eta amaieratik:

    =RegExpReplace(A5, "^ +| +$", "")

    Bi funtzioak bata bestean habiaratu besterik ez dago:

    =RegExpReplace(RegExpReplace(A5, " +", " "), "^ +| +$", "")

    Eta bat lortuko duzu emaitza ezin hobea:

    Regex, hainbat zuriune karaktere batekin ordezkatzeko

    Kate batetik zuriune guztiak kendu nahi badituzu eta ondoz ondoko zuriune talde bakoitza ordezkatu nahi baduzu. karaktere zehatz batekin, hau da egin behar duzuna:

    Lehenik eta behin, erabili erregulazio hau hasierako eta amaierako zuriuneak mozteko:

    =RegExpReplace(A8, "^[\s]+|[\s]+$", "")

    Ondoren, hornitu goiko funtzioa Zehazten duzun karakterearekin ondoz ondoko zuriune bat edo gehiago ordezkatzen dituen beste RegExpReplace baten testua argumentuari, adibidez. marratxo bat:

    Eredua : \s+

    Ordezkatzea : -

    Iturburu-katea A8-n dagoela suposatuz, formula forma hau hartzen du:

    =RegExpReplace(RegExpReplace(A8, "^[\s]+|[\s]+$", ""), "\s+", "-")

    Edo ereduak eta ordezkapenak gelaxka bereizietan sar ditzakezu pantaila-argazkian erakusten den bezala:

    Regex lerro hutsak kentzeko

    Hona hemen gelaxka batean hainbat lerro dituzten erabiltzaileek maiz egiten duten galdera: "Nire gelaxketan lerro huts asko daude. Ba al dago lortzeko modurikgelaxka bakoitzean igaro eta lerro bakoitza eskuz ezabatzeaz gain?" Erantzuna: Hori erraza da!

    Uneko lerroaren hasieratik ^ karaktere bakar bat ez duten lerro hutsak lotzea. hurrengo lerroa \n, regex hau da:

    Eredua : ^\n

    Ikusmen hutsik dauden lerroek zuriuneak edo tabulazioak badituzte, erabili adierazpen erregular hau:

    Eredua : ^[\t ]*\n

    Ordezkatu erreexua kate huts batekin formula hau erabiliz, eta lerro huts guztiak aldi berean desagertuko dira!

    =RegExpReplace(A5, $A$2, "")

    Zune zuriak kentzea RegEx Tresnekin

    Aurreko adibideek erregimen arauek eskaintzen dituzten aukera zoragarrien zati txiki bat besterik ez dute frogatu. Zoritxarrez, guztiak ez Adierazpen erregular klasikoen eginbideak VBA-n daude eskuragarri.

    Zorionez, gure Ultimate Suite-rekin batera sartzen diren RegEx Tresnek muga horiek ez dituzte Microsoft-en .NET RegEx motoreak prozesatzen baititu. Honi esker, eredu sofistikatuagoak eraiki ditzakezu. ez dira VBA RegExp. Belo onartzen w Adierazpen erregularraren adibide bat aurkituko duzu.

    Regex zenbakien arteko espazioa kentzeko

    Kate alfanumeriko batean, demagun zenbakien arteko zuriuneak soilik kendu nahi dituzula, beraz, kate bat, esaterako. "A 1 2 B" "A 12 B" bihurtzen da.

    Bi zifren arteko zuriune bat parekatzeko, ondoko itxura erabil dezakezu:

    Eredua : (?<=\d)\s+(?=\d)

    Oinarritutako formula bat sortzekogoiko regexeetan, hona hemen egiteko bi urrats erraz:

    1. Ablebits Data fitxan, Testua taldean, egin klik Regex. Tresnak .

    2. Regex Tresnak panelean, hautatu iturburuko datuak, sartu zure regex, aukeratu Kendu . aukera, eta sakatu Kendu .

      Emaitzak formula gisa, ez balio gisa lortzeko, gogoratu Txertatu formula gisa kontrol-laukian marka bat jartzea.

    Momentu batean, AblebitsRegexRemove funtzioa jatorrizko datuen eskuinaldean dagoen zutabe berri batean txertatuta ikusiko duzu.

    Bestela, gelaxka batean regex sar dezakezu. , esan A5, eta sartu formula zuzenean gelaxka batean Txertatu funtzioa elkarrizketa-koadroa erabiliz, non AblebitsRegexRemove AblebitsUDFs atalean sailkatuta dagoen.

    Funtzio hau kateak kentzeko bereziki diseinatuta dagoenez, bi argumentu baino ez ditu behar: sarrerako katea eta regex:

    =AblebitsRegexRemove(A5, $A$2)

    Horrela kenduko dira zuriuneak. Excel adierazpen erregularrak erabiliz. Eskerrik asko irakurtzeagatik eta datorren astean gure blogean ikustea espero dut!

    Erabilgarri dauden deskargak

    Kendu zuriuneak regexekin - adibideak (.xlsm fitxategia)

    Ultimate Suite - probako bertsioa (.exe fitxategia)

    hitzak baina baita kate baten hasieran eta amaieran ere, hori ez da ona. Hasierako eta amaierako zuriuneak kentzeko, habiaratu goiko formula beste RegExpReplace funtzio batean, hasieratik eta amaieratik zuriuneak kentzen dituena:

    =RegExpReplace(RegExpReplace(A5, "\s+", " "), "^[\s]+|[\s]+$", "")

    Regex to. kendu hasierako eta amaierako zuriuneak

    Lerro baten hasieran edo amaieran zuriuneak bilatzeko, erabili hasiera ^ eta amaierako $ aingurak.

    Learraren zuriunea:

    Eredua : ^[\s]+

    Atzetik zuriunea:

    Eredua : [\s ]+$

    Lehenengo eta aurreko zuriunea:

    Eredua : ^[\s]+

    Michael Brown teknologia-zale dedikatua da, software-tresnak erabiliz prozesu konplexuak sinplifikatzeko grina duena. Hamarkada bat baino gehiagoko esperientzia duen teknologia-industrian, Microsoft Excel eta Outlook-en eta Google Sheets eta Docs-en trebetasunak landu ditu. Michael-en bloga bere ezagutzak eta esperientziak besteekin partekatzera zuzenduta dago, produktibitatea eta eraginkortasuna hobetzeko aholku eta tutorial errazak eskaintzen ditu. Profesional ondua edo hasiberria izan, Michael-en blogak informazio baliotsuak eta aholku praktikoak eskaintzen ditu funtsezko software-tresna horiei etekinik handiena ateratzeko.