Hapus spasi bodas sareng garis kosong dina Excel nganggo Regex

  • Bagikeun Ieu
Michael Brown

Hoyong ngadamel spasi bodas ku cara anu paling efektif? Paké ekspresi biasa pikeun miceun kabeh spasi dina sél, ngaganti sababaraha spasi ku karakter tunggal, motong spasi antara angka wungkul, sareng nu sanesna.

Naha data input nu Anjeun pake, Anjeun boro bakal manggihan hiji dataset tanpa spasi. Dina kalolobaan kasus, spasi bodas téh alus - anjeun make eta pikeun visually misahkeun potongan informasi béda pikeun nyieun leuwih gampang pikeun ngarasa. Dina sababaraha kaayaan, kumaha oge, eta bisa jadi jahat - spasi tambahan bisa ngakacaukeun rumus anjeun sarta nyieun lembar kerja anjeun ampir teu bisa diatur.

    Naha make ekspresi biasa pikeun motong spasi bodas dina Excel?

    Saméméh urang teuleum ka nitty-gritty ngagunakeun éksprési biasa pikeun miceun spasi bodas dina lembar kerja Excel, Abdi hoyong ngajawab patarosan nu datang ka pikiran di tempat munggaran - naha urang kudu regexes lamun Excel geus boga TRIM fungsina?

    Pikeun ngartos bédana, hayu urang tingali naon anu dianggap spasi bodas dina unggal kasus:

    • Pungsi TRIM anu diwangun ngan ukur tiasa ngaleungitkeun karakter spasi nu boga niléy 32 dina sistem ASCII 7-bit.
    • Eksprési reguler bisa ngaidentipikasi sababaraha wangun spasi bodas anu béda saperti spasi ( ), tab (\t), carriage return (\r), jeung nu anyar. garis (\n). Salaku tambahan, aya karakter spasi bodas (\s) anu cocog sareng sadaya jinis ieu sareng mangpaat pisan pikeun ngabersihan input mentah.data.

    Kumaha terang naon anu lumangsung di balik layar, éta langkung gampang pikeun milarian solusi, sanés?

    Kumaha cara ngaktipkeun éksprési biasa dina Excel

    Kanyataan anu dipikanyaho yén Excel anu luar biasa henteu ngadukung ekspresi biasa. Pikeun ngaktifkeunana, anjeun kedah nyiptakeun fungsi VBA khusus. Untungna, urang geus boga hiji, ngaranna RegExpReplace . Antosan, naha "ngaganti" bari urang ngobrol ngeunaan nyoplokkeun? Dina basa Excel, "hapus" ngan kecap sejen pikeun "ganti ku string kosong" :)

    Pikeun nambahkeun fungsi ka Excel anjeun, ngan salin kode na tina kaca ieu, paste eta dina editor VBA. , sareng simpen file anjeun salaku buku kerja anu diaktipkeun makro (.xlsm).

    Kieu sintaksis fungsi pikeun rujukan anjeun:

    RegExpReplace(téks, pola, panggantian, [instance_num] , [match_case])

    Tilu argumen anu munggaran diperyogikeun, dua anu terakhir opsional.

    Dimana:

    • Téks - string aslina ka paluruh.
    • Pola - regex nu rék diteangan.
    • Ganti - téks nu rék diganti. Pikeun ngahapus spasi bodas , anjeun kedah nyetél argumen ieu:
      • string kosong ("") pikeun motong sadayana spasi
      • spasi karakter (" ") pikeun ngaganti sababaraha spasi ku hiji karakter spasi
    • Instance_num (pilihan) - jumlah conto. Dina kalolobaan kasus, anjeun bakal ngaleungitkeun pikeun ngagentos sadaya instansi(standar).
    • Match_case (opsional) - nilai Boolean nuduhkeun naha bakal cocog (BENER) atawa malire (SALAH). Pikeun spasi bodas, éta teu relevan sahingga dileungitkeun.

    Pikeun inpormasi salengkepna, mangga tingali fungsi RegExpReplace.

    Kumaha carana ngahapus spasi bodas nganggo regex - conto

    Kalayan Pungsi RegExpReplace ditambahkeun kana workbook anjeun, hayu urang nungkulan skenario béda dina hiji waktu.

    Pupus sadaya spasi bodas maké regex

    Pikeun miceun sakabeh spasi dina string, anjeun ngan neangan karakter spasi bodas, kaasup spasi, tab, carriage return, sareng feed line, teras ganti ku string kosong ("").

    Pola : \s+

    Ganti : ""

    Anggap string sumber aya dina A5, rumus dina B5 nyaéta:

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

    Pikeun ngagampangkeun ngatur pola anjeun , Anjeun bisa ngasupkeun regex dina sél nu geus ditangtukeun jeung nyadiakeun ka rumus maké rujukan mutlak kawas $A$2, jadi alamat sél tetep teu robah nalika nyalin rumus handap kolom.

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

    Pupus leuwih ti hiji spasi bodas

    Pikeun miceun spasi bodas tambahan (nyaéta leuwih ti n hiji spasi padeukeut), make regex nu sarua \s+ tapi ngaganti patandingan nu kapanggih ku karakter spasi tunggal.

    Pola : \s+

    Ganti : " "

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

    Punten perhatikeun yén rumus ieu nyimpen hiji karakter spasi teu ngan antaradi handap susunan data, anggap anjeun hoyong motong sadaya spasi ngarah / labuh jeung sakabeh spasi di-antara, ngajaga sababaraha garis gembleng. Pikeun nyumponan tugas, anjeun peryogi dua fungsi RegExpReplace anu béda.

    Pungsi kahiji ngagantikeun sababaraha spasi ku karakter spasi tunggal.

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

    Pungsi nu séjén nyabut spasi. ti awal jeung ahir hiji baris:

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

    Ngan sarangkeun dua fungsi hiji-hiji:

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

    Sareng anjeun bakal meunang hasil sampurna:

    Regex pikeun ngaganti sababaraha spasi ku hiji karakter

    Mun anjeun hoyong miceun kabeh spasi tina string tur ngaganti unggal grup spasi padeukeut kalayan karakter anu khusus, ieu anu anjeun kedah laksanakeun:

    Kahiji, paké regex ieu pikeun motong spasi bodas ngarah sareng labuh:

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

    Lajeng, layankeun fungsi di luhur. kana téks argumen RegExpReplace séjén anu ngagantikeun hiji atawa leuwih spasi bodas padeukeut jeung karakter nu Anjeun tangtukeun, misalna. a hyphen:

    Pola : \s+

    Ganti : -

    Anggap string sumber aya dina A8, rumusna bentukna kieu:

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

    Atawa anjeun bisa ngasupkeun pola jeung ngagantian dina sél misah kawas ditémbongkeun dina screenshot:

    Regex pikeun ngahapus garis kosong

    Ieu patarosan anu sering ditaroskeun ku pangguna anu gaduh sababaraha garis dina hiji sél: "Aya seueur garis kosong dina sél kuring. Naha aya cara pikeun kéngingkeunmiceun eta lian ti ngaliwatan unggal sél jeung mupus unggal baris ku cara manual?" Jawabna: Éta gampang!

    Pikeun cocog garis kosong nu teu boga karakter tunggal ti mimiti ^ garis ayeuna nepi ka baris salajengna \n, regexna nyaéta:

    Pola : ^\n

    Upami garis kosong anjeun sacara visual ngandung spasi atanapi tab, paké ekspresi biasa ieu:

    Pola : ^[\t ]*\n

    Ganti wae regex ku string kosong make rumus ieu, kabeh baris kosong bakal leungit sakaligus!

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

    Ngahapus spasi bodas nganggo RegEx Tools

    Conto di luhur ngan ukur nunjukkeun sabagian leutik kamungkinan anu saé anu disayogikeun ku regex. Hanjakalna, henteu sadayana fitur éksprési biasa klasik sadia dina VBA.

    Untungna, RegEx Tools kaasup jeung Ultimate Suite urang bébas tina watesan ieu sabab diolah ku mesin .NET RegEx Microsoft. Ieu ngidinan Anjeun pikeun ngawangun pola nu leuwih canggih. teu dirojong ku VBA RegExp Belo w anjeun bakal mendakan conto ekspresi biasa sapertos kitu.

    Regex pikeun mupus spasi antara angka

    Dina string alfanumerik, anggap anjeun hoyong miceun spasi bodas antara angka wungkul, jadi string kayaning "A 1 2 B" janten "A 12 B".

    Pikeun nyocogkeun spasi bodas antara dua digit mana wae, anjeun tiasa nganggo tampilan-sabudeureun ieu:

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

    Pikeun nyieun rumus dumasardina regexes di luhur, ieu aya dua léngkah gampang pikeun ngalakukeun:

    1. Dina tab Ablebits Data , dina grup Teks , klik Regex Alat .

    2. Dina panel Regex Tools , pilih sumber data, asupkeun regex anjeun, pilih Hapus pilihan, sarta pencét Hapus .

      Pikeun meunangkeun hasil salaku rumus, sanes niléy, émut nempatkeun centang dina kotak centang Selapkeun salaku rumus .

    Sakedap deui, anjeun bakal ningali fungsi AblebitsRegexRemove diselapkeun dina kolom anyar di sisi katuhu data asli.

    Alternatipna, anjeun tiasa ngasupkeun regex dina sababaraha sél. , sebutkeun A5, teras selapkeun rumus langsung dina sél nganggo kotak dialog Insert Function , dimana AblebitsRegexRemove digolongkeun dina AblebitsUDFs .

    Sabab pungsi ieu dirarancang husus pikeun miceun string, ngan merlukeun dua argumen - string input jeung regex:

    =AblebitsRegexRemove(A5, $A$2)

    Ku kituna kumaha carana miceun spasi dina Excel nganggo ekspresi biasa. Kuring hatur nuhun pikeun maca sareng ngarepkeun anjeun tiasa ningali anjeun dina blog kami minggu payun!

    Unduh anu sayogi

    Pupus spasi bodas nganggo regex - conto (file .xlsm)

    Ultimate Suite - versi percobaan (file .exe)

    kecap tapi ogé di awal jeung ahir string a, nu teu alus. Pikeun nyingkirkeun spasi bodas ngarah jeung labuh, sarang rumus di luhur kana fungsi RegExpReplace sejen nu strips spasi ti awal jeung tungtung:

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

    Regex ka hapus spasi bodas hareup jeung lamping

    Pikeun neangan spasi bodas di awal atawa tungtung hiji baris, pake awal ^ jeung tungtung $ jangkar.

    Anjog spasi bodas:

    Pola : ^[\s]+

    Trailing spasi bodas:

    Pola : [\s ]+$

    Anjog jeung labuh spasi bodas:

    Pola : ^[\s]+

    Michael Brown mangrupakeun enthusiast téhnologi dedicated kalawan gairah pikeun nyederhanakeun prosés kompléks ngagunakeun parabot software. Kalayan langkung ti dasawarsa pangalaman dina industri téknologi, anjeunna parantos ngasah kaahlianna dina Microsoft Excel sareng Outlook, ogé Google Sheets sareng Docs. Blog Michael dikhususkeun pikeun ngabagi pangaweruh sareng kaahlianna ka batur, nyayogikeun tip sareng tutorial anu gampang pikeun ningkatkeun produktivitas sareng efisiensi. Naha anjeun profésional berpengalaman atanapi pamula, blog Michael nawiskeun wawasan anu berharga sareng naséhat praktis pikeun ngamangpaatkeun alat parangkat lunak penting ieu.