Jinsi ya kuondoa maandishi au nambari kutoka kwa seli ya Excel

  • Shiriki Hii
Michael Brown

Mafunzo haya yatakufundisha jinsi ya kutenganisha maandishi kutoka kwa nambari katika Excel kwa kutumia fomula asili na vitendaji maalum. Pia utajifunza jinsi ya kugawanya maandishi na nambari katika safu wima mbili tofauti.

Fikiria hili: unapokea data ghafi kwa uchanganuzi na ugundue kuwa nambari zimechanganywa na maandishi katika safu wima moja. Katika hali nyingi, itakuwa rahisi zaidi kuwa nazo katika safu wima tofauti kwa uchunguzi wa karibu.

Iwapo unafanya kazi na data yenye mchanganyiko, unaweza kutumia KUSHOTO, KULIA, na vitendaji vya KATIKATI kutoa idadi sawa ya wahusika kutoka nafasi sawa. Lakini hiyo ni hali inayofaa kwa vipimo vya maabara. Katika maisha halisi, kuna uwezekano mkubwa wa kukabiliana na data tofauti ambapo nambari huja kabla ya maandishi, baada ya maandishi au kati ya maandishi. Mifano iliyo hapa chini hutoa suluhu haswa kwa kesi hii.

    Jinsi ya kuondoa maandishi na kuweka nambari katika visanduku vya Excel

    Suluhisho hufanya kazi katika Excel 365, Excel 2021 , na Excel 2019

    Microsoft Excel 2019 ilianzisha vitendaji vichache vipya ambavyo havipatikani katika matoleo ya awali, na tutatumia mojawapo ya vitendaji kama hivyo, yaani TEXTJOIN, kuondoa vibambo vya maandishi kwenye kisanduku. iliyo na nambari.

    Mfumo wa jumla ni:

    TEXTJOIN("", TRUE, IFERROR(MID( seli, ROW(INDIRECT( "1:"&LEN(<1)]> seli))), 1) *1, ""))

    Katika Excel 365 na 2021, hii pia itafanya kazi:

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

    Mwanzoni, fomula zinaweza kuonekana za kutisha, lakini hufanya kazi :)

    Kwa mfano, ili kuondoa maandishi kutoka kwa nambari katika A2, weka mojawapo ya fomula zilizo hapa chini katika B2, kisha unakili hadi seli nyingi kadri inavyohitajika.

    Katika Excel 365 - 2019:

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

    Katika Excel 2019, ni lazima iingizwe kama fomula ya mkusanyiko na Ctrl + Shift + Enter . Katika safu inayobadilika ya Excel, inafanya kazi kama fomula ya kawaida iliyokamilishwa na kitufe cha Ingiza.

    Katika Excel 365 na 2021:

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

    Kutokana na hilo, herufi zote za maandishi ni. imeondolewa kwenye kisanduku na nambari hutunzwa:

    Jinsi fomula hii inavyofanya kazi:

    Ili kuelewa mantiki vyema, hebu tuanze kuchunguza fomula kutoka ndani:

    Unatumia ama ROW(INDIRECT("1:"&LEN(string)))) au SEQUENCE(LEN(string)) kuunda mfuatano wa nambari zinazolingana na jumla ya nambari. ya vibambo kwenye mfuatano wa chanzo, na kisha ulishe nambari hizo zinazofuatana kwa kazi ya MID kama nambari za kuanzia. Katika B2, sehemu hii ya fomula inaonekana kama ifuatavyo:

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

    Kitendaji cha MID hutoa kila herufi kutoka kwa A2 kuanzia na ile ya kwanza kabisa na kuzirudisha kama safu:

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

    Safu hii inazidishwa na 1. Thamani za nambari zinaendelea kuwepo bila mabadiliko yoyote, huku kuzidisha herufi zisizo na nambari husababisha #VALUE! kosa:

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

    Kitendakazi cha IFERROR hushughulikiahitilafu hizi na kuzibadilisha na mifuatano tupu:

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

    Safu hii ya mwisho inatumika kwa chaguo za kukokotoa TEXTJOIN, ambayo huambatanisha thamani zisizo tupu katika safu ( ignore_empty hoja imewekwa kuwa TRUE) kwa kutumia mfuatano tupu ("") kwa kikomo:

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

    Kidokezo. Kwa Excel 2016 - 2007, suluhisho pia lipo, lakini formula ni ngumu zaidi. Unaweza kuipata katika somo hili: Jinsi ya kutoa nambari katika Excel.

    Kitendaji maalum cha kuondoa maandishi kwenye nambari

    Suluhisho hufanya kazi kwa matoleo yote ya Excel

    Ikiwa unatumia toleo la zamani la Excel au tafuta fomula zilizo hapo juu pia vigumu kukumbuka, hakuna kinachokuzuia kuunda kazi yako mwenyewe kwa sintaksia rahisi na jina linalofaa mtumiaji kama vile RemoveText . Kitendakazi kilichobainishwa na mtumiaji (UDF) kinaweza kuandikwa kwa njia mbili:

    VBA msimbo 1:

    Hapa, tunaangalia kila herufi katika mfuatano wa chanzo moja baada ya nyingine. moja na uangalie ikiwa ni nambari au la. Ikiwa nambari, herufi inaongezwa kwa mfuatano unaotokana.

    Function RemoveText(str As String ) Dim sRes As String sRes = "" Kwa i = 1 Kwa Len(str) Ikiwa Kweli = IsNumeric(Mid(str, i) , 1)) Kisha sRes = sRes & Mid(str, i, 1) Mwisho Ikiwa Inayofuata i RemoveText = sRes Komesha Kazi

    VBA code 2:

    Msimbo huunda kitu ili kuchakata usemi wa kawaida. Kwa kutumia RegExp, tunaondoa herufi zote isipokuwa tarakimu 0-9 kutoka kwa mfuatano wa chanzo.

    Function RemoveText(str As String ) Kama Mfuatano Ukiwa na CreateObject ( "VBScript.RegExp" ) .Global = True .Pattern = "[^0-9]" RemoveText = .Badilisha(str, "" ) Maliza na Kazi ya Mwisho

    Kwenye laha ndogo za kazi, misimbo yote miwili itafanya kazi sawa sawa. Kwenye laha kubwa za kazi ambapo utendakazi huitwa mamia au maelfu ya nyakati, misimbo 2 inayotumia VBScript.RegExp itafanya kazi haraka zaidi.

    Hatua za kina za kuingiza msimbo kwenye kitabu chako cha kazi zinaweza kupatikana hapa: Jinsi ya kuingiza VBA. msimbo katika Excel.

    Njia yoyote utakayochagua, kutoka kwa mtazamo wa mtumiaji wa mwisho, kazi ya kufuta maandishi na kuacha nambari ni rahisi kama hii:

    RemoveText(string)

    Kwa mfano, ili ondoa vibambo visivyo vya nambari kwenye kisanduku A2, fomula katika B2 ni:

    =RemoveText(A2)

    Nakili tu chini ya safu wima, na utapata matokeo haya:

    Kumbuka. Fomula asili na towe la chaguo la kukokotoa maalum mfuatano wa nambari . Ili kuigeuza kuwa nambari, zidisha matokeo kwa 1, au ongeza sifuri, au funga fomula katika kitendakazi cha VALUE. Kwa mfano:

    =RemoveText(A2) + 0

    =VALUE(RemoveText(A2))

    Jinsi ya kuondoa nambari kutoka kwa mfuatano wa maandishi katika Excel

    Suluhisho hufanya kazi katika Excel 365, Excel 2021 na Excel 2019

    Mbinu za kuondoa nambari kutoka kwa mfuatano wa alphanumeric ni sawa na zile zilizojadiliwa katika mfano uliopita.

    Kwa Excel 365 - 2019:

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

    Katika Excel 2019, kumbuka kuifanya fomula ya mkusanyiko kwa kubonyeza Ctrl + Shift + Enter vitufe pamoja.

    Kwa Excel 365 na 2021:

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

    Kwa mfano, kuondoa nambari kutoka kwa mfuatano katika A2, fomula ni:

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

    Au

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

    Kutokana na hilo, nambari zote huondolewa kwenye kisanduku na vibambo vya maandishi hutunzwa:

    14>

    Kama inavyoonyeshwa kwenye picha ya skrini iliyo hapo juu, fomula huondoa herufi za nambari kutoka nafasi yoyote katika mfuatano: mwanzoni, mwishoni na katikati. Hata hivyo, kuna tahadhari: ikiwa kamba huanza na nambari ikifuatiwa na nafasi , nafasi hiyo huhifadhiwa, jambo ambalo hutokeza tatizo la nafasi zinazoongoza (kama vile B2).

    Ili kuondoa nafasi za ziada kabla ya maandishi. , funga fomula katika kazi ya TRIM kama hii:

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

    Sasa, matokeo yako ni bora kabisa!

    Jinsi fomula hii inavyofanya kazi:

    Kimsingi, fomula inafanya kazi sawa na ilivyoelezwa katika mfano uliopita. Tofauti ni kwamba, kutoka kwa safu ya mwisho inayotumika hadi kazi ya TEXTJOIN, unahitaji kuondoa nambari, sio maandishi. Ili kuifanya, tunatumia mchanganyiko wa vitendaji vya IF na ISERROR.

    Kama unavyokumbuka,MID(…)+0 hutoa safu ya nambari na #VALUE! hitilafu zinazowakilisha vibambo vya maandishi katika nafasi sawa:

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

    Kitendo cha kukokotoa cha ISERROR kinanasa hitilafu na kupitisha safu inayotokana ya thamani za Boolean hadi IF:

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

    Kitendakazi cha IF kinapoona TRUE (hitilafu), huingiza herufi inayolingana ya maandishi kwenye safu iliyochakatwa kwa usaidizi wa kitendakazi kingine cha MID. Chaguo za kukokotoa za IF zinapoona FALSE (nambari), huibadilisha na mfuatano tupu:

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

    Safu hii ya mwisho inapitishwa kwa TEXTJOIN, kwa hivyo inaambatanisha herufi za maandishi na kutoa matokeo. tokeo.

    Kitendaji maalum cha kuondoa nambari kutoka kwa maandishi

    Suluhisho hufanya kazi kwa matoleo yote ya Excel

    Kumbuka kwamba fomula thabiti inapaswa kuwekwa. rahisi, nitashiriki msimbo wa chaguo za kukokotoa zilizofafanuliwa na mtumiaji (UDF) ili kuondoa herufi yoyote ya nambari.

    Msimbo wa VBA 1:

    Function RemoveNumbers(str As String ) Dim sRes As String sRes = "" Kwa i = 1 Kwa Len(str) Ikiwa Siyo = IsNumeric(Mid(str, i, 1)) Kisha sRes = sRes & Mid(str, i, 1) Mwisho Ikiwa Inayofuata i RemoveNumbers = sRes Mwisho wa Kazi

    VBA code 2:

    Function RemoveNumbers(str As String ) Kama Mfuatano na CreateObject ( "VBScript.RegExp" ) .Global = True .Pattern = "[0-9]" RemoveNumbers2 = .Replace(str, "" ) Maliza na Kitendaji cha Mwisho

    Kama ilivyo kwa kitendakazi cha RemoveText, msimbo wa pili ni bora zaidi kutumika katika kubwalaha za kazi ili kuboresha utendakazi.

    Pindi msimbo unapoongezwa kwenye kitabu chako cha kazi, unaweza kuondoa herufi zote za nambari kutoka kwa kisanduku ukitumia chaguo maalum la kukokotoa:

    RemoveNumbers(string)

    Kwa upande wetu, fomula katika B2 ni:

    =RemoveNumbers(A2)

    Ili kupunguza nafasi zinazoongoza ikiwa zipo, weka kitendakazi maalum ndani ya TRIM kama vile ungetumia fomula asili:

    =TRIM(RemoveNumbers(A2))

    Gawanya nambari na maandishi katika safu wima tofauti

    Katika hali unapotaka kutenganisha maandishi na nambari katika safu wima mbili, itakuwa vyema kufanya kazi hiyo kufanywa kwa fomula moja. , kubali? Kwa hili, tunaunganisha tu msimbo wa vitendaji vya RemoveText na OndoaNumbers kuwa chaguo moja la kukokotoa, linaloitwa SplitTextNumbers , au kwa urahisi Split , au chochote unachopenda :)

    Msimbo wa VBA 1:

    Function SplitTextNumbers(str As String , is_remove_text As Boolean ) As String Dim sNum, sText, sChar As String sCurChar = sNum = sText = "" Kwa i = 1 Kwa Len(str) sCurChar = Mid(str, i, 1) Ikiwa Kweli = IsNumeric(sCurChar) Kisha sNum = sNum & sCurChar Else sText = sText & sCurChar Mwisho Kama Inayofuata i Kama Kweli = is_remove_text Kisha SplitTextNumbers = sNum Else SplitTextNumbers = sText Mwisho Ikiwa Kazi ya Mwisho

    Msimbo wa VBA 2:

    Function SplitTextNumbers(str As String , As_text Boulevard ) Na CreateObject ( "VBScript.RegExp" ) .Global = True If True = is_remove_text Kisha .Pattern = "[^0-9]" Vinginevyo.Pattern = "[0-9]" Maliza Ikiwa SplitTextNumbers = .Badilisha(str, "" ) Maliza Na Kitendaji cha Mwisho

    Kitendaji chetu kipya cha kukokotoa kinahitaji hoja mbili:

    SplitTextNumbers(string, is_remove_text)

    Wapi is_remove_text ni thamani ya Boolean inayoonyesha ni vibambo vipi vya kuvuliwa:

    • TRUE au 1 - ondoa maandishi na uhifadhi nambari
    • FALSE au 0 - ondoa nambari na uweke maandishi.

    Kwa sampuli ya mkusanyiko wetu wa data, fomula huchukua fomu hii:

    Ili kuondoa herufi zisizo nambari:

    =SplitTextNumbers(A2, TRUE)

    Ili kufuta vibambo nambari :

    =SplitTextNumbers(A2, FALSE)

    Kidokezo. Ili kuepuka tatizo linaloweza kutokea la nafasi zinazoongoza, ninapendekeza kila wakati ufunge fomula inayoondoa nambari katika chaguo la kukokotoa la TRIM:

    =TRIM(SplitTextNumbers(A2, FALSE))

    Zana maalum ya kuondoa nambari au maandishi

    Kwa wale wanaofanya hivyo. sipendi kutatanisha mambo bila lazima, nitaonyesha njia yetu wenyewe ya kuondoa maandishi au nambari katika Excel.

    Tukichukulia Ultimate Suite yetu imeongezwa kwenye utepe wako wa Excel, hivi ndivyo unavyofanya:

    1. Kwenye kichupo cha Ablebits Data , katika kikundi cha Nakala , bofya Ondoa > Ondoa Herufi .

  • Kwenye kidirisha cha programu jalizi, chagua masafa ya chanzo, chagua chaguo la Ondoa seti za herufi na uchague Maandishi herufi au Nambari herufi katika orodha kunjuzi.
  • Gonga Ondoa na ufurahie matokeo :)
  • Kidokezo. Ikiwa matokeo yana nafasi zingine zinazoongoza, Punguza Nafasichombo kitawaondoa kwa muda mfupi.

    Hiyo ndiyo jinsi ya kuondoa maandishi au herufi za nambari kutoka kwa mfuatano katika Excel. Ninakushukuru kwa kusoma na kutarajia kukuona kwenye blogu yetu wiki ijayo!

    Vipakuliwa vinavyopatikana

    Ondoa maandishi au nambari katika Excel - mifano (.xlsm file)

    Ultimate Suite - toleo la majaribio (.exe faili)

    Michael Brown ni mpenda teknolojia aliyejitolea na mwenye shauku ya kurahisisha michakato changamano kwa kutumia zana za programu. Akiwa na uzoefu wa zaidi ya muongo mmoja katika tasnia ya teknolojia, ameboresha ujuzi wake katika Microsoft Excel na Outlook, pamoja na Majedwali ya Google na Hati. Blogu ya Michael imejitolea kushiriki maarifa na ujuzi wake na wengine, kutoa vidokezo na mafunzo ambayo ni rahisi kufuata ili kuboresha tija na ufanisi. Iwe wewe ni mtaalamu aliyebobea au umeanza, blogu ya Michael inatoa maarifa muhimu na ushauri wa vitendo ili kupata manufaa zaidi kutoka kwa zana hizi muhimu za programu.