Thoir air falbh beàrnan geala agus loidhnichean falamh ann an Excel a’ cleachdadh Regex

  • Roinn Seo
Michael Brown

A bheil thu airson beàrnan geala a làimhseachadh san dòigh as èifeachdaiche? Cleachd abairtean cunbhalach gus a h-uile beàrn ann an cealla a thoirt air falbh, aon charactar a chuir an àite iomadh àite, trim beàrnan eadar àireamhan a-mhàin, agus barrachd.

Ge bith dè an dàta cuir a-steach a tha thu a’ cleachdadh, is gann gun tig thu tarsainn air stòr-dàta gun fhànais. Anns a 'mhòr-chuid de chùisean, tha àite geal math - bidh thu ga chleachdadh gus diofar phìosan fiosrachaidh a sgaradh gu fradharcach gus a dhèanamh nas fhasa fhaicinn. Ann an cuid de shuidheachaidhean, ge-tà, dh'fhaodadh gum fàs e olc - faodaidh beàrnan a bharrachd na foirmlean agad a mhilleadh agus na duilleagan-obrach agad a dhèanamh cha mhòr do-ruigsinneach.

    Carson a chleachdas tu abairt àbhaisteach gus beàrnan geala a ghearradh ann an Excel?

    Mus tèid sinn a-steach don nitty-gritty de bhith a’ cleachdadh abairtean cunbhalach gus beàrnan geala a thoirt air falbh ann an duilleagan-obrach Excel, bu mhath leam dèiligeadh ris a’ cheist a thig nam inntinn sa chiad àite - carson a tha feum againn air regexes nuair a tha an TRIM aig Excel mu thràth gnìomh?

    Gus an diofar a thuigsinn, chì sinn dè thathar a’ meas mar àite geal anns gach cùis:

    • Chan urrainn dhan ghnìomh TRIM togte ach an caractar fànais a thoirt air falbh aig a bheil luach 32 san t-siostam 7-bit ASCII.
    • S urrainn do abairtean cunbhalach grunn chruthan eadar-dhealaichte de dh'àite geal a chomharrachadh mar an t-àite ( ), taba (\t), tilleadh carbaid (\r), agus fear ùr loidhne (\n). A bharrachd air an sin, tha an caractar whitespace (\ s) ann a tha a’ maidseadh a h-uile seòrsa seo agus a tha air leth cuideachail airson cuir a-steach amh a ghlanadhdàta.

    Le fios dè dìreach a thachras air cùl na seallaidhean, tha e tòrr nas fhasa fuasgladh obrachadh a-mach, ceart?

    Mar a chuireas tu an comas abairtean cunbhalach ann an Excel

    Tha e aithnichte nach eil Excel taobh a-muigh a’ bhogsa a’ toirt taic do abairtean cunbhalach. Gus an comasachadh, feumaidh tu gnìomh VBA àbhaisteach a chruthachadh. Gu fortanach, tha fear againn mu thràth, leis an ainm RegExpReplace . Fuirich, carson "cuir an àite" fhad 'sa tha sinn a' bruidhinn mu bhith a 'toirt air falbh? Ann an cànan Excel, chan eil ann an “Thoir air falbh” ach facal eile airson “cuir sreang fhalamh na àite” :)

    Gus an gnìomh a chuir ris an Excel agad, dìreach dèan lethbhreac den chòd aige bhon duilleag seo, cuir a-steach e san deasaiche VBA , agus sàbhail am faidhle agad mar leabhar-obrach le comas macro (.xlsm).

    Seo co-chòrdadh a’ ghnìomh airson d’ iomradh:

    RegExpReplace(teacsa, pàtran, ath-chur, [instance_num] , [match_case])

    Tha feum air a' chiad trì argamaidean, tha an dhà mu dheireadh roghainneil.

    Far a bheil:

    • Teacs - an t-sreath thùsail gu lorg a-steach.
    • Pàtran - an regex airson a lorg.
    • Ath-àite - an teacsa a thèid a chur na àite. Gus a thoirt air falbh beàrnan geala , shuidhich thu an argamaid seo gu:
      • sreang fhalamh ("") gus a h-uile beàrn a ghearradh <11
      • space caractar ("") gus aon charactar fànais a chur an àite iomadh àite
  • Instance_num (roghainneil) - an àireamh eisimpleir. Anns a 'mhòr-chuid de chùisean, fàgaidh tu a-mach e an àite a h-uile suidheachadh(bunaiteach).
  • Match_case (roghainneil) - luach Boole a' sealltainn am bu chòir dhut a' chùis teacsa a mhaidseadh (TRUE) no leigeil seachad (FALSE). Airson àite geal, chan eil e buntainneach agus mar sin chaidh fhàgail air falbh.
  • Airson tuilleadh fiosrachaidh, faic an gnìomh RegExpReplace.

    Mar a bheir thu air falbh beàrn geal le regex - eisimpleirean

    Leis an Gnìomh RegExpReplace air a chur ris an leabhar-obrach agad, leig dhuinn dèiligeadh ri diofar shuidheachaidhean aon uair aig an aon àm.

    Thoir air falbh a h-uile àite geal le bhith a’ cleachdadh regex

    Gus gach beàrn ann an sreang a thoirt air falbh, cha leig thu leas ach caractar àite geal sam bith a lorg, a’ gabhail a-steach beàrn, taba, carbaid air ais, agus inbhir loidhne, agus sreang fhalamh ("") nan àite.

    Pàtran : \s+

    Ath-shuidheachadh :" ""

    A' gabhail ris gu bheil an t-sreang thùsail ann an A5, 's e am foirmle ann am B5:

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

    Gus a dhèanamh nas fhasa do phàtranan a stiùireadh , faodaidh tu an regex a chuir a-steach ann an cealla ro-mhìnichte agus a thoirt don fhoirmle a’ cleachdadh làn-iomradh mar $A$2, agus mar sin bidh seòladh na cealla gun atharrachadh nuair a nì thu lethbhreac den fhoirmle sìos a’ cholbh.

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

    Thoir air falbh barrachd air aon àite geal

    Gus spàs geal a bharrachd a thoirt air falbh (i.e. barrachd n aon àite an dèidh a chèile), cleachd an aon regex \s+ ach cuir aon charactar fànais an àite nan maidsean a chaidh a lorg. 2>:" "

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

    Thoir an aire gu bheil am foirmle seo a' cumail aon charactar fànais chan ann a-mhàin eadarfon stòr-dàta, is dòcha gu bheil thu airson a h-uile prìomh àite / slighe agus a h-uile àite eadar-dhealaichte ach aon a thàthadh, a’ cumail grunn loidhnichean slàn. Gus an obair a choileanadh, bidh feum agad air dà ghnìomh RegExpReplace eadar-dhealaichte.

    Bidh aon charactar fànais a' dol an àite iomadh beàrnan. bho thoiseach is deireadh loidhne:

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

    Dìreach neadaich an dà ghnìomh aon a-steach do fhear eile:

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

    Agus gheibh thu a toradh foirfe:

    Regex gus aon charactar a chuir an àite iomadh àite

    Air eagal ‘s gu bheil thu airson a h-uile beàrn a thoirt air falbh bho shreang agus àite a chuir an àite gach buidheann de dh’ àiteachan leantainneach le caractar sònraichte, seo na dh'fheumas tu a dhèanamh:

    An toiseach, cleachd an regex seo gus beàrnan geala a th' air thoiseach agus a tharraing air ais:

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

    An uairsin, seirbhis an gnìomh gu h-àrd ris an argamaid text aig RegExpReplace eile a chuireas an caractar a shònraich thu an àite aon àite geal no barrachd an dèidh a chèile, m.e. tàthan:

    Pàtran : \s+

    Ath-àite : -

    A’ gabhail ris gu bheil an t-sreang stòr ann an A8, tha am foirmle a’ gabhail an cumadh seo:

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

    No ’s urrainn dhut na pàtrain is na h-atharraichean a chur a-steach ann an ceallan fa leth mar a chithear san dealbh-sgrìn:

    >

    Regex gus loidhnichean falamh a thoirt air falbh

    Seo ceist a bhios luchd-cleachdaidh aig a bheil iomadh loidhne ann an aon chill gu tric a’ faighneachd: “Tha tòrr loidhnichean bàn anns na ceallan agam. A bheil dòigh sam bith air am faighinncuir às dhiubh ach a bhith a’ dol tro gach cealla agus a’ sguabadh às gach loidhne le làimh?" Am freagairt: Tha sin furasta!

    A’ maidseadh loidhnichean falamh aig nach eil aon charactar bho thoiseach ^ na loidhne làithreach suas chun an an ath loidhne \n, 's e an regex:

    Pàtran : ^\n

    Ma tha beàrnan no tabaichean anns na loidhnichean bàn agad, cleachd an abairt àbhaisteach seo:

    Pàtran : ^[\t ]*\n

    Dìreach cuir sreang fhalamh an àite an regex leis an fhoirmle seo, is falbhaidh a h-uile loidhne bhàn sa bhad!

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

    A’ toirt air falbh beàrnan geala le RegEx Tools

    Tha na h-eisimpleirean gu h-àrd air dìreach cuibhreann bheag de chothroman mìorbhaileach a thoirt seachad le regexes a’ nochdadh. tha feartan abairtean àbhaisteach clasaigeach rim faighinn ann an VBA.

    Gu fortanach, tha na h-Innealan RegEx a tha air an gabhail a-steach san t-Suite Ultimate againn saor bho na cuingeadan sin leis gu bheil iad air an giullachd le einnsean .NET RegEx Microsoft. Leigidh seo leat pàtrain nas ionnsaichte a thogail chan eil VBA RegExp a' faighinn taic w lorgaidh tu eisimpleir de abairt àbhaisteach mar seo.

    Regex gus àite eadar àireamhan a thoirt air falbh

    Ann an sreang alfaimigeach, saoil gu bheil thu airson beàrnan geala eadar àireamhan a-mhàin a thoirt air falbh, mar sin sreang mar Bidh "A 1 2 B" gu bhith "A 12 B".

    Gus beàrn geal a mhaidseadh eadar dà fhigear sam bith, 's urrainn dhut na leanas a chleachdadh mun cuairt:

    Pàtran : (?<=\d)\s+(?=\d)

    Gus foirmle a chruthachadh stèidhichteair na regexes gu h-àrd, seo dà cheum furasta ri choileanadh:

    1. Air an taba Ablebits Data , sa bhuidheann Text , cliog air Regex Innealan .

    2. Air a' phana Regex Tools , tagh an dàta tùsail, cuir a-steach do regex, tagh an Thoir air falbh roghainn, agus buail Thoir air falbh .

      Gus na toraidhean fhaighinn mar fhoirmlean, chan e luachan, cuimhnich gun cuir thu diog sa bhogsa-seic Cuir a-steach mar fhoirmle .

    3. <24.

      Anns a’ mhionaid, chì thu an gnìomh AblebitsRegexRemove air a chuir a-steach ann an colbh ùr air taobh deas an dàta tùsail.

      Air neo, ’s urrainn dhut an regex a chuir a-steach ann an cealla air choireigin , can A5, agus cuir a-steach am foirmle gu dìreach ann an cealla a’ cleachdadh a’ bhogsa deasbaid Insert Function , far a bheil AblebitsRegexRemove air a seòrsachadh fo AblebitsUDFs .

      Leis gu bheil an gnìomh seo air a dhealbhadh gu sònraichte airson sreangan a thoirt air falbh, chan fheum e ach dà argamaid - an t-sreang cuir a-steach agus regex:

      =AblebitsRegexRemove(A5, $A$2)

      Sin mar a bheir thu air falbh beàrnan ann an Excel a’ cleachdadh abairtean àbhaisteach. Tha mi a’ toirt taing dhut airson an leughadh agus tha mi a’ coimhead air adhart ri bhith gad fhaicinn air ar blog an ath sheachdain!

      Luchdaich a-nuas ri fhaighinn

      Thoir air falbh whitespace le regex - eisimpleirean (faidhle .xlsm)

      Ultimate Suite - tionndadh deuchainn (faidhle .exe)

      facail ach mar an ceudna aig toiseach agus deireadh sreang, rud nach eil math. Gus faighinn cuidhteas àite geal a tha a’ stiùireadh agus a’ slaodadh, neadaich am foirmle gu h-àrd ann an gnìomh RegExpReplace eile a bhios a’ stialladh beàrnan bho thoiseach is deireadh:

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

      Regex to thoir air falbh an t-àite geal a tha air thoiseach is air adhart

      Gus àite geal a lorg aig toiseach no deireadh loidhne, cleachd na h-acairean tòiseachaidh ^ is deireadh $.

      Leading whitespace:<3

      Pàtran : ^[\s]+

      Trailing whitespace:

      Pàtran : [\s ]+$

      Stiùirich agus trèile whitespace:

      Pàtran : ^[\s]+

    Tha Mìcheal Brown dèidheil air teicneòlas sònraichte le dìoghras airson pròiseasan iom-fhillte a dhèanamh nas sìmplidhe a’ cleachdadh innealan bathar-bog. Le còrr air deich bliadhna de eòlas anns a’ ghnìomhachas teignigeach, tha e air urram a thoirt dha na sgilean aige ann am Microsoft Excel agus Outlook, a bharrachd air Google Sheets agus Docs. Tha blog Mhìcheil gu sònraichte airson a chuid eòlais agus eòlais a cho-roinn le daoine eile, a’ toirt seachad molaidhean agus clasaichean-oideachaidh a tha furasta a leantainn airson cinneasachd agus èifeachdas a leasachadh. Ge bith co-dhiù a tha thu nad neach-proifeiseanta eòlach no nad neach-tòiseachaidh, tha blog Mhìcheal a 'tabhann lèirsinn luachmhor agus comhairle phractaigeach airson a bhith a' faighinn a 'chuid as fheàrr às na h-innealan bathar-bog riatanach sin.