Kumaha mupus téks atanapi nomer tina sél Excel

  • Bagikeun Ieu
Michael Brown

Tutorial ieu bakal ngajarkeun anjeun cara misahkeun téks tina angka dina Excel nganggo rumus asli sareng fungsi khusus. Anjeun oge bakal diajar kumaha carana ngabagi téks jeung angka jadi dua kolom misah.

Bayangkeun ieu: Anjeun nampa data atah pikeun analisis sarta manggihan yén angka dicampurkeun jeung téks dina hiji kolom. Dina sabagéan ageung kaayaan, éta pasti bakal langkung merenah upami aranjeunna dina kolom anu misah pikeun pamariksaan anu langkung caket.

Upami anjeun damel sareng data anu homogen, anjeun panginten tiasa nganggo fungsi Kénca, KANAN, sareng MID pikeun ngaékstrak data. Jumlah karakter anu sami ti posisi anu sami. Tapi éta skenario idéal pikeun tés laboratorium. Dina kahirupan nyata, anjeun paling dipikaresep nungkulan data dissimilar dimana angka datangna saméméh téks, sanggeus téks atawa antara téks. Conto di handap nyadiakeun solusi persis pikeun kasus ieu.

    Kumaha carana miceun teks jeung nyimpen nomer dina sél Excel

    Solusi jalan dina Excel 365, Excel 2021 , jeung Excel 2019

    Microsoft Excel 2019 ngenalkeun sababaraha pungsi anyar nu teu sadia dina vérsi saméméhna, sarta kami baris ngagunakeun salah sahiji fungsi misalna, nyaéta TEXTJOIN, pikeun strip karakter téks ti sél. ngandung angka.

    Rumus umumna nyaéta:

    TEXTJOIN("", TRUE, IFERROR(MID( cell, ROW(INDIRECT("1:"&LEN(<1)>sél))), 1) *1, ""))

    Dina Excel 365 sareng 2021, ieu ogé tiasa dianggo:

    TEXTJOIN("", TRUE,IFERROR(MID( sél, SEQUENCE(LEN( sél)), 1) *1, ""))

    Saheulaanan, rumusna sigana rada pikasieuneun, tapi tiasa dianggo :)

    Misalna, pikeun ngahapus téks tina nomer dina A2, lebetkeun salah sahiji rumus di handap ieu dina B2, teras salin ka saloba sél anu diperyogikeun.

    Dina Excel 365 - 2019:

    =TEXTJOIN("", TRUE, IFERROR(MID(A2, ROW(INDIRECT( "1:"&LEN(A2))), 1) *1, ""))

    Dina Excel 2019, éta kedah diasupkeun salaku rumus array nganggo Ctrl + Shift + Enter . Dina larik dinamis Excel, éta tiasa dianggo salaku rumus normal anu dilengkepan ku konci Enter.

    Dina Excel 365 sareng 2021:

    =TEXTJOIN("", TRUE, IFERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1, ""))

    Alhasil, sadaya karakter téks janten dipiceun tina sél jeung nomer disimpen:

    Kumaha rumus ieu jalan:

    Pikeun leuwih paham logika, hayu urang mimitian nalungtik rumusna ti jero:

    Anjeun nganggo ROW(INDIRECT("1:"&LEN(string))) atawa SEQUENCE(LEN(string)) pikeun nyieun runtuyan angka nu pakait jeung jumlah total. tina karakter dina string sumber, lajeng eupan eta angka sequential kana fungsi MID salaku angka dimimitian. Dina B2, bagian tina rumus ieu katingalina kieu:

    MID(A2, {1;2;3;4;5;6;7;8;9;10;11;12;13;14;15}, 1)

    Fungsi MID nimba unggal karakter tina A2 dimimitian ku nu pangheulana jeung mulangkeunana jadi array:

    {"2";"1";"0";" ";"S";"u";"n";"s";"e";"t";" ";"R";"o";"a";"d"}

    Asép Sunandar Sunarya ieu dikalikeun ku 1. Nilai numerik salamet tanpa parobahan, bari ngalikeun karakter non-numerik ngahasilkeun #VALUE! kasalahan:

    {2;1;0;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}

    Pungsi IFERROR nanganankasalahan ieu sarta ngagantikeunana ku string kosong:

    {2;1;0;"";"";"";"";"";"";"";"";"";"";"";""}

    Asép Sunandar Sunarya final ieu dilayanan kana fungsi TEXTJOIN, nu concatenates nilai non-kosong dina array ( ignore_empty argumen disetel ka TRUE) ngagunakeun string kosong ("") pikeun delimiter:

    TEXTJOIN("", TRUE, {2;1;0;"";"";"";"";"";"";"";"";"";"";"";""})

    Tip. Pikeun Excel 2016 - 2007, solusi ogé aya, tapi rumusna langkung rumit. Anjeun tiasa mendakanana dina tutorial ieu: Kumaha nimba nomer dina Excel.

    Pungsi custom pikeun mupus téks tina angka

    Solusina lumaku pikeun sakabéh vérsi Excel

    Mun anjeun maké vérsi Excel heubeul atawa manggihan rumus di luhur ogé hese diinget, teu aya anu ngahalangan anjeun nyiptakeun pungsi anjeun nyalira kalayan sintaksis anu langkung sederhana sareng nami anu ramah-pamaké sapertos RemoveText . Fungsi nu didefinisikeun ku pamaké (UDF) bisa ditulis ku dua cara:

    Kode VBA 1:

    Di dieu, urang nempo unggal karakter dina string sumber hiji-hiji. hiji tur pariksa lamun éta numerik atanapi henteu. Lamun hiji angka, karakter ditambahkeun kana string hasilna.

    Fungsi RemoveText(str Salaku String) Taram sRes Salaku String sRes = "" Pikeun i = 1 Pikeun Len(str) Lamun True = IsNumeric(Mid(str, i , 1)) Lajeng sRes = sRes & amp; Pertengahan (str, i, 1) Tungtung Lamun Salajengna i RemoveText = Fungsi sRes Tungtung

    Kode VBA 2:

    Kode ieu nyieun obyék pikeun ngolah éksprési biasa. Ngagunakeun RegExp, urang miceun kabeh karakter lian ti angka 0-9 tina string sumber.

    Fungsi RemoveText(str As String) As String With CreateObject ( "VBScript.RegExp") .Global = True .Pattern = "[^0-9]" RemoveText = .Replace(str, "") Ditungtungan ku Fungsi Tungtung

    Dina lembar kerja leutik, duanana Konci bakal ngajalankeun sarua ogé. Dina lembar kerja anu ageung dimana fungsina disebut ratusan atanapi rébuan kali, kode 2 anu nganggo VBScript.RegExp bakal tiasa dianggo langkung gancang.

    Léngkah-léngkah pikeun nyelapkeun kode dina buku kerja anjeun tiasa dipendakan di dieu: Kumaha nyelapkeun VBA kode dina Excel.

    Mana wae pendekatan anu anjeun pilih, tina sudut pandang pamaké ahir, pungsi pikeun mupus téks jeung ninggalkeun angka sagampil kieu:

    RemoveText(string)

    Contona, pikeun miceun karakter non-numerik tina sél A2, rumus dina B2 nyaéta:

    =RemoveText(A2)

    Cukup salin kana kolom, sareng anjeun bakal nampi hasil ieu:

    Catetan. Rumus asli sareng fungsi khusus ngaluarkeun string numerik . Pikeun ngarobahna jadi angka, kalikeun hasilna ku 1, atawa tambahkeun enol, atawa bungkus rumus dina fungsi VALUE. Contona:

    =RemoveText(A2) + 0

    =VALUE(RemoveText(A2))

    Kumaha carana miceun nomer tina string téks dina Excel

    Solusina jalan dina Excel 365, Excel 2021, jeung Excel 2019

    Rumus pikeun miceun angka tina string alpanumérik ampir sarua jeung nu dibahas dina conto saméméhna.

    Pikeun Excel 365 - 2019:

    TEXTJOIN(" ", BENER, IF(ISERR(MID( sel , ROW(TEU LANGSUNG("1:"&LEN( sél ) )), 1) *1), MID( sél , ROW(TEU LANGSUNG("1:"&LEN( sél ))), 1), ""))

    Dina Excel 2019, émut janten rumus array ku mencét Ctrl + Shift + Enter babarengan.

    Pikeun Excel 365 sareng 2021:

    TEXTJOIN("", TRUE, IF(ISERROR(MID( cell , SEQUENCE(LEN( cell 1) *1), MID ( sél , SEQUENCE(LEN( sél )), 1), ""))

    Contona, pikeun nyabut angka tina string dina A2, rumusna nyaéta:

    =TEXTJOIN("", TRUE, IF(ISERR(MID(A2, ROW(INDIRECT( "1:"&LEN(A2) )), 1) *1), MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1), ""))

    Atawa

    =TEXTJOIN("", TRUE, IF(ISERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1), MID(A2, SEQUENCE(LEN(A2)), 1), ""))

    Hasilna, sakabéh angka dipiceun tina sél jeung karakter téks disimpen:

    Saperti ditémbongkeun dina screenshot di luhur, rumus strips karakter numerik ti posisi mana wae dina string: di awal, di ahir, jeung di tengah. Tapi, aya caveat: lamun string dimimitian ku angka dituturkeun ku spasi , spasi ieu dipikagaduh, nu ngahasilkeun masalah spasi ngarah (kawas dina B2).

    Pikeun nyingkirkeun tambahan spasi saméméh téks , bungkus rumus dina fungsi TRIM sapertos kieu:

    =TRIM(TEXTJOIN("", TRUE, IF(ISERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1), MID(A2, SEQUENCE(LEN(A2)), 1), "")))

    Ayeuna, hasil anjeun leres pisan!

    Kumaha rumus ieu:

    Intina, rumus jalanna sami sareng anu dijelaskeun dina conto sateuacana. Bédana téh, ti Asép Sunandar Sunarya final dilayanan kana fungsi TEXTJOIN, Anjeun kudu miceun angka, teu téks. Pikeun ngalakukeunana, kami nganggo kombinasi fungsi IF sareng ISERROR.

    Sapertos anjeun émut,MID(…)+0 ngahasilkeun susunan angka jeung #VALUE! kasalahan ngagambarkeun karakter téks dina posisi nu sarua:

    {2;1;0;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}

    Pungsi ISERROR nangkep kasalahan jeung ngalirkeun susunan nilai Boolean hasilna ka IF:

    {FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE}

    Lamun fungsi IF nilik BENER (kasalahan), eta inserts karakter téks pakait kana Asép Sunandar Sunarya olahan kalayan bantuan fungsi MID sejen. Lamun fungsi IF ningali FALSE (angka), éta ngagantikeun eta ku string kosong:

    {"";"";"";" ";"S";"u";"n";"s";"e";"t";" ";"R";"o";"a";"d"}

    Asép Sunandar Sunarya final ieu dibikeun ka TEXTJOIN, jadi concatenates karakter téks tur kaluaran hasilna.

    Pungsi custom pikeun miceun angka tina téks

    Solusina lumaku pikeun sakabéh vérsi Excel

    Perhatikeun yén rumus anu kuat kudu dijaga. saderhana, kuring bakal ngabagikeun kodeu fungsi anu ditetepkeun ku pangguna (UDF) pikeun ngaleungitkeun karakter angka.

    Kode VBA 1:

    Fungsi RemoveNumbers(str As String) Taram sRes Salaku String sRes = "" Pikeun i = 1 Pikeun Len (str) Lamun Palsu = IsNumeric (Mid (str, abdi, 1)) Lajeng sRes = sRes & amp; Pertengahan (str, i, 1) Tungtung Lamun Salajengna i RemoveNumbers = sRes Tungtung Fungsi

    VBA kode 2:

    Fungsi RemoveNumbers (str Salaku String ) Salaku String Jeung CreateObject ( "VBScript.RegExp" ) .Global = True .Pattern = "[0-9]" RemoveNumbers2 = .Replace(str, "") End With End Function

    Saperti dina fungsi RemoveText, kodeu kadua leuwih hadé dipaké dina badaglembar kerja pikeun ngaoptimalkeun kinerja.

    Sanggeus kodeu ditambahkeun kana workbook anjeun, anjeun bisa miceun kabeh karakter numerik tina sél maké pungsi custom ieu:

    RemoveNumbers(string)

    Dina kasus urang, rumus dina B2 nyaéta:

    =RemoveNumbers(A2)

    Pikeun motong spasi ngarah lamun aya, sarang pungsi custom di jero TRIM kawas anjeun ngalakukeun rumus asli:

    =TRIM(RemoveNumbers(A2))

    Bagi nomer sareng téks kana kolom anu misah

    Dina kaayaan nalika anjeun hoyong misahkeun téks sareng angka kana dua kolom, éta langkung saé upami padamelan dilakukeun nganggo rumus tunggal. , satuju? Pikeun ieu, urang ngan ngagabungkeun kodeu RemoveText jeung RemoveNumbers fungsi kana hiji fungsi, ngaranna SplitTextNumbers , atawa ngan saukur Split , atawa naon waé anu anjeun pikahoyong :)

    Kode VBA 1:

    Fungsi SplitTextNumbers(str As String , is_remove_text As Boolean ) As String Dim sNum, sText, sChar As String sCurChar = sNum = sText = "" Pikeun i = 1 Pikeun Len (str) sCurChar = Pertengahan (str, abdi, 1) Lamun Leres = IsNumeric (sCurChar) Lajeng sNum = sNum & amp; sCurChar Sejenna sText = sText & amp; sCurChar End If Next i If True = is_remove_text Then SplitTextNumbers = sNum Else SplitTextNumbers = sText End If End Function

    VBA code 2:

    Function SplitTextNumbers(str As String, is_remove_) Kalawan CreateObject ( "VBScript.RegExp") .Global = Leres Lamun Leres = is_remove_text Lajeng .Pola = "[^0-9]" Lain.Pattern = "[0-9]" End If SplitTextNumbers = .Replace(str, "") End With End Function

    Fungsi custom anyar kami merlukeun dua argumen:

    SplitTextNumbers(string, is_remove_text)

    Dimana is_remove_text mangrupikeun nilai Boolean anu nunjukkeun karakter mana anu kedah dileungitkeun:

    • BENER atanapi 1 - hapus téks sareng jaga nomer
    • SALAH atanapi 0 - hapus nomer sareng jaga téks

    Pikeun set data sampel urang, rumusna kieu:

    Pikeun mupus karakter non-numerik:

    =SplitTextNumbers(A2, TRUE)

    Pikeun mupus karakter numerik :

    =SplitTextNumbers(A2, FALSE)

    Tip. Pikeun ngahindarkeun masalah poténsi spasi ngarah, abdi nyarankeun salawasna mungkus rumus nu miceun angka dina fungsi TRIM:

    =TRIM(SplitTextNumbers(A2, FALSE))

    Alat husus pikeun miceun angka atawa téks

    Pikeun jalma anu ngalakukeun. Teu resep nyusahkeun hal-hal anu teu perlu, kuring bakal nunjukkeun cara urang sorangan pikeun ngahapus téks atanapi nomer dina Excel.

    Anggap Suite Ultimate kami ditambahkeun kana pita Excel anjeun, ieu anu anjeun lakukeun:

    1. Dina tab Ablebits Data , dina grup Teks , klik Hapus > Hapus Aksara .

  • Dina panel add-in, pilih rentang sumber, pilih pilihan Hapus set karakter , teras pilih salah sahiji Teks karakter atawa Numeric karakter dina daptar turun-handap.
  • Pencét Pupus teras nikmati hasilna :)
  • Tip. Lamun hasilna ngandung sababaraha spasi ngarah, Spasi motongalat bakal ngaleungitkeun aranjeunna dina waktu anu singget.

    Éta cara mupus téks atanapi karakter angka tina string dina Excel. Kuring hatur nuhun pikeun maca sareng ngarepkeun anjeun tiasa ningali anjeun dina blog kami minggu payun!

    Unduh anu sayogi

    Pupus téks atanapi nomer dina Excel - conto (file .xlsm)

    Ultimate Suite - versi percobaan (file .exe)

    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.