Kaip iš "Excel" ląstelės išgauti tik skaičius (7 paprasti būdai)

  • Pasidalinti
Hugh West

Nors "Microsoft" nepateikė tiesioginės formulės ar sintaksės, kaip išgauti tik skaičius iš "Excel" langelio, galime įtraukti daugybę "Excel" formulės sukurti vieną funkciją, kurią būtų galima naudoti tik skaičiams arba skaitmenims iš Excel langelių išgauti. Šiame straipsnyje pabandysime išsamiai parodyti ir paaiškinti, kaip iš langelių su atitinkamomis formulėmis pagal keletą kriterijų galime išgauti tik skaičius.

Atsisiųsti praktikos sąsiuvinį

Nemokamai atsisiųskite pratybų knygą, kuria naudojomės rengdami šį straipsnį. Galite į pasirinktus langelius įvesti teksto reikšmes su skaičiais ir iš karto rasti rezultatus naudodami įterptąsias formules.

Skaičių išskyrimas iš Cell.xlsm

7 veiksmingi būdai, kaip iš "Excel" ląstelės išgauti tik skaičius

Bus vienas VBA kodas, viena "Excel" funkcija ir penkios praktinės formulės, padėsiančios jums iš ląstelės išgauti skaičius. Kaip toliau pateiktame paveikslėlyje, turime keletą kodų, įskaitant skaitmenis ir raides, kurių pradžioje yra skaitmenys. Turime išgauti tik tuos skaitmenis arba skaičius.

1. Skaičių ištraukimas iš teksto pradžios

Šiuo pirmuoju metodu sujungiame LEFT , SUMA , LEN , ir SUBSTITUTAS funkcijas, kad ištrauktume skaičius iš teksto eilutės pradžios. Pirmiausia ląstelėje įvesime šią formulę, o tada, naudodami užpildymo rankena , nukopijuosime šią formulę į likusias ląsteles.

Žingsniai:

  • Pirmiausia ląstelėje įveskite formulę C5 .

=LEFT(B5,SUM(LEN(B5)-LEN(SUBSTITUTE(B5,{"0","1","2","3","4","5","6","7","8","9"},""))))

  • Antra, paspauskite Įveskite ir gausite 34 numerį kaip pirmąjį kodą.

  • Trečia, naudokite Užpildymo rankena tada automatiškai užpildyti visus kitus stulpelio langelius C .

🔎 Formulės suskirstymas

SUBSTITUTE(B5,{"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9″},"")

  • Čia SUBSTITUTAS funkcija suras iš eilės einančius skaitmenis (0-9) ir, jei ras, pakeis tą skaitmenį ląstelėje B5 Taigi funkcija kiekvieną kartą grąžins {"34DTXRF", "34DTXRF", "34DTXRF", "34DTXRF", "4DTXRF", "3DTXRF", "34DTXRF", "34DTXRF", "34DTXRF", "34DTXRF", "34DTXRF", "34DTXRF"}.

LEN(SUBSTITUTE(B5,{"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9″},""))

  • Svetainė LEN funkcija nustato simbolių skaičių eilutėje. LEN funkcija suskaičiuos visus simbolius, atskirai rastus tekstuose per SUBSTITUTAS Mūsų atveju gautos reikšmės bus {7,7,7,7,6,6,7,7,7,7,7,7,7,7,7}.

LEN(B5)-LEN(SUBSTITUTE(B5,{"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9″},"")))

  • Dabar ši dalis yra atimama iš ląstelės simbolių skaičiaus B5 prie visų kitų ankstesnėje formulės dalyje atskirai rastų ženklų skaičių. Taigi čia gautos reikšmės bus - {0,0,0,0,1,1,0,0,0,0,0,0,0,0,0}.

SUM(LEN(B5)-LEN(SUBSTITUTE(B5,{"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9″},""))))

  • Svetainė SUMA funkcija paprasčiausiai susumuos visas atimtas vertes, rastas & taigi rezultatas bus čia, 2 (0+0+0+1+1+0+0+0+0+0).

=LEFT(B5,SUM(LEN(B5)-LEN(SUBSTITUTE(B5,{"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9″},""))))

  • O dabar paskutinė dalis, kurioje LEFT funkcija grąžins reikšmes su tiksliu simbolių skaičiumi iš kairės, surastas ankstesnėje formulės dalyje. Kadangi gavome sumos reikšmę 2, funkcija LEFT funkcija čia grąžins tik 34 iš teksto 34DTXRF .

Susiję: Kaip atskirti skaičius "Excel" programoje naudojant formulę (5 būdai)

2. Skaičių išskyrimas iš dešiniosios teksto pusės

Šiame skyriuje iš dešiniosios teksto eilutės pusės išgausime skaičius arba skaitmenis. DEŠINĖ , MIN , ir IEŠKOTI funkcijos čia.

Žingsniai:

  • Pirmiausia, mūsų duomenų rinkinyje, ką turime įvesti ląstelėje C5 is-

=RIGHT(B5,LEN(B5) - MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, B5& "0123456789") +1))

  • Po to paspauskite Įveskite ir tada naudokite Užpildymo rankena automatiškai užpildyti likusius langelius.

🔎 Formulės suskirstymas

B5& "0123456789″

  • Šiuo atveju sujungiame reikšmes, esančias B5 ląstelė su 0123456789 naudodami ampersandas (&) tarp jų ir gausime DTXRF340123456789 reikšmę.

SEARCH({0,1,2,3,4,5,6,7,8,9}, B5&”0123456789″)

  • Dabar IEŠKOTI funkcija ieškos visų skaitmenų (0-9) iš eilės rezultato reikšmėje, gautoje ankstesniame skyriuje, ir grąžins šių 10 skaitmenų pozicijas simboliuose DTXRF340123456789 Taigi, čia mūsų gautos reikšmės bus {8,9,10,6,7,13,14,15,16,17}.

MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, B5&”0123456789″))

  • Svetainė MIN funkcija naudojama mažiausiam skaičiui ar skaičiui masyve rasti. Taigi, čia mažiausia arba mažiausia reikšmė bus- 6 iš masyvo {8,9,10,6,7,13,14,15,16,17}, nurodyto ankstesnėje formulės dalyje.

LEN(B5) - MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, B5& "0123456789″) +1))

  • Dabar simbolių skaičius B5 bus rastas pagal LEN Tada ji atims reikšmę 6 (rastą paskutiniame skyriuje) ir grąžins rezultatą, pridėdama 1. Šiuo mūsų atveju gautoji reikšmė bus 2 (7-6+1) .

RIGHT(B5,LEN(B5) - MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, B5& "0123456789″)) +1)

  • Svetainė DEŠINĖ funkcija grąžins nurodytą simbolių skaičių iš paskutinės arba dešiniosios eilutės pusės. Pagal ankstesniame skirsnyje pateiktą atimties rezultatą, čia DEŠINĖ funkcija parodys 2 paskutinius ląstelės simbolius B5 , ir tai bus 34 .

Skaityti daugiau: Kaip atskirti skaičius vienoje "Excel" ląstelėje (5 metodai)

3. Skaičių išskyrimas iš bet kurios teksto eilutės dalies

Dabar pateikiame platų sprendimą visiems atvejams. Šis metodas ištrauks skaičius arba skaitmenis iš bet kurios teksto eilutės pozicijos. Be to, naudosime TEXTJOIN , IFERROR , INDIREKTINIS , MID ir EILUTĖ funkcijas šiuo metodu.

Žingsniai:

  • Pirmiausia paskirties ląstelėje įveskite tokią formulę.

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

  • Tada, jei naudojate "Excel 2016 arba naujesnę versiją, tada paspauskite Įveskite , priešingu atveju paspauskite Ctrl+Shift+Enter kad gautumėte šios masyvo formulės rezultatą.
  • Atlikę šį veiksmą, automatiškai užpildykite kitus langelius naudodami Užpildymo rankena ir viskas baigta.

🔎 Formulės suskirstymas

INDIRECT("1:"&LEN(B5))

  • Svetainė INDIREKTINIS funkcija naudojama ląstelių verčių masyvo vertei išsaugoti kaip nuorodos tekstą. Čia ampersand (& amp;) komanda sujungia ląstelės simbolių ilgį B5 su neišsamia diapazono sintakse (1:) .
  • Taigi, čia INDIREKTINIS funkcija išsaugos visus skaičius nuo 1 iki simbolių ilgio ląstelėje B5 kaip informacinį tekstą.

ROW(INDIRECT("1:"&LEN(B5)))

  • Svetainė EILUTĖ funkcija paprastai nurodo ląstelės eilutės numerį. Tačiau čia INDIREKTINIS funkcija, nes nebuvo paminėta jokia referencinė ląstelė, šiuo atveju EILUTĖ funkcija išgaus visas reikšmes arba skaičius iš nuorodų tekstų, saugomų INDIREKTINIS funkcija.
  • Dabar, 1-oji ląstelė B5 , gautas vertes per šiuos EILUTĖ ir INDIREKTINIS funkcijos bus- {1;2;3;4;5;6;7;8;9}.

(MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)))

  • Svetainė MID funkcija leidžia nustatyti teksto eilutės vidurio simbolius, jei nurodyta pradinė pozicija & amp; ilgis.
  • Taigi, čia visoms 9 ankstesniame skirsnyje nurodytoms pozicijoms MID Dabar funkcija parodys visus simbolius po vieną kiekvienai pozicijai & amp; todėl grąžins reikšmes kaip {"1″; "9″;" "; "D"; "D"; "X"; "2″; "M"; "N"}.

IFERROR((MID(B5,ROW(INDIRECT("1:"&LEN(B5)))),1)*1),"")

  • Dabar IFERROR yra loginė funkcija, kuri nustato, ar eilutė yra skaičius, ar kas nors kita. Jei ji neidentifikuoja eilutės su skaičiais ar skaitmenimis, tuomet grąžins reikšmę su apibrėžta teksto komanda.
  • Mūsų atveju visos paskutiniame skirsnyje rastos reikšmės bus dauginamos iš 1, o kai rezultatai grąžinami kaip raidžių ar teksto reikšmių, kurių negalima padauginti, reikšmių klaidos, jų IFERROR funkcija klaidas pavers tuščiomis eilutėmis. Taigi mūsų gautos reikšmės bus tokios - {1;9;"";"";"";"";"";"";"";2;"";"";""}.

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

  • O dabar paskutinė dalis bus vykdoma per TEXTJOIN Ši funkcija naudojama dviem eilutėms su nurodytu skiriamuoju ženklu sutraukti arba sujungti.
  • Taigi, ankstesniame skirsnyje rastos reikšmės dabar bus sujungtos kartu su šia reikšme. TEXTJOIN ir taip gausime skaičių 192.

Skaityti daugiau: Kaip "Excel" programoje išgauti kelis skaičius iš eilutės (6 metodai)

4. Kelių funkcijų įterpimas, siekiant išvesti tik skaičius

Dabar parodysime dar vieną formulę, kuri padės iš "Excel" ląstelės iš bet kurios pozicijos išgauti tik skaičius. Nors ji gali atrodyti gana sudėtinga, mes suskaidysime visą formulę ir pasistengsime lengvai paaiškinti visas kompaktiškas funkcijas. Be to, naudosime IF , DIDELIS , INDEKSAS , SUMPRODUCT , ir ISNUMBER funkcijos šioje formulėje.

  • Pirmiausia ląstelėje įveskite šią formulę C5 . Turite pakeisti ląstelės nuorodą tik pagal savo ląstelę skaičiuoklėje, o tada įterpdami šią formulę iš karto gausite laukiamą rezultatą. Ir ši formulė puikiai veikia bet kurioje "Excel" versijoje.

=IF(SUM(LEN(B5)-LEN(SUBSTITUTE(B5, {"0","1","2","3","4","5","6","7","8","9"}, "")))>0, SUMPRODUCT(MID(0&B5, LARGE(INDEX(ISNUMBER(--MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1))* ROW(INDIRECT("$1:$"&LEN(B5))),0), ROW(INDIRECT("$1:$"&LEN(B5))))+1,1) * 10^ROW(INDIRECT("$1:$"&LEN(B5)))/10),"")

  • Po to turite paspausti Įveskite tik įvedę visą formulę, ir viskas baigta.

🔎 Formulės suskirstymas

Prieš pradėdami šio masyvaus & amp; kompaktiška formulė suskirstymą, mes galime atskirti jį į kai kurias dalis, pavyzdžiui-

=IF(A>0, SUMPRODUCT(B 1 *C 1 , B 2 *C 2 , ..........B n C n ),"")

Ši sintaksė reiškia, kad jei A yra didesnė už 0, tada visi sandaugų B n ir C n susumuos galutinį rezultatą. O jei A yra ne didesnis nei 0, tuomet rezultatas bus grąžinamas kaip tuščias arba tuščias langelis.

  • A = SUM(LEN(B5)-LEN(SUBSTITUTE(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, ""
  • B = MID(0&B5, LARGE(INDEX(ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5)))),1))* ROW(INDIRECT("$1:$"&LEN(B5))),0), ROW(INDIRECT("$1:$"&LEN(B5))))+1,1))
  • C = 10^ROW(INDIRECT("$1:$"&LEN(B5)))/10),""

A dalies suskirstymas = SUM(LEN(B5)-LEN(SUBSTITUTE(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, ""

SUBSTITUTE(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, "")

  • Svetainė SUBSTITUTAS funkcija tekste po vieną suras visus skaitmenis (0-9). 19 DDX2MN kiekvieną kartą ir pakeis šiuos skaitmenis tuščia eilute jų vietose.
  • Taigi gautos masyvo reikšmės bus tokios: {"19 DDX2MN", "9 DDX2MN", "19 DDXMN", "19 DDX2MN", "19 DDX2MN", "19 DDX2MN", "19 DDX2MN", "19 DDX2MN", "19 DDX2MN", "19 DDX2MN", "19 DDX2MN", "19 DDX2MN", "1 DDX2MN"}.

LEN(SUBSTITUTE(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, ""))

  • Svetainė LEN Dabar funkcija suskaičiuos simbolių skaičių visose eilutės reikšmėse, gautose ankstesniame skyriuje. Taigi, ši funkcija grąžins {9,8,8,8,9,9,9,9,9,9,9,9,9,8}.

LEN(B5)-LEN(SUBSTITUTE(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, ""))

  • Dabar šioje formulės dalyje ląstelėje B5 bus atimti visi ankstesnėje dalyje rasti skaičiai. Gautos reikšmės bus tokios: {0,1,1,1,0,0,0,0,0,0,0,0,0,1}.

SUM(LEN(B5)-LEN(SUBSTITUTE(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, ""))))

  • Padedant SUMA funkcija, paskutiniame skyriuje rastos masyvo viduje esančios reikšmės bus lygios 3 (0+1+1+1+0+0+0+0+0+0+0+0+1).
  • Taigi, pagal pirmąją mūsų formulės dalį, A>0 (3>0) . Dabar pereisime prie kitos suskirstymo dalies.

B dalies suskirstymas = MID(0&B5, LARGE(INDEX(ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5)))),1))* ROW(INDIRECT("$1:$"&LEN(B5))),0), ROW(INDIRECT("$1:$"&LEN(B5))))+1,1))

INDIRECT("$1:$"&LEN(B5))

  • Svetainė INDIREKTINIS funkcija išsaugos eilutės reikšmes kaip nuorodą į masyvą. Skliausteliuose įrašytas ampersandas (& amp;) komanda sujungs ląstelėje rastų simbolių skaičių B5 Tai reiškia, kad nuo 1 iki apibrėžto simbolių skaičiaus kiekvienas iš jų bus saugomas kaip masyvo nuoroda.

ROW(INDIRECT("$1:$"&LEN(B5)))

  • Dabar šis EILUTĖ funkcija iš masyvo ištrauks visus skaičius ir gautas langelio vertes. B5 bus - {1;2;3;4;5;6;7;8;9}.

MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1)

  • Šioje formulės dalyje MID funkcija išreikš visus ląstelės simbolius B5 Pagal visas ankstesniame skyriuje rastas pozicijas kaip skaičius. Taigi, išskirtos reikšmės bus rastos po šios dalies - {"1″; "9″;" "; "D"; "D"; "X"; "2″; "M"; "N"}.

ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1)))

  • Kaip ISNUMBER yra loginė funkcija, ji atskirai nustatys, ar ankstesniame skyriuje rastos reikšmės yra skaičių eilutės, ar ne. Jei taip, ji grąžins kaip TRUE , priešingu atveju jis bus rodomas kaip FALSE .
  • Taigi mūsų atveju rezultatas bus toks: {TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE}.

INDEX(ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1))*ROW(INDIRECT("$1:$"&LEN(B5))),0)

  • Jei pastebėsite, kad pirmiau pateiktos funkcijos viduje yra dvigubas brūkšnys, vadinamas Dvigubas vienanaris Jis naudojamas visoms loginėms reikšmėms konvertuoti į skaičių eilutes. 1(TRUE) arba 0(FALSE) . Dabar INDEKSAS funkcija grąžins šį rezultatą kaip {1;1;0;0;0;0;0;0;1;0;0;0}.
  • Po to gautos vertės bus padaugintos iš verčių, gautų iš EILUTĖ funkciją masyvo viduje ir rezultatas bus toks: {1;2;0;0;0;0;0;0;0;7;0;0;0}.

LARGE(INDEX(ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1))*ROW(INDIRECT("$1:$"&LEN(B5))),0), ROW(INDIRECT("$1:$"&LEN(B5))))

  • Svetainė DIDELIS funkcija dabar pertvarkys didžiausias reikšmes iš masyvo pagal pozicijas, pagrįstas skaičiais, rastais EILUTĖ funkcijos. & mūsų gautos reikšmės šioje formulės dalyje bus tokios: {7;2;1;0;0;0;0;0;0;0;0;0;0;0}.

MID(0&B5, LARGE(INDEX(ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5)))),1))*ROW(INDIRECT("$1:$"&LEN(B5))),0), ROW(INDIRECT("$1:$"&LEN(B5))))+1,1))

  • Dabar ši funkcijos dalis sujungia 0 su ląstelėje esančiais tekstais B5 . Tada bus pridėta 1 atskirai su visais paskutiniame skyriuje nurodytais skaičiais ir parodykite simbolius iš B5 ląstelę pagal apibrėžtas skaičių pozicijas.
  • Taigi šio skyriaus rezultatas bus toks: {"2″; "9″; "1″; "0″; "0″; "0″; "0″; "0″; "0″; "0″; "0″; "0"}.

C dalies suskirstymas = (10^ROW(INDIRECT("$1:$"&LEN(B5)))/10),"")

  • Šioje dalyje bus nustatytos 10 & amp; galios; saugokite jas masyvo viduje. Galybių skaitmenys yra skaičiai, rasti iš EILUTĖ funkcija anksčiau.
  • Ši formulės dalis grąžins tokias reikšmes: {1;10;100;1000;10000;100000;1000000;10000000;100000000}.

B daugyba n ir C n

  • Dabar masyvo viduje bus padaugintos paskutinių dviejų didžiųjų B ir C suskirstymų gautos reikšmės. Tuomet padauginus rastos sandaugos bus - {2;90;100;0;0;0;0;0;0;0;0;0;0}.
  • Ir galiausiai SUMPRODUCT funkcija susumuos šias masyve rastas reikšmes. Taigi galutinis rezultatas bus 192 (2+90+100+0+0+0+0+0+0) , t. y. iš ląstelės išskirtus skaičius B5 .

Skaityti daugiau: Kaip "Excel" programoje atskirti tekstą ir skaičius (4 paprasti būdai)

5. Penkių skaitmenų skaičių išskyrimas iš eilutės

Naudosime kitą formulę, kad iš bet kurios "Excel" eilutės dalies ištrauktume penkiaženklius skaičius. Naudosime CONCAT ir SEKVENCIJA Be to, šiame skirsnyje pirmą kartą šiek tiek pakeitėme šiam metodui skirtą duomenų rinkinį.

Žingsniai:

  • Pirmiausia pasirinkite ląstelių intervalą C5:C12 .
  • Antra, įveskite šią formulę.

=CONCAT(IFERROR(0+MID(B5,SEQUENCE(LEN(B5)),1),"")))

  • Galiausiai paspauskite Ctrl+Enter .

🔎 Formulės suskirstymas

  • LEN(B5)
    • Išeiga: 11 .
    • Ši funkcija grąžina eilutės ilgį.
  • SEKVENCIJA(11)
    • Output: {1;2;3;4;5;6;7;8;9;10;11} .
    • Ši funkcija grąžina pirmuosius vienuolika skaičių.
  • MID(B5,{1;2;3;4;5;6;7;8;9;10;11},1)
    • Išvestis: {"1″; "9″;" "; "D"; "D"; "X"; "2″; "M"; "N"; "3″; "3″} .
    • Naudodami šią dalį iš eilutės gauname atskirus simbolius.
  • 0+{"1″; "9″;" "; "D"; "D"; "X"; "2″; "M"; "N"; "3″; "3″}
    • Išvestis: {1;9;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;2;#VALUE!;#VALUE!;#VALUE!;3;3} .
    • Jei prie eilutės pridėsime nulį, bus grąžinta klaida.
  • IFERROR({1;9;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;2;#VALUE!;#VALUE!;#VALUE!;3;3},"")
    • Išvestis: {1;9;"";"";"";"";""; 2;"";"";""; 3;3} .
    • Gauname tuščias visų klaidų reikšmes.
  • CONCAT({1;9;"";"";"";"";"";"";2;"";"";"";3;3})
    • Išeiga: 19233 .
    • Galiausiai sudedame visas reikšmes, kad gautume tik penkiaženklius skaičius.

6. Naudojant "Flash Fill" išgauti skaičius diapazone

Naudojant . Blykstės užpildymas funkcija yra lengvesnė ir paprastesnė nei bet kuris kitas pirmiau minėtas metodas. Ketiname išgauti skaičius iš bet kurios teksto eilučių pozicijos. Norėdami tinkamai įvykdyti šį metodą, turime padėti "Excel" surasti stulpelio arba eilutės langelio reikšmių šabloną, atlikdami tik pirmųjų dviejų reikšmių išskyrimą.

Žingsniai:

  • Pirmiausia rankiniu būdu įveskite skaičius į ląstelę C5 .

  • Tada pradėkite rinkti skaičius iš ląstelės B6 į ląstelę C6 ir "Excel" automatiškai atpažins šabloną.
  • Galiausiai paspauskite Įveskite .

Pastabos: Šis metodas turi tam tikrų trūkumų, todėl jis nerekomenduojamas visais atvejais, kai reikia iš teksto eilučių išgauti skaičius. Blykstės užpildymas paprastai seka stulpelio arba diapazono ląstelių šabloną. Taigi pirmuosius 2 ar 3 išskyrimus arba skaičiavimus tenka atlikti rankiniu būdu, kad "Excel" įsisavintų bendrą gautų reikšmių šabloną. Tačiau kartais jis neseka tiksliai pagal mums reikalingą šabloną, todėl seka savo šabloną ir pateikia nesuderintą rezultatą.

Pavyzdžiui, jei iš pateiktų duomenų norėtume išskirti du nulius (00), būtų rodomas tik vienas nulis, o ne du. Tada, jei norėtumėte išskirti skaičius iš ląstelės pradžios arba paskutinės pozicijos, kartu su skaičiais būtų išskirtos ir teksto reikšmės.

Skaityti daugiau: Kaip "Excel" programoje ištraukti skaičius po tam tikro teksto (2 tinkami būdai)

7. VBA kodo taikymas, norint iš "Excel" ląstelės išgauti tik skaičius

Jei norite naudoti "Excel" VBA makrokomandos iš langelių išgauti tik skaičius, tuomet norėtumėte atlikti toliau nurodytus veiksmus. Parodysime, kaip įvesti kodą į VBA modulis Šis kodas paprašys naudotojo nurodyti įvesties ir išvesties ląstelių intervalus.

Žingsniai:

  • Pirma, paspauskite ALT+F11 atidaryti VBA langas.
  • Tada iš Įdėkite skirtuką, pasirinkite Modulis komanda. Atsivers naujas modulio langas, kuriame įvesite kodus.

  • Trečia, modulio viduje nukopijavę įklijuokite šiuos kodus.
 Option Explicit Sub ExtractNumbersOnly() Dim CellValue As Range Dim InBx1 As Range Dim InBx2 As Range Dim NumChar As Integer Dim StartChar As Integer Dim XtrNum As String Dim DBxName1 As String Dim DBxName2 As String Dim Iteration As Integer DBxName1 = "Įvesties duomenų pasirinkimas" DBxName2 = "Išvesties ląstelių pasirinkimas" Set InBx1 = Application.InputBox("Teksto ląstelių įvesties diapazonas:", _ DBxName1, "", Type:=8)Jei TypeName(InBx1) = "Nieko" Tada Exit Sub Set InBx2 = Application.InputBox("Select Output Cells:", _ DBxName2, "", Type:=8) Jei TypeName(InBx2) = "Nieko" Tada Exit Sub Iteration = 0 XtrNum = "" For Each CellValue In In InBx1 Iteration = Iteration + 1 NumChar = Len(CellValue) For StartChar = 1 To NumChar If IsNumeric(Mid(CellValue, StartChar, 1)) Then XtrNum = XtrNum & Mid(CellValue,StartChar, 1) End If Next StartChar InBx2.Item(Iteration) = XtrNum XtrNum = "" Next CellValue End Sub 

  • Po to paspauskite F5 įvykdyti kodą. Pasirodo dialogo langas pavadinimu " Įvesties duomenų pasirinkimas ".
  • Tada pasirinkite visus teksto langelius (t. y. B5:B12 ) ir paspauskite GERAI .

  • Po to bus rodomas kitas dialogo langas, pavadintas " Išėjimo ląstelės pasirinkimas ", kur turėsite pasirinkti konkrečią ląstelę arba ląstelių intervalą, kad pamatytumėte išvesties duomenis arba reikšmes.
  • Galiausiai pasirinkite ląstelių intervalą C5:C12 ir paspauskite Įveskite .

  • Vadinasi, iš tekstų išskirtus skaičius pamatysite iš karto. Taigi, baigsime septynis greitus metodus, kaip išgauti skaičius tik iš "Excel" ląstelės.

🔎 VBA kodo suskirstymas

Parametrų deklaravimas

 Option Explicit Sub ExtractNumbersOnly() Dim cellValue As Range Dim InBx1 As Range Dim InBx2 As Range Dim NumChar As Integer Dim StartChar As Integer Dim XtrNum As String Dim DBxName1 As String Dim DBxName2 As String Dim Iteration As Integer DBxName1 = "Įvesties duomenų atranka" DBxName2 = "Išvesties ląstelių atranka" 
  • Šioje dalyje iš pradžių deklaruojame visus savo parametrus kaip sveikuosius skaičius, eilučių reikšmes arba ląstelių intervalus. Tada dialogo langams suteikiame pavadinimus su "Įvesties duomenų pasirinkimas" ir "Išvesties ląstelės pasirinkimas" .

Dialogo langelių įvesties ir išvesties tipų apibrėžimas

 Set InBx1 = Application.InputBox("Teksto ląstelių įvesties diapazonas:", _ DBxName1, "", Type:=8) If TypeName(InBx1) = "Nothing" Then Exit Sub Set InBx2 = Application.InputBox("Select Output Cells:", _ DBxName2, "", Type:=8) If TypeName(InBx2) = "Nothing" Then Exit Sub Iteration = 0 XtrNum = "" 
  • Dabar apibrėžiame dialogo langelių parametrus ir jų tipus. Čia pridėjus Type:=8 reiškia, kad įvesties ir išvesties duomenis sudarys atskaitos langelių arba langelių intervalas.
  • Taip pat apibrėžiame, kad jei nerandama įvesties duomenų, paprogramė sustos. Paminėjus šį makrokomandą, paprogramė nesutriks dėl trūkstamų duomenų, o nustos veikti.

Kodo viduje esančių funkcijų derinimas, kai atliekamos iteracijos

 For Each cellValue In InBx1 Iteration = Iteration + 1 NumChar = Len(cellValue) For StartChar = 1 To NumChar If IsNumeric(Mid(cellValue, StartChar, 1)) Then XtrNum = XtrNum & Mid(cellValue, StartChar, 1) End If Next StartChar InBx2.Item(Iteration) = XtrNum XtrNum = "" Next cellValue End Sub 
  • Galiausiai tai yra svarbiausia dalis, kurioje taikome funkcijas arba formules, kurias turime priskirti tekstams, kad iš eilučių rastume gautas reikšmes.
  • Vienas iš pagrindinių "Excel" funkcijos kodavimo privalumų yra tas, kad nereikia įvesti didelės formulės, kaip tai reikėjo daryti ankstesniais metodais, nes VBA turi integruotas komandas naudoti For arba While ciklus, kuriuose be vargo galima atlikti kiekvienos teksto eilutės detalės iteraciją.

Skaityti daugiau: Kaip atskirti skaičius nuo teksto "Excel VBA" programoje (3 metodai)

Išvada

Mes parodėme jums 7 paprastus metodus, kaip išgauti tik skaičius iš "Excel" ląstelės. Iš teksto eilutės išgauti tik skaičius nėra taip paprasta, kaip atrodo, nes tam reikia derinti kelias funkcijas, todėl galutinė formulė arba sintaksė yra sudėtinga. Tačiau tikimės, kad tai, kaip stengėmės iliustruoti formules išskaidydami vidines funkcijas, padėjo jums šiek tiek patogiau ir lengviau suprasti sintaksę.

Jei radote kitų funkcijų ar formulių, kurias turėjome čia įtraukti, praneškite mums apie tai savo vertingais komentarais. Arba galite peržvelgti daugiau informatyvių ir įdomių straipsnių, susijusių su "Excel" funkcijomis šioje svetainėje.

Hugh Westas yra labai patyręs Excel treneris ir analitikas, turintis daugiau nei 10 metų patirtį šioje srityje. Jis yra įgijęs apskaitos ir finansų bakalauro bei verslo administravimo magistro laipsnius. Hugh turi aistrą mokymui ir sukūrė unikalų mokymo metodą, kurį lengva sekti ir suprasti. Jo ekspertinės žinios apie „Excel“ padėjo tūkstančiams studentų ir specialistų visame pasaulyje tobulinti savo įgūdžius ir tobulėti savo karjeroje. Savo tinklaraštyje Hugh dalijasi savo žiniomis su pasauliu, siūlydamas nemokamus „Excel“ vadovėlius ir internetinius mokymus, kad padėtų asmenims ir įmonėms išnaudoti visą savo potencialą.