Kako izvleči samo številke iz Excelove celice (7 preprostih načinov)

  • Deliti To
Hugh West

Čeprav Microsoft ni zagotovil neposredne formule ali sintakse za izpisati samo številke. iz celice programa Excel, lahko vključimo širok nabor Excelove formule da bi naredili eno samo funkcijo, ki jo lahko uporabimo za pridobivanje samo številk ali števk iz celic programa Excel. V tem članku bomo poskušali prikazati in podrobno razložiti, kako lahko iz celic z ustreznimi formulami po nekaj merilih izvlečemo samo številke.

Prenesi delovni zvezek za prakso

Brezplačno prenesite vadnico, ki smo jo uporabili za pripravo tega članka. V izbrane celice lahko vnesete besedilne vrednosti s številkami in takoj poiščete rezultate z vgrajenimi formulami.

Izvleček številk iz celice.xlsm

7 učinkovitih načinov za izvleček samo številk iz Excelove celice

Na voljo bo ena koda VBA, ena funkcija programa Excel in pet praktičnih formul, ki vam bodo pomagale izločiti številke iz celice. Kot na spodnji sliki imamo nekaj kod, ki vključujejo številke in črke, kjer so številke prisotne na začetku. Izločiti moramo samo te številke ali številke.

1. Izvlečenje številk z začetka besedila

V tej prvi metodi bomo združili LEVA , SUM , LEN in SUBSTITUTE funkcije, s katero lahko izvlečemo številke z začetka besedilnega niza. Najprej bomo v celico vnesli to formulo, nato pa z uporabo ročaj za polnjenje , bomo to formulo kopirali v preostale celice.

Koraki:

  • Najprej v celico vnesite formulo C5 .

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

  • Drugič, pritisnite Vnesite in dobili boste številko 34 za prvo kodo.

  • Tretjič, uporabite Ročaj za polnjenje nato za samodejno izpolnjevanje vseh drugih celic v stolpcu C .

🔎 Razčlenitev formule

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

  • Tu je SUBSTITUTE bo poiskala zaporedne številke (0-9), in če jih bo našla, bo to številko nadomestila v celici B5 Funkcija se bo torej vrnila kot {"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″},""))

  • Spletna stran LEN določa število znakov v nizu. LEN funkcija bo preštela vse znake, ki jih posamezno najdemo v besedilih prek SUBSTITUTE Funkcija. V našem primeru bodo dobljene vrednosti {7,7,7,7,6,6,7,7,7,7,7,7,7,7}.

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

  • Ta del je odštevanje od števila znakov v celici B5 vsem ostalim številom znakov, ki so bili posamično ugotovljeni v prejšnjem razdelku formule. Tako bodo tukaj dobljene vrednosti - {0,0,0,0,1,1,0,0,0,0,0,0,0,0}.

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

  • Spletna stran SUM funkcija bo nato preprosto seštela vse odštete vrednosti, ki jih je našla & tako bo rezultat tukaj, 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″},""))))

  • In zdaj je tu še zadnji del, v katerem LEVA funkcija bo vrnila vrednosti s točno določenim številom znakov z leve strani, ki smo jih našli v prejšnjem delu formule. Ker smo dobili vrednost vsote 2, funkcija LEVA funkcija tukaj bo vrnila samo 34 iz besedila 34DTXRF .

Sorodni prispevki: - Vključevanje v sistem za upravljanje z nepremičninami: Kako ločiti številke v Excelu z uporabo formule (5 načinov)

2. Pridobivanje številk z desne strani besedila

V tem razdelku bomo iz desne strani besedilnega niza izločili številke ali števke. Uporabili bomo ukaz PRVA STRAN , MIN in ISKANJE funkcije tukaj.

Koraki:

  • Za začetek moramo v našem naboru podatkov v celico C5 je-

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

  • Nato pritisnite Vnesite in nato uporabite Ročaj za polnjenje za samodejno izpolnjevanje preostalih celic.

🔎 Razčlenitev formule

B5& "0123456789″

  • V tem primeru združujemo vrednosti v B5 celica z 0123456789 z uporabo ampersand (&) med njima in dobili bomo rezultatno vrednost DTXRF340123456789.

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

  • Zdaj je ISKANJE funkcija bo poiskala vse števke (0-9) eno za drugo v rezultatni vrednosti, dobljeni v prejšnjem razdelku, in vrnila položaje teh 10 števk v znakih DTXRF340123456789 Tako bodo naše rezultatne vrednosti naslednje: {8,9,10,6,7,13,14,15,16,17}.

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

  • Spletna stran MIN funkcija se uporablja za iskanje najnižje številke ali števila v polju. V tem primeru bo najmanjša ali najnižja vrednost- 6 iz polja {8,9,10,6,7,13,14,15,16,17} iz prejšnjega dela formule.

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

  • Število znakov v B5 bo poiskal LEN Nato bo odštela vrednost 6 (ugotovljeno v zadnjem razdelku) in vrnila rezultat s prištetjem 1. V našem primeru bo rezultatna vrednost 2 (7-6+1) .

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

  • Spletna stran PRVA STRAN funkcija vrne določeno število znakov z zadnje ali desne strani niza. Po rezultatu, ugotovljenem s postopkom odštevanja v prejšnjem razdelku, je tukaj funkcija PRVA STRAN bo prikazala zadnja 2 znaka iz celice B5 in to bo 34 .

Preberite več: Kako ločiti številke v eni celici v Excelu (5 metod)

3. Izločanje številk iz katerega koli dela besedilnega niza

Zdaj je tu široka rešitev za vse primere. Ta metoda bo izvlekla številke ali števke s katerega koli mesta v besedilnem nizu. Poleg tega bomo uporabili TEXTJOIN , IFERROR , INDIREKTNO , MID in . ROW funkcije v tej metodi.

Koraki:

  • Najprej v ciljno celico vnesite naslednjo formulo.

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

  • Če uporabljate Excel 2016 ali novejšo različico, nato pritisnite Vnesite , v nasprotnem primeru pritisnite Ctrl+Shift+Enter da bi dobili rezultat za to formulo polja.
  • Po tem koraku samodejno izpolnite druge celice z uporabo Ročaj za polnjenje in končali ste.

🔎 Razčlenitev formule

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

  • Spletna stran INDIREKTNO se uporablja za shranjevanje polja vrednosti celic kot referenčnega besedila. V tem primeru je ampersand (& amp;) poveže dolžino znakov celice B5 z nepopolno sintakso obsega (1:) .
  • Torej, tukaj je INDIREKTNO bo v celico shranila vsa števila med 1 in dolžino znakov. B5 kot referenčno besedilo.

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

  • Spletna stran ROW funkcija običajno pove številko vrstice celice. INDIREKTNO funkcijo, saj ni bila omenjena nobena referenčna celica, v tem primeru ROW funkcija bo iz referenčnih besedil, shranjenih v INDIREKTNO funkcijo.
  • Zdaj za prvo celico B5 , rezultatne vrednosti s pomočjo teh ROW in . INDIREKTNO funkcije bodo- {1;2;3;4;5;6;7;8;9}.

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

  • Spletna stran MID funkcija omogoča določitev znakov iz sredine besedilnega niza, če je podan začetni položaj & dolžina.
  • Za vseh 9 položajev iz prejšnjega poglavja je torej MID funkcija bo zdaj prikazala vse znake enega za drugim za vsak položaj & tako bo vrnila vrednosti kot - {"1″; "9″;" "; "D"; "D"; "X"; "2″; "M"; "N"}.

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

  • Zdaj je IFERROR je logična funkcija, ki določi, ali je niz številka ali kaj drugega. Če ne prepozna niza s številkami ali števkami, vrne vrednost z določenim besedilnim ukazom.
  • V našem primeru bodo vse vrednosti, najdene v zadnjem razdelku, pomnožene z 1, in ko bodo rezultati vrnjeni kot napake vrednosti za črke ali besedilne vrednosti, ki jih ni mogoče pomnožiti, bodo njihove IFERROR Funkcija bo napake pretvorila v prazne nize, zato bodo naše vrednosti {1;9;"";"";"";"";"";"";2;"";""}.

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

  • Zdaj se bo zadnji del izvedel prek TEXTJOIN Ta funkcija se uporablja za povezovanje ali združevanje dveh nizov z določenim ločilom.
  • Rezultatske vrednosti, ki smo jih našli v prejšnjem razdelku, bomo zdaj združili skupaj s tem TEXTJOIN in tako dobimo število 192.

Preberite več: Kako izvleči več številk iz niza v Excelu (6 metod)

4. Gnezdenje več funkcij za prikaz samo številk

Zdaj vam bomo pokazali še eno formulo, s katero lahko iz celice programa Excel izvlečemo samo številke s poljubnega položaja. Čeprav se morda zdi precej zapletena, bomo celotno formulo razčlenili in poskušali zlahka razložiti vse kompaktne funkcije. Poleg tega bomo uporabili funkcijo IF , VEČJI , INDEX , SUMPRODUCT in ISNUMBER funkcije v tej formuli.

  • Za začetek v celico vnesite to formulo C5 . Zamenjati morate le sklic na celico na podlagi svoje celice v preglednici, nato pa boste z vstavitvijo te formule takoj dobili pričakovani rezultat. In ta formula odlično deluje v kateri koli različici programa Excel.

=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),"")

  • Nato morate pritisniti Vnesite šele po vnosu celotne formule in končali ste.

🔎 Razčlenitev formule

Preden začnemo z razčlenitvijo te masivne & amp; kompaktne formule, jo lahko razdelimo na nekaj delov, kot so-

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

Ta sintaksa pomeni, da če A je večja od 0, potem so vsi zmnožki B n in . C n seštejejo do končnega rezultata. In če A ni večja od 0, se rezultat vrne kot prazna ali prazna celica.

  • 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),""

Razčlenitev dela A = 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"}, "")

  • Spletna stran SUBSTITUTE funkcija bo v besedilu po vrsti poiskala vse števke (0-9). 19 DDX2MN in te števke vsakič nadomesti s praznim nizom na mestih števk.
  • Tako bodo dobljene vrednosti v polju naslednje: {"19 DDX2MN", "9 DDX2MN", "19 DDXMN", "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"}, ""))

  • Spletna stran LEN Funkcija bo zdaj štela število znakov v vseh vrednostih nizov, pridobljenih v prejšnjem razdelku. Tako bo funkcija vrnila {9,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"}, ""))

  • V tem delu formule je število znakov v celici B5 odštejemo vsa števila, ki smo jih našli v prejšnjem razdelku. Dobljene vrednosti so nato {0,1,1,1,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"}, "")))

  • S pomočjo SUM bodo vrednosti v polju, ki smo ga našli v zadnjem razdelku, skupaj znašale 3 (0+1+1+1+0+0+0+0+0+0+0+1).
  • V skladu s prvim delom naše formule, A>0 (3>0) . Zdaj bomo prešli na naslednji del razčlenitve.

Razčlenitev dela 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)

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

  • Spletna stran INDIREKTNO funkcija tukaj bo shranila vrednosti nizov kot referenco na polje. Znotraj oklepaja je ampersand (& amp;) se bo pridružil številu znakov v celici B5 s sintakso Range of cells. To pomeni, da bo od 1 do števila opredeljenih znakov vsak shranjen kot referenca na polje.

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

  • Zdaj je to ROW bo iz polja izvlekla vse številke in dobljene vrednosti za celico B5 bo- {1;2;3;4;5;6;7;8;9}.

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

  • V tem delu formule je MID bo izrazila vse znake iz celice B5 na podlagi vseh položajev, ki so bili najdeni kot številke v prejšnjem razdelku. Tako bodo izločene vrednosti najdene po tem delu - {"1″; "9″;" "; "D"; "D"; "X"; "2″; "M"; "N"}.

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

  • Kot ISNUMBER je logična funkcija, ki bo posamično določila, ali so vrednosti, najdene v prejšnjem razdelku, številski nizi ali ne. Če je odgovor pritrdilen, bo funkcija vrnila kot TRUE , v nasprotnem primeru bo prikazano kot FALSE .
  • Tako bo v našem primeru rezultat - {TRUE;TRUE;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)

  • Če opazite, da je v zgornji funkciji dvojno črkovno znamenje, znano kot Dvojni enočlenski Uporablja se za pretvorbo vseh logičnih vrednosti v številske nize. 1(TRUE) ali 0(FALSE) . Zdaj je INDEX funkcija bo vrnila ta rezultat kot {1;1;0;0;0;0;0;0;1;0;0}.
  • Nato se dobljene vrednosti pomnožijo z vrednostmi, pridobljenimi iz ROW funkcijo znotraj polja in rezultat bo - {1;2;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))))

  • Spletna stran VEČJI bo zdaj prestavila največje vrednosti iz polja glede na položaje, ki temeljijo na številkah, najdenih v polju ROW funkcije. & naše rezultatne vrednosti za ta del formule bodo {7;2;1;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)

  • Ta del funkcije bo združil 0 z besedili v celici B5 . Nato bo dodal 1 posamično z vsemi številkami iz zadnjega poglavja in prikažite znake iz B5 celice na podlagi opredeljenih številčnih položajev.
  • Rezultat tega oddelka bo torej {"2″; "9″; "1″; "0″; "0″; "0″; "0″; "0″; "0″; "0″; "0"}.

Razčlenitev dela C = (10^ROW(INDIRECT("$1:$"&LEN(B5)))/10),"")

  • V tem delu boste določili moči 10 & amp; shranite jih v polju. Številke moči so števila, ugotovljena iz ROW funkcijo prej.
  • Ta del formule bo vrnil vrednosti kot {1;10;100;1000;10000;100000;1000000;10000000;100000000}.

Množenje B n in C n

  • Sedaj bomo znotraj matrike pomnožili rezultatne vrednosti zadnjih dveh večjih razčlenitev B in C. Nato bodo zmnožki, dobljeni z množenjem, naslednji: {2;90;100;0;0;0;0;0;0;0;0;0;0}.
  • In končno, SUMPRODUCT funkcija bo seštela vrednosti, ki jih je našla v polju. Tako bo naš končni rezultat 192 (2+90+100+0+0+0+0+0+0) , ki je izvlečeno število iz celice B5 .

Preberite več: Kako ločiti besedilo in številke v programu Excel (4 preprosti načini)

5. Pridobivanje petmestnih številk iz niza

Uporabili bomo drugo formulo za izpis petmestnih števil iz katerega koli dela niza v programu Excel. uporabili bomo formulo CONCAT in . SEQUENCE Poleg tega smo za to metodo nekoliko spremenili nabor podatkov.

Koraki:

  • Najprej izberite območje celic C5:C12 .
  • Nato vnesite naslednjo formulo.

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

  • Na koncu pritisnite Ctrl+Enter .

🔎 Razčlenitev formule

  • LEN(B5)
    • Izhod: 11 .
    • Ta funkcija vrne dolžino niza.
  • SEQUENCE(11)
    • Output: {1;2;3;4;5;6;7;8;9;10;11} .
    • Ta funkcija vrne prvih enajst številk.
  • MID(B5,{1;2;3;4;5;6;7;8;9;10;11},1)
    • Izhod: {"1″; "9″;" "; "D"; "D"; "X"; "2″; "M"; "N"; "3″; "3″} .
    • S tem delom pridobimo posamezne znake iz niza.
  • 0+{"1″; "9″;" "; "D"; "D"; "X"; "2″; "M"; "N"; "3″; "3″}
    • Izhod: {1;9;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;2;#VALUE!;#VALUE!;#VALUE!;3;3} .
    • Če z nizom dodamo ničlo, se vrne napaka.
  • IFERROR({1;9;#VREDNOST!;#VREDNOST!;#VREDNOST!;#VREDNOST!;#VREDNOST!;2;#VREDNOST!;#VREDNOST!;#VREDNOST!;3;3},"")
    • Izhod: {1;9;"";"";"";"";"";2;"";"";"";3;3} .
    • Vse vrednosti napak so prazne.
  • CONCAT({1;9;"";"";"";"";"";2;"";"";"";3;3})
    • Izhod: 19233 .
    • Na koncu seštejemo vse vrednosti, da dobimo samo petmestna števila.

6. Uporaba bliskovitega zapolnjevanja za izvleček številk znotraj razpona

Uporaba spletne strani . Izpolnitev z bliskavico funkcija je lažja in preprostejša od katere koli druge zgoraj omenjene metode. Številke bomo izvlekli s katerega koli mesta v besedilnih nizih. Za pravilno izvedbo te metode moramo Excelu pomagati najti vzorec vrednosti celic v stolpcu ali vrstici tako, da izvedemo izvlek samo za prvi dve vrednosti.

Koraki:

  • Najprej ročno vnesite številke v celico C5 .

  • Nato začnite vnašati številke iz celice B6 v celico C6 in Excel bo samodejno prepoznal vzorec.
  • Na koncu pritisnite Vnesite .

Opombe: Ta metoda ima nekaj pomanjkljivosti, zato ni priporočljiva za vse primere, ko je treba iz besedilnih nizov izluščiti številke. Izpolnitev z bliskavico običajno sledi vzorcu iz celic v stolpcu ali območju. Zato je treba prva 2 ali 3 izvlečke ali izračune opraviti ročno, da Excel absorbira skupni vzorec dobljenih vrednosti. Toda včasih ne sledi točno tistemu vzorcu, ki ga potrebujemo, in s tem sledi svojemu vzorcu ter vam da neusklajen rezultat.

Če bi na primer iz danih podatkov morali izluščiti dve ničli (00), bi prikazal samo eno ničlo in ne dveh. Če želite izluščiti številke z začetka ali zadnjega mesta v celici, bo poleg številk izluščil tudi vrednosti besedila.

Preberite več: Kako izvleči številke po določenem besedilu v Excelu (2 primerna načina)

7. Uporaba kode VBA za izvleček samo številk iz Excelove celice

Če želite uporabljati Excel VBA Makro iz celic izpisati samo številke, potem sledite spodnjim korakom. Pokazali vam bomo, kako vnesti kodo v Modul VBA Ta koda bo od uporabnika zahtevala, da določi območja vhodnih in izhodnih celic.

Koraki:

  • Najprej pritisnite ALT+F11 da odprete VBA okno.
  • Nato iz Vstavite izberite zavihek Modul Prikazalo se bo novo okno modula, v katerega boste vnesli kode.

  • Tretjič, znotraj modula prilepite naslednje kode po kopiranju.
 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 = "Izbor vhodnih podatkov" DBxName2 = "Izbor izhodnih celic" Set InBx1 = Application.InputBox("Input Range of Text Cells:", _ 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 = "" 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 

  • Nato pritisnite F5 za izvedbo kode. Pojavlja se pogovorno okno z imenom " Izbira vhodnih podatkov " se prikaže.
  • Nato izberite vse besedilne celice (tj. B5: B12 ) in pritisnite V REDU .

  • Nato se odpre drugo pogovorno okno z imenom " Izbira izhodne celice ", kjer morate izbrati določeno celico ali razpon celic, da si ogledate izhodne podatke ali vrednosti.
  • Na koncu izberite območje celic C5:C12 in pritisnite Vnesite .

  • Posledično boste iz besedil naenkrat videli izvlečene številke. Tako bomo končali sedem hitrih metod za izvleček številk samo iz Excelove celice.

🔎 Razčlenitev kode VBA

Deklaracija parametrov

 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 = "Izbor vhodnih podatkov" DBxName2 = "Izbor izhodnih celic" 
  • V tem delu najprej prijavimo vse naše parametre kot cela števila, vrednosti nizov ali območja celic. Nato podamo imena naših pogovornih oken z "Izbira vhodnih podatkov" in . "Izbira izhodne celice" .

Opredelitev vrst vhodov in izhodov za dialoška polja

 Set InBx1 = Application.InputBox("Vhodni obseg besedilnih celic:", _ 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 = "" 
  • Zdaj določimo parametre in njihove vrste za pogovorna okna. Če dodamo Type:=8, to pomeni, da bodo vhodni in izhodni podatki sestavljeni iz referenčnih celic ali območja celic.
  • Opredelili smo tudi, da se bo podprogram ustavil, če vhodnih podatkov ne bo našel. Z navedbo tega makra se podprogram ne bo prekinil zaradi manjkajočih podatkov, temveč bo prenehal delovati.

Združevanje funkcij znotraj kode zanke za iteracije

 Za vsako vrednost celice InBx1 Iteration = Iteration + 1 NumChar = Len(vrednost celice) For StartChar = 1 To NumChar If IsNumeric(Mid(vrednost celice, StartChar, 1)) Then XtrNum = XtrNum & Mid(vrednost celice, StartChar, 1) End If Next StartChar InBx2.Item(Iteration) = XtrNum XtrNum = "" Next cellValue End Sub 
  • Nazadnje je to najpomembnejši del, v katerem uporabljamo funkcije ali formule, ki jih moramo pripisati besedilom, da bi iz nizov poiskali rezultatne vrednosti.
  • Ena od glavnih prednosti kodiranja funkcije za Excel je, da ni treba vnesti velike formule, kot smo to morali storiti v prejšnjih metodah, saj ima VBA vgrajene ukaze za uporabo zank For ali While, kjer je mogoče brez težav izvesti ponavljanje za vsako podrobnost v besedilnem nizu.

Preberite več: Kako ločiti številke od besedila v programu Excel VBA (3 metode)

Zaključek

Pokazali smo vam 7 preprostih načinov za izpisati samo številke. iz celice programa Excel. Izvleček samo številk iz besedilnega niza ni tako preprost, kot se zdi, saj zahteva kombinacijo več funkcij, zaradi česar je končna formula ali sintaksa zapletena. Upamo pa, da vam je način, kako smo poskušali ponazoriti formule z razčlenitvijo notranjih funkcij, pomagal pri udobnejšem in lažjem razumevanju sintakse.

Če najdete še kakšne druge funkcije ali formule, ki bi jih morali dodati, nam to sporočite s svojimi dragocenimi komentarji. Lahko pa si ogledate tudi naše bolj informativne in zanimive članke, povezane z Excelovimi funkcijami na tej spletni strani.

Hugh West je zelo izkušen trener Excela in analitik z več kot 10-letnimi izkušnjami v industriji. Po izobrazbi je diplomirani računovodstvo in finance ter magisterij poslovne administracije. Hugh ima strast do poučevanja in je razvil edinstven pristop k poučevanju, ki ga je enostavno slediti in razumeti. Njegovo strokovno znanje o Excelu je pomagalo na tisoče študentom in strokovnjakom po vsem svetu, da so izboljšali svoje sposobnosti in se izkazali v karieri. Prek svojega bloga Hugh deli svoje znanje s svetom, ponuja brezplačne vadnice za Excel in spletno usposabljanje, ki posameznikom in podjetjem pomaga doseči njihov polni potencial.