Hiqni hapësirat e bardha dhe vijat boshe në Excel duke përdorur Regex

  • Shperndaje Kete
Michael Brown

Dëshironi të trajtoni hapësirat e bardha në mënyrën më efektive? Përdorni shprehje të rregullta për të hequr të gjitha hapësirat në një qelizë, për të zëvendësuar hapësira të shumta me një karakter të vetëm, për të shkurtuar hapësirat vetëm midis numrave dhe më shumë.

Cilado të dhëna të dhëna që përdorni, vështirë se do të hasni një grup i të dhënave pa hapësira. Në shumicën e rasteve, hapësira e bardhë është e mirë - ju e përdorni atë për të ndarë vizualisht pjesë të ndryshme të informacionit për ta bërë më të lehtë perceptimin. Megjithatë, në disa situata, mund të bëhet e keqe - hapësirat shtesë mund të ngatërrojnë formulat tuaja dhe t'i bëjnë fletët tuaja të punës pothuajse të pamenaxhueshme.

    Pse të përdorni shprehje të rregullta për të shkurtuar hapësirat e bardha në Excel?

    Para se të zhytemi në thelbin e përdorimit të shprehjeve të rregullta për të hequr hapësirat e bardha në fletët e punës në Excel, do të doja të trajtoja pyetjen që më vjen në mendje në radhë të parë - pse na duhen regjimet kur Excel tashmë ka TRIM funksioni?

    Për të kuptuar ndryshimin, le të shohim se çfarë konsiderohet hapësira e bardhë në secilin rast:

    • Funksioni i integruar TRIM mund të heqë vetëm karakterin space që ka vlerën 32 në sistemin ASCII 7-bitësh.
    • Shprehjet e rregullta mund të identifikojnë disa forma të ndryshme të hapësirës së bardhë si hapësirën ( ), tab (\t), kthimin e transportit (\r) dhe të reja rreshti (\n). Për më tepër, ekziston karakteri i hapësirës së bardhë (\s) që përputhet me të gjitha këto lloje dhe vjen jashtëzakonisht i dobishëm për pastrimin e hyrjes së papërpunuartë dhënat.

    Duke ditur saktësisht se çfarë ndodh prapa skenave, është shumë më e lehtë për të gjetur një zgjidhje, apo jo?

    Si të aktivizoni shprehjet e rregullta në Excel

    Është një fakt i njohur se Excel-i jashtë kutisë nuk mbështet shprehje të rregullta. Për t'i aktivizuar ato, duhet të krijoni një funksion të personalizuar VBA. Për fat të mirë, ne tashmë kemi një të tillë, të quajtur RegExpReplace . Prisni, pse "zëvendësoni" ndërsa flasim për heqjen? Në gjuhën Excel, "fshij" është vetëm një fjalë tjetër për "zëvendëso me një varg bosh" :)

    Për të shtuar funksionin në Excel, thjesht kopjoni kodin e tij nga kjo faqe, ngjisni atë në redaktuesin VBA , dhe ruani skedarin tuaj si një libër pune i aktivizuar me makro (.xlsm).

    Këtu është sintaksa e funksionit për referencën tuaj:

    RegExpReplace(tekst, model, zëvendësim, [instance_num] , [match_case])

    Tre argumentet e para kërkohen, dy të fundit janë opsionale.

    Ku:

    • Tekst - vargu origjinal në kërko në.
    • Modeli - regex për të kërkuar.
    • Zëvendësim - teksti me të cilin duhet zëvendësuar. Për të hequr hapësirat e bardha , do ta vendosni këtë argument në:
      • varg bosh ("") për të shkurtuar absolutisht të gjitha hapësirat
      • hapësirë karakteri (" ") për të zëvendësuar hapësira të shumta me një karakter të vetëm hapësinor
    • Numri_shembulli (opsionale) - numri i shembullit. Në shumicën e rasteve, ju do ta hiqni atë për të zëvendësuar të gjitha rastet(e parazgjedhur).
    • Match_case (opsionale) - një vlerë Boolean që tregon nëse duhet të përputhet (TRUE) ose të injorojë (FALSE) shkronjat e tekstit. Për hapësirën e bardhë, ajo është e parëndësishme dhe për këtë arsye është hequr.

    Për më shumë informacion, ju lutemi shihni funksionin RegExpReplace.

    Si të hiqni hapësirën e bardhë me regex - shembuj

    Me Funksioni RegExpReplace u shtua në librin tuaj të punës, le të trajtojmë skenarë të ndryshëm një nga një.

    Hiqni të gjitha hapësirat e bardha duke përdorur regex

    Për të hequr të gjitha hapësirat në një varg, thjesht kërkoni për çdo karakter të hapësirës së bardhë, duke përfshirë një hapësirë, një skedë, një kthim me karrocë dhe një furnizim rreshti dhe zëvendësojini ato me një varg bosh ("").

    Modeli : \s+

    Zëvendësimi : ""

    Duke supozuar se vargu burimor është në A5, formula në B5 është:

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

    Për ta bërë më të lehtë menaxhimin e modeleve tuaja , mund të futni regex në një qelizë të paracaktuar dhe ta furnizoni atë në formulë duke përdorur një referencë absolute si $A$2, kështu që adresa e qelizës do të mbetet e pandryshuar kur kopjoni formulën poshtë kolonës.

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

    Hiq më shumë se një hapësirë ​​të bardhë

    Për të hequr hapësira shtesë (d.m.th. më shumë se n një hapësirë ​​të njëpasnjëshme), përdorni të njëjtin regex \s+, por zëvendësoni ndeshjet e gjetura me një karakter të vetëm hapësinor.

    Modeli : \s+

    Zëvendësimi : " "

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

    Ju lutemi kushtoni vëmendje që kjo formulë mban një karakter hapësirë ​​jo vetëm midisposhtë të dhënave, supozoni se dëshironi të shkurtoni të gjitha hapësirat kryesore/pasuese dhe të gjitha hapësirat ndërmjet, përveç njërës, duke mbajtur të paprekura linja të shumta. Për të përmbushur detyrën, do t'ju duhen dy funksione të ndryshme RegExpReplace.

    Funksioni i parë zëvendëson shumë hapësira me një karakter të vetëm hapësinor.

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

    Tjetri heq hapësirat nga fillimi dhe fundi i një rreshti:

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

    Vetëm lidhni dy funksionet njëri në tjetrin:

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

    Dhe do të merrni një rezultat perfekt:

    Regex për të zëvendësuar hapësira të shumta me një karakter

    Në rast se dëshironi të hiqni të gjitha hapësirat nga një varg dhe të zëvendësoni çdo grup hapësirash të njëpasnjëshme me një karakter specifik, kjo është ajo që duhet të bëni:

    Së pari, përdorni këtë regex për të shkurtuar hapësirat e bardha kryesore dhe pasuese:

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

    Më pas, shërbejeni funksionin e mësipërm te argumenti text i një tjetër RegExpReplace që zëvendëson një ose më shumë hapësira të njëpasnjëshme me karakterin që specifikoni, p.sh. një vizë ndarëse:

    Modeli : \s+

    Zëvendësimi : -

    Duke supozuar se vargu i burimit është në A8, formula merr këtë formë:

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

    Ose mund të futni modelet dhe zëvendësimet në qeliza të veçanta siç tregohet në pamjen e ekranit:

    Regex për të hequr linjat boshe

    Këtu është një pyetje që përdoruesit që kanë shumë rreshta në një qelizë bëjnë shpesh: "Ka shumë rreshta bosh në qelizat e mia. A ka ndonjë mënyrë për të marrëshpëtoj prej tyre përveç kalimit nëpër secilën qelizë dhe fshirjes manuale të çdo rreshti?" Përgjigja: Është e lehtë!

    Të përputhen linjat boshe që nuk kanë një karakter të vetëm nga fillimi ^ i rreshtit aktual deri në rreshti tjetër \n, regex është:

    Modeli : ^\n

    Nëse linjat tuaja bosh vizualisht përmbajnë hapësira ose skeda, përdorni këtë shprehje të rregullt:

    Modeli : ^[\t ]*\n

    Thjesht zëvendësoni regeksin me një varg bosh duke përdorur këtë formulë dhe të gjitha rreshtat bosh do të zhduken menjëherë!

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

    Heqja e hapësirave të bardha me RegEx Tools

    Shembujt e mësipërm kanë demonstruar vetëm një pjesë të vogël të mundësive të mrekullueshme të ofruara nga regexes. Fatkeqësisht, jo të gjitha veçoritë e shprehjeve të rregullta klasike janë të disponueshme në VBA.

    Për fat të mirë, veglat RegEx të përfshira me Ultimate Suite janë pa këto kufizime pasi ato përpunohen nga motori .NET RegEx i Microsoft. Kjo ju lejon të ndërtoni modele më të sofistikuara që nuk mbështeten nga VBA RegExp. Belo w do të gjeni një shembull të një shprehjeje të tillë të rregullt.

    Regex për të hequr hapësirën midis numrave

    Në një varg alfanumerik, supozoni se dëshironi të hiqni hapësirat e bardha vetëm midis numrave, kështu që një varg si p.sh. "A 1 2 B" bëhet "A 12 B".

    Për të përputhur një hapësirë ​​të bardhë midis çdo dy shifrash, mund të përdorni pamjet e mëposhtme:

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

    Për të krijuar një formulë të bazuarnë regjimet e mësipërme, këtu janë dy hapa të thjeshtë për të kryer:

    1. Në skedën Ablebits Data , në grupin Text , kliko Regex Tools .

    2. Në panelin Regex Tools , zgjidhni të dhënat burimore, shkruani regex tuaj, zgjidhni Hiq opsionin dhe shtypni Hiq .

      Për të marrë rezultatet si formula, jo si vlera, mos harroni të vendosni një shenjë në kutinë e kontrollit Fut si formulë .

    Në një moment, do të shihni funksionin AblebitsRegexRemove të futur në një kolonë të re në të djathtë të të dhënave origjinale.

    Përndryshe, mund të futni regex në disa qeliza , le të themi A5, dhe futni formulën direkt në një qelizë duke përdorur kutinë e dialogut Fut Funksionin , ku AblebitsRegexRemove është kategorizuar nën AblebitsUDFs .

    Meqenëse ky funksion është krijuar posaçërisht për heqjen e vargjeve, ai kërkon vetëm dy argumente - vargun hyrës dhe regex:

    =AblebitsRegexRemove(A5, $A$2)

    Kështu mund të hiqni hapësirat në Excel duke përdorur shprehje të rregullta. Ju falënderoj që lexoni dhe mezi pres t'ju shohim në blogun tonë javën tjetër!

    Shkarkimet e disponueshme

    Hiqni hapësirën e bardhë me regex - shembuj (skedar .xlsm)

    Ultimate Suite - versioni i provës (skedari .exe)

    fjalë por edhe në fillim dhe në fund të një vargu, gjë që nuk është e mirë. Për të hequr qafe hapësirën e bardhë kryesore dhe pasuese, futni formulën e mësipërme në një funksion tjetër RegExpReplace që heq hapësirat nga fillimi dhe fundi:

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

    Regex në hiqni hapësirën e bardhë kryesore dhe pasuese

    Për të kërkuar hapësirën e bardhë në fillim ose në fund të një rreshti, përdorni ankorat e fillimit ^ dhe fundit $.

    Hapësira e bardhë kryesore :

    Modeli : ^[\s]+

    Trailing Hapësirë ​​e bardhë:

    Model : [\s ]+$

    Hapësira e bardhë kryesore dhe pasuese :

    Modeli : ^[\s]+

    Michael Brown është një entuziast i përkushtuar i teknologjisë me një pasion për thjeshtimin e proceseve komplekse duke përdorur mjete softuerike. Me më shumë se një dekadë përvojë në industrinë e teknologjisë, ai ka përmirësuar aftësitë e tij në Microsoft Excel dhe Outlook, si dhe Google Sheets dhe Docs. Blogu i Michael është i përkushtuar ndaj ndarjes së njohurive dhe ekspertizës së tij me të tjerët, duke ofruar këshilla dhe mësime të thjeshta për t'u ndjekur për të përmirësuar produktivitetin dhe efikasitetin. Pavarësisht nëse jeni një profesionist me përvojë apo fillestar, blogu i Michael ofron njohuri të vlefshme dhe këshilla praktike për të përfituar sa më shumë nga këto mjete softuerike thelbësore.