Nola kendu testua edo zenbakiak Excel gelaxkatik

  • Partekatu Hau
Michael Brown

Tutorial honek Excel-en testua zenbakietatik nola bereizten irakatsiko dizu jatorrizko formulak eta funtzio pertsonalizatuak erabiliz. Testua eta zenbakiak bi zutabetan banatzen ere ikasiko duzu.

Irudikatu hau: datu gordinak jasotzen dituzu aztertzeko eta zenbakiak testuarekin nahasten direla zutabe batean jakingo duzu. Egoera gehienetan, zalantzarik gabe, komenigarriagoa izango da zutabe bereizietan egotea sakonago aztertzeko.

Datu homogeneoekin lan egiten ari bazara, ziurrenik EZKER, ESKUIN eta ERDIAK funtzioak erabil ditzakezu. posizio bereko karaktere kopuru bera. Baina hori agertoki aproposa da laborategiko probetarako. Bizitza errealean, litekeena da datu desberdinei aurre egitea, non zenbakiak testuaren aurretik, testuaren ondoren edo testuaren artean daudenean. Beheko adibideek kasu honetarako zehatz-mehatz irtenbideak eskaintzen dituzte.

    Nola kendu testua eta zenbakiak Excel gelaxketan gorde

    Itenbideak Excel 365, Excel 2021-en funtzionatzen du. , eta Excel 2019

    Microsoft Excel 2019-k aurreko bertsioetan erabilgarri ez dauden funtzio berri batzuk sartu zituen, eta funtzio horietako bat erabiliko dugu, TEXTJOIN alegia, gelaxka bateko testu-karaktereak kentzeko. zenbakiak dituzten.

    Formula generikoa hau da:

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

    Excel 365 eta 2021-en, honek ere funtzionatuko du:

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

    Lehen begiratuan, formulak beldur samarrak izan daitezke, baina funtzionatzen dute :)

    Adibidez, A2ko zenbakietatik testua kentzeko, sartu beheko formuletako bat B2n, eta kopiatu behar adina gelaxkatan.

    Excel 365 - 2019-n:

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

    Excel 2019-n, matrize formula gisa sartu behar da Ctrl + Shift + Sartu. Excel array dinamikoan, Sartu teklarekin osatutako formula normal gisa funtzionatzen du.

    Excel 365 eta 2021ean:

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

    Ondorioz, testu-karaktere guztiak dira. gelaxka batetik kendu eta zenbakiak gordetzen dira:

    Nola funtzionatzen duen formula honek:

    Logika hobeto ulertzeko, has gaitezen ikertzen barrutik formula:

    ROW(INDIRECT("1:"&LEN(katea))) edo SEQUENCE(LEN(katea)) erabiltzen duzu zenbaki osoaren sekuentzia bat sortzeko. iturburu-kateko karaktereen kopurua, eta, ondoren, zenbaki sekuentzial horiek MID funtziora elikatu hasierako zenbaki gisa. B2-n, formularen zati honek honela dauka:

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

    MID funtzioak A2-tik karaktere bakoitza ateratzen du lehenengotik hasita eta matrize gisa itzultzen ditu:

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

    Matrize hau 1ez biderkatzen da. Zenbakizko balioek bizirauten dute aldaketarik gabe, eta zenbakizko karaktere bat biderkatuz gero, #BALIOA! errorea:

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

    IFERROR funtzioak maneiatzen duerrore hauek eta kate hutsekin ordezkatzen ditu:

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

    Azken matrize hau TEXTJOIN funtzioari ematen zaio, zeinak hutsik ez diren balioak kateatzen ditu matrizean ( ignore_empty argumentua TRUE gisa ezarrita) kate huts bat ("") erabiliz mugatzailerako:

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

    Aholkua. Excel 2016 - 2007rako, irtenbide bat ere badago, baina formula askoz konplexuagoa da. Tutorial honetan aurki dezakezu: Nola atera zenbakiak Excel-en.

    Zenbakietatik testua kentzeko funtzio pertsonalizatua

    Itenbideak Excel bertsio guztietan funtzionatzen du

    Excel-en bertsio zaharrago bat erabiltzen ari bazara edo goiko formulak ere aurkitzen badituzu zaila da gogoratzea, ezerk ez dizu zure funtzioa sortzea eragozten sintaxi sinpleago batekin eta izen atsegin batekin, esate baterako, Kendu Testua . Erabiltzaileak definitutako funtzioa (UDF) bi modutara idatz daiteke:

    VBA kodea 1:

    Hemen, iturburu-kateko karaktere bakoitza banan-banan ikusiko dugu. bat eta egiaztatu zenbakizkoa den ala ez. Zenbaki bat bada, karakterea gehitzen zaio ondoriozko kateari.

    Funtzioa RemoveText(str As String ) Dim sRes As String sRes = "" For i = 1 To Len(str) If True = IsNumeric(Mid(str, i , 1)) Orduan sRes = sRes & Mid(str, i, 1) End If Next i RemoveText = sRes End Funtzioa

    VBA kodea 2:

    Kodeak objektu bat sortzen du adierazpen erregularra prozesatzeko. RegExp erabiliz, 0-9 zifrak ez diren karaktere guztiak kentzen ditugu iturburu-katetik.

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

    Lan-orri txikietan, bi kodeak berdin funtzionatuko dute. Funtzioa ehunka edo milaka aldiz deitzen den lan-orri handietan, VBScript.RegExp erabiltzen duen 2 kodea azkarrago funtzionatuko du.

    Kodea zure lan-liburuan txertatzeko urrats zehatzak hemen aurki ditzakezu: VBA nola txertatu Excel-en kodea.

    Aukeratzen duzun ikuspegia edozein dela ere, azken erabiltzailearen ikuspegitik, testua ezabatzeko eta zenbakiak uzteko funtzioa hau bezain erraza da:

    KenduText(string)

    Adibidez, kendu zenbakizko karaktereak A2 gelaxkatik, B2-ko formula hau da:

    =RemoveText(A2)

    Kopia ezazu zutabean behera, eta emaitza hau lortuko duzu:

    Oharra. Bai jatorrizko formulak bai funtzio pertsonalizatuak zenbakizko katea ateratzen dute. Zenbaki bihurtzeko, biderkatu emaitza 1ez, edo gehitu zero, edo bildu formula BALIOA funtzioan. Adibidez:

    =RemoveText(A2) + 0

    =VALUE(RemoveText(A2))

    Nola kendu zenbakiak testu-katetik Excel-en

    Itenbideak Excel 365, Excel 2021 eta Excel-en funtzionatzen du. 2019

    Kate alfanumeriko batetik zenbakiak kentzeko formulak aurreko adibidean aztertutakoen antzekoak dira.

    Excel 365 - 2019rako:

    TEXTJOIN(" ", EGIA, IF(ISERR(ERDIA( gelaxka , ERRENKADA(ZEHENKOAK("1:"&LEN( gelaxka ) )), 1) *1), MID( gelaxka , ERRENKADA(ZEHARKOAK ("1:"&LEN( ) gelaxka ))), 1), ""))

    Excel 2019-n, gogoratu array formula egin behar duzula Ctrl + Shift + Sartu teklak batera sakatuz.

    Excel 365 eta 2021erako:

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

    Adibidez, A2-ko kate batetik zenbakiak kentzeko, hau da formula:

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

    Edo

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

    Ondorioz, gelaxka batetik zenbaki guztiak kentzen dira eta testu-karaktereak gordetzen dira:

    Goiko pantaila-argazkian agertzen den bezala, formulak kate bateko edozein posiziotatik kentzen ditu zenbakizko karaktereak: hasieran, amaieran eta erdian. Hala ere, bada ohar bat: kate bat bada. zenbaki batekin eta ondoren zuriune batekin hasten da , espazio hori mantentzen da, eta horrek zuriuneen hasierako arazoa sortzen du (B2-n bezala).

    Testuaren aurretik espazio gehigarriak kentzeko. , bildu formula TRIM funtzioan honela:

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

    Orain, zure emaitzak guztiz perfektuak dira!

    Nola funtzionatzen duen formula honek:

    Funtsean, formulak aurreko adibidean azaldu bezala funtzionatzen du. Ezberdintasuna zerbitzatzen den azken arraytik TEXTJOIN funtziora arte, zenbakiak kendu behar dituzula, ez testua. Hori egiteko, IF eta ISERROR funtzioen konbinazioa erabiltzen dugu.

    Gogoratzen duzunez,MID(…)+0 zenbaki sorta bat sortzen du eta #BALIOA! posizio bereko testu-karaktereak adierazten dituzten erroreak:

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

    ISERROR funtzioak akatsak atzematen ditu eta ondoriozko balio boolearren matrizea IF:

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

    IF funtzioak EGIA ikusten duenean (errore bat), dagokion testu-karakterea txertatzen du prozesatutako matrizean beste MID funtzio baten laguntzaz. IF funtzioak FALSE (zenbaki bat) ikusten duenean, kate huts batekin ordezkatzen du:

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

    Azken matrize hau TEXTJOIN-era pasatzen da, beraz, testu-karaktereak kateatzen ditu eta irteera ematen du. emaitza.

    Testutik zenbakiak kentzeko funtzio pertsonalizatua

    Soluzioak Excel bertsio guztietan funtzionatzen du

    Kontuan izanda formula sendoa mantendu behar dela. sinplea, erabiltzaileak definitutako funtzioaren (UDF) kodea partekatuko dut zenbakizko edozein karaktere kentzeko.

    VBA kodea 1:

    Funtzioa RemoveNumbers(str As String ) Dim sRes As String sRes = "" For i = 1 To Len(str) If False = IsNumeric (Mid (str, i, 1)) Orduan sRes = sRes & Mid(str, i, 1) End If Next i RemoveNumbers = sRes End Funtzioa

    VBA kodea 2:

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

    Kendu Testua funtzioarekin gertatzen den bezala, bigarren kodea erabiltzea hobe da. handialan-orriak errendimendua optimizatzeko.

    Kodea zure lan-liburuan gehitutakoan, gelaxka bateko zenbakizko karaktere guztiak kendu ditzakezu funtzio pertsonalizatu hau erabiliz:

    KenduZenbakiak(katea)

    Gure kasuan, B2-ko formula hau da:

    =RemoveNumbers(A2)

    Hasierako tarteak mozteko, habiatu funtzio pertsonalizatua TRIM barruan jatorrizko formula batean bezala:

    =TRIM(RemoveNumbers(A2))

    Zatitu zenbakiak eta testua zutabe bereizietan

    Testua eta zenbakiak bi zutabetan bereizi nahi dituzun egoeran, ondo legoke lana formula bakar batekin egitea. , ados? Horretarako, RemoveText eta RemoveNumbers funtzioen kodea batu besterik ez dugu funtzio batean, SplitTextNumbers izenekoa, edo, besterik gabe, Split , edo nahi duzuna :)

    VBA kodea 1:

    Funtzioa SplitTextNumbers(str String gisa, is_remove_text Boolean gisa) String Dim sNum, sText, sChar String gisa sCurChar = sNum = sText = "" For i = 1 To Len(str) sCurChar = Mid (str, i, 1) If True = IsNumeric (sCurChar) Then sNum = sNum & sCurChar Else sText = sTestua & sCurChar End If Next i If True = is_remove_text Then SplitTextNumbers = sNum Else SplitTextNumbers = sText End If Amaiera Funtzioa

    VBA kodea 2:

    Funtzioa SplitTextNumbers(str As String , is_remove_text As String gisa) CreateObject-ekin ("VBScript.RegExp") .Global = True If True = is_remove_text Then .Pattern = "[^0-9]" Bestela.Pattern = "[0-9]" End If SplitTextNumbers = .Replace(str, "" ) End With End Function

    Gure funtzio pertsonalizatu berriak bi argumentu behar ditu:

    SplitTextNumbers(string, is_remove_text)

    Non is_remove_text balio boolearra da, zein karaktere kendu behar diren adierazten duena:

    • EGIA edo 1 - testua kendu eta zenbakiak mantendu
    • GEZURRA edo 0 - zenbakiak kendu eta testua mantendu

    Gure lagin-datu multzorako, formulek forma hau hartzen dute:

    Zenbakizkoak ez diren karaktereak kentzeko:

    =SplitTextNumbers(A2, TRUE)

    Zenbakizko karaktereak ezabatzeko :

    =SplitTextNumbers(A2, FALSE)

    Aholkua. Lekuen hasierako arazo bat ekiditeko, zenbakiak kentzen dituen formula TRIM funtzioan beti biltzea gomendatzen dut:

    =TRIM(SplitTextNumbers(A2, FALSE))

    Zenbakiak edo testua kentzeko tresna berezia

    Egiten dutenentzat. gauzak alferrikako konplikatzea ez gustatzen, Excel-en testua edo zenbakiak kentzeko gure modua erakutsiko dut.

    Gure Ultimate Suite zure Excel zintaria gehitzen dela suposatuz, hau da egiten duzuna:

    1. Ablebits Data fitxan, Testua taldean, sakatu Kendu > Kendu karaktereak .

  • Gehigarriaren panelean, hautatu iturburu-barrutia, aukeratu Kendu karaktere multzoak aukera eta hautatu Testua karaktereak edo Zenbakizko karaktere goitibeherako zerrendan.
  • Sakatu Kendu eta gozatu emaitzaz :)
  • Aholkua. Emaitzek hasierako zuriune batzuk badituzte, Moztu espazioaktresnak denbora gutxian ezabatuko ditu.

    Horrela nola kendu testu edo zenbakizko karaktereak kate batetik Excel-en. Eskerrik asko irakurtzeagatik eta hurrengo astean gure blogean ikustea espero dut!

    Deskargak erabilgarri

    Kendu testua edo zenbakiak Excel-en - adibideak (.xlsm fitxategia)

    Ultimate Suite - probako bertsioa (.exe fitxategia)

    Michael Brown teknologia-zale dedikatua da, software-tresnak erabiliz prozesu konplexuak sinplifikatzeko grina duena. Hamarkada bat baino gehiagoko esperientzia duen teknologia-industrian, Microsoft Excel eta Outlook-en eta Google Sheets eta Docs-en trebetasunak landu ditu. Michael-en bloga bere ezagutzak eta esperientziak besteekin partekatzera zuzenduta dago, produktibitatea eta eraginkortasuna hobetzeko aholku eta tutorial errazak eskaintzen ditu. Profesional ondua edo hasiberria izan, Michael-en blogak informazio baliotsuak eta aholku praktikoak eskaintzen ditu funtsezko software-tresna horiei etekinik handiena ateratzeko.