Satura rādītājs
Lai gan Microsoft nav nodrošinājis tiešu formulu vai sintaksi, lai izvilkt tikai skaitļus no Excel šūnas, mēs varam iekļaut plašu Excel formulas lai izveidotu vienu funkciju, ko var izmantot tikai skaitļu vai ciparu iegūšanai no Excel šūnām. Šajā rakstā mēs mēģināsim parādīt un detalizēti izskaidrot, kā mēs varam izvilkt tikai skaitļus no šūnām, izmantojot atbilstošas formulas saskaņā ar dažiem kritērijiem.
Lejupielādēt Practice Workbook
Lejupielādējiet prakses grāmatu bez maksas, ko izmantojām, lai sagatavotu šo rakstu. Atlasītajās šūnās varat ievadīt teksta vērtības ar skaitļiem un nekavējoties atrast rezultātus, izmantojot iestrādātās formulas.
Skaitļu iegūšana no Cell.xlsm
7 efektīvi veidi, kā no Excel šūnas iegūt tikai skaitļus
Būs viens VBA kods, viena Excel funkcija un piecas praktiskas formulas, kas palīdzēs jums iegūt skaitļus no šūnas. Tāpat kā attēlā zemāk, mums ir daži kodi, kas ietver ciparus un burtus, kur sākumā ir cipari. Mums ir jāizdala tikai šie cipari vai cipari.
1. Skaitļu izņemšana no teksta sākuma
Šajā pirmajā metodē mēs apvienosim LEFT , SUM , LEN , un SUBSTITŪTS funkcijas, lai izvilktu skaitļus no teksta virknes sākuma. Vispirms mēs ievadīsim šo formulu šūnā un pēc tam, izmantojot aizpildīšanas rokturis šo formulu kopēsim uz pārējām šūnām.
Soļi:
- Vispirms ievadiet formulu šūnā C5 .
=LEFT(B5,SUM(LEN(B5)-LEN(SUBSTITUTE(B5,{"0","1","2","3","4","5","6","7","8","9"},""))))
- Otrkārt, nospiediet Ievadiet un kā pirmo kodu saņemsiet skaitli 34.
- Treškārt, izmantojiet Uzpildes rokturis tad, lai automātiski aizpildītu visas pārējās kolonnas šūnas C .
🔎 Formulas sadalījums
➤ AIZVIETOT(B5,{"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9″},"")
- Šajā gadījumā SUBSTITŪTS funkcija secīgi atradīs ciparus (0-9) un, ja tos atradīs, aizstās šo ciparu šūnā. B5 Katru reizi ar tukšu rakstzīmi. Tādējādi funkcija atgriezīs {"34DTXRF", "34DTXRF", "34DTXRF", "34DTXRF", "4DTXRF", "3DTXRF", "34DTXRF", "34DTXRF", "34DTXRF", "34DTXRF", "34DTXRF"}.
➤ LEN(SUBSTITUTE(B5,{"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9″},"")))
- Portāls LEN funkcija nosaka rakstzīmju skaitu rindā. Tātad šajā gadījumā LEN funkcija saskaitīs visas rakstzīmes, kas individuāli atrodamas tekstos, izmantojot SUBSTITŪTS Mūsu gadījumā iegūtās vērtības būs {7,7,7,7,6,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″},""))))
- Tagad šī daļa ir atņemšana no rakstzīmju skaita šūnā B5 visiem pārējiem rakstzīmju skaitļiem, kas atsevišķi atrasti iepriekšējā formulas sadaļā. Tātad šeit iegūtās vērtības būs - {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″},"")))))
- Portāls SUM funkcija pēc tam vienkārši saskaitīs visas atņemtās vērtības, kas atrastas & amp; tāpēc rezultāts būs šeit, 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″},""))))
- Un tagad šeit ir pēdējā daļa, kur LEFT funkcija atgriezīs vērtības ar precīzu rakstzīmju skaitu no kreisās puses, kas atrasts iepriekšējā formulas sadaļā. Tā kā mēs saņēmām summas vērtību 2, funkcija LEFT funkcija šeit atgriezīs tikai 34 no teksta 34DTXRF .
➥ Saistītās: Kā atdalīt skaitļus programmā Excel, izmantojot formulu (5 veidi)
2. Skaitļu iegūšana no teksta labās puses
Šajā sadaļā mēs izvilksim skaitļus vai ciparus no teksta virknes labās puses. Mēs izmantosim funkciju PRĀVAIS , MIN , un MEKLĒT funkcijas šeit.
Soļi:
- Vispirms mūsu datu kopā, kas mums ir jāievada šūnā C5 ir-
=RIGHT(B5,LEN(B5) - MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, B5& "0123456789") +1))
- Pēc tam nospiediet Ievadiet un pēc tam izmantojiet Uzpildes rokturis lai automātiski aizpildītu pārējās šūnas.
🔎 Formulas sadalījums
➤ B5& "0123456789″
- Šajā gadījumā mēs apvienojam vērtības, kas atrodas elementā B5 šūna ar 0123456789 izmantojot ampersands (&) starp tām, un mēs iegūsim iegūto vērtību DTXRF340123456789.
➤ SEARCH({0,1,2,3,4,5,6,7,8,9}, B5&”0123456789″)
- Tagad MEKLĒT funkcija meklēs visus ciparus (0-9) vienu pēc otra iepriekšējā iedaļā iegūtajā rezultāta vērtībā un atgriezīs šo 10 ciparu pozīcijas rakstzīmēs no DTXRF340123456789 Tātad šeit mūsu iegūtās vērtības būs šādas - {8,9,10,10,6,7,13,14,15,16,17}.
➤ MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, B5&”0123456789″))
- Portāls MIN funkciju izmanto, lai atrastu mazāko ciparu vai skaitli masīvā. Tātad šeit minimālā vai mazākā vērtība būs- 6 no masīva {8,9,10,6,7,13,14,15,16,17}, kas atrodas formulas iepriekšējā sadaļā.
➤ LEN(B5) - MIN(SEARCH({0,1,1,2,3,4,5,6,7,8,9}, B5& "0123456789″) +1))
- Tagad rakstzīmju skaits B5 tiks atrasts ar LEN Pēc tam tā atņems vērtību 6 (kas atrasta iepriekšējā sadaļā) un tad atgriezīs rezultātu, pieskaitot 1. Mūsu gadījumā iegūtā vērtība būs 2 (7-6+1) .
➤ RIGHT(B5,LEN(B5) - MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, B5& "0123456789″)) +1)
- Portāls PRĀVAIS funkcija atgriezīs norādīto rakstzīmju skaitu no virknes pēdējās vai labās puses. Pēc iepriekšējā sadaļā aprakstītā atņemšanas procesa rezultātā iegūtā rezultāta, šeit funkcija PRĀVAIS funkcija parādīs pēdējās 2 šūnas pēdējās 2 rakstzīmes B5 , un tas būs 34 .
Lasīt vairāk: Kā atdalīt skaitļus vienā Excel šūnā (5 metodes)
3. Skaitļu iegūšana no jebkuras teksta virknes daļas
Tagad šeit ir plašs risinājums visiem gadījumiem. Šī metode izvilks skaitļus vai ciparus no jebkuras pozīcijas teksta virknē. Turklāt mēs izmantosim TEXTJOIN , IFERROR , INDIRECT , MID un ROW funkcijas šajā metodē.
Soļi:
- Vispirms ierakstiet mērķa šūnā šādu formulu.
=TEXTJOIN("",TRUE,IFERROR((MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)*1),""))))
- Tad, ja izmantojat Excel 2016 vai jaunāku versiju, pēc tam nospiediet Ievadiet , pretējā gadījumā nospiediet Ctrl+Shift+Enter lai iegūtu šīs masīva formulas rezultātu.
- Pēc šī soļa automātiski aizpildiet citas šūnas, izmantojot Uzpildes rokturis un viss ir paveikts.
🔎 Formulas sadalījums
➤ INDIRECT("1:"&LEN(B5))
- Portāls INDIRECT funkciju izmanto, lai šūnu vērtību masīvu saglabātu kā atsauces tekstu. Šajā gadījumā ampersandu (& amp;) komanda savieno šūnas rakstzīmju garumu B5 ar nepilnīgu diapazona sintaksi (1:) .
- Tātad, šeit INDIRECT funkcija saglabās visus skaitļus no 1 līdz rakstzīmju garumam šūnā B5 kā atsauces tekstu.
➤ ROW(INDIRECT("1:"&LEN(B5)))
- Portāls ROW funkcija parasti norāda šūnas rindas numuru. Bet šeit, izmantojot funkciju INDIRECT funkcija, jo nav minēta neviena atsauces šūna, šajā gadījumā, šajā gadījumā. ROW funkcija iegūs visas vērtības vai skaitļus no atsauces tekstiem, kas glabājas datubāzē INDIRECT funkcija.
- Tagad 1. šūnai B5 , iegūtās vērtības, izmantojot šos ROW un INDIRECT funkcijas būs- {1;2;3;4;5;6;7;8;9}.
➤ (MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)))
- Portāls MID funkcija ļauj noteikt rakstzīmes no teksta virknes vidus, ja ir dota sākuma pozīcija & amp; garums.
- Tātad šeit visām 9 pozīcijām, kas minētas iepriekšējā sadaļā. MID funkcija tagad parādīs visas rakstzīmes pa vienai katrai pozīcijai & amp; tādējādi atgriezīs vērtības kā - {"1″; "9″;" "; "D"; "D"; "X"; "2″; "M"; "N"}.
➤ IFERROR((MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)*1),"")
- Tagad IFERROR ir loģiska funkcija, kas nosaka, vai virkne ir skaitlis vai kaut kas cits. Ja tā neidentificē virkni ar skaitļiem vai cipariem, tad tā atgriež vērtību ar noteiktu teksta komandu.
- Mūsu gadījumā visas pēdējā sadaļā atrastās vērtības tiks reizinātas ar 1, un, ja rezultāti tiek atgriezti kā vērtības kļūdas burtiem vai teksta vērtībām, kuras nevar reizināt, to IFERROR funkcija pārvērš kļūdas par tukšām virknēm. Tātad mūsu iegūtās vērtības būs šādas - {1;9;"";"";"";"";"";"";"";2;"";"";""}.
➤ =TEXTJOIN("",TRUE,IFERROR((MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)*1),""))))
- Un tagad pēdējā daļa tiks izpildīta, izmantojot TEXTJOIN Šo funkciju izmanto, lai savienotu vai savienotu divas virknes ar norādītu norobežotāju.
- Tādējādi iepriekšējā sadaļā iegūtās vērtības tagad tiks apvienotas kopā kopā ar šo. TEXTJOIN funkciju. Tādējādi mēs iegūsim skaitli 192.
Lasīt vairāk: Kā iegūt vairākus skaitļus no virknes programmā Excel (6 metodes)
4. Vairāku funkciju ligzdošana, lai iegūtu tikai skaitļus
Tagad mēs jums parādīsim vēl vienu formulu, lai no Excel šūnas iegūtu tikai skaitļus no jebkuras pozīcijas. Lai gan tas var šķist diezgan sarežģīti, mēs sadalīsim visu formulu un mēģināsim viegli izskaidrot visas kompaktās funkcijas. Turklāt mēs izmantosim formulu. IF , LIELS , INDEX , SUMPRODUCT , un ISNUMBER funkcijas šajā formulā.
- Vispirms šādā šūnā ierakstiet šo formulu C5 . Jums ir jāaizstāj šūnas atsauce, pamatojoties tikai uz savu šūnas šablonu izklājlapā, un pēc tam, iestrādājot šo formulu, uzreiz iegūsiet gaidīto rezultātu. Un šī formula lieliski darbojas jebkurā Excel versijā.
=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),"")
- Pēc tam ir jānospiež Ievadiet tikai pēc visas formulas ievadīšanas, un viss ir izdarīts.
🔎 Formulas sadalījums
Pirms sākt šīs masveida & amp; kompakts formula sadalījumu, mēs varam sadalīt to dažās daļās, piemēram-
=IF(A>0, SUMPRODUCT(B 1 *C 1 , B 2 *C 2 , ..........B n C n ),"")
Šī sintakse nozīmē, ja A ir lielāks par 0, tad visi reizinājumi no B n un C n summēsies līdz galīgajam rezultātam. Un, ja A nav lielāks par 0, tad rezultāts tiks atgriezts kā tukša vai tukša šūna.
- 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 daļas sadalījums = SUM(LEN(B5)-LEN(SUBSTITUTE(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, "".
➤ AIZVIETOT(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, "")
- Portāls SUBSTITŪTS funkcija tekstā pa vienam atradīs visus ciparus (0-9). 19 DDX2MN katru reizi un aizstās šos ciparus ar tukšu virkni ciparu pozīcijās.
- Tādējādi iegūtās vērtības masīvā būs šādas - {"19 DDX2MN", "9 DDX2MN", "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"}, ""))
- Portāls LEN Tagad funkcija saskaitīs rakstzīmju skaitu visās virknes vērtībās, kas iegūtas iepriekšējā sadaļā. Tātad šī funkcija atgriezīs {9,8,8,8,9,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"}, ""))
- Tagad šajā formulas daļā vairākas rakstzīmes šūnā B5 atņems visus iepriekšējā iedaļā atrastos skaitļus. Rezultātā iegūtās vērtības būs {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"}, ""))))
- Ar SUM funkciju, pēdējā sadaļā atrastās vērtības masīva iekšpusē summēsies līdz 3 (0+1+1+1+0+0+0+0+0+0+0+0+0+1).
- Tātad saskaņā ar mūsu formulas pirmo daļu, A>0 (3>0) . Tagad mēs pāriesim pie nākamās sadalījuma daļas.
B daļas sadalījums = 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))
- Portāls INDIRECT funkcija šeit saglabās virknes vērtības kā atsauci uz masīvu. Iekavās, ampersanda (& amp;) komanda pievienos rakstzīmju skaitu, kas atrodams šūnā B5 Tas nozīmē, ka no 1 līdz noteiktajam rakstzīmju skaitam katra no tām tiks saglabāta kā atsauce uz masīvu.
➤ ROW(INDIRECT("$1:$"&LEN(B5)))
- Tagad šis ROW funkcija izvilks visus skaitļus no masīva un iegūto vērtību šūnai B5 būs - {1;2;3;4;5;6;7;8;9}.
➤ MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1)
- Šajā formulas daļā MID funkcija izteiks visas rakstzīmes no šūnas B5 Pamatojoties uz visām pozīcijām, kas iepriekšējā iedaļā atrastas kā skaitļi. Tātad iegūtās vērtības tiks atrastas pēc šīs daļas - {"1″; "9″;" "; "D"; "D"; "X"; "2″; "M"; "N"}.
➤ ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1)))
- Kā ISNUMBER ir loģiska funkcija, tā atsevišķi noteiks, vai iepriekšējā sadaļā atrastās vērtības ir skaitļu virknes vai nē. Ja jā, tad tā atgriezīsies kā TRUE , pretējā gadījumā tas tiks parādīts kā FALSE .
- Tātad mūsu gadījumā rezultāts būs - {TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE}.
➤ INDEX(ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1))*ROW(INDIRECT("$1:$"&LEN(B5))),0))
- Ja pamanāt, ka iepriekš minētās funkcijas iekšpusē ir dubultais burtiņš, kas pazīstams kā Dubultā vienbalsība Tas tiek izmantots, lai pārvērstu visas loģiskās vērtības skaitļu virknēs. 1(TRUE) vai 0(FALSE) . Tagad INDEX funkcija atgriezīs šo rezultātu kā {1;1;1;0;0;0;0;0;0;1;0;0;0}.
- Pēc tam iegūtās vērtības tiks reizinātas ar vērtībām, kas iegūtas no ROW funkciju masīva iekšpusē, un rezultāts būs - {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))))
- Portāls LIELS funkcija tagad pārkārtos lielākās vērtības no masīva atbilstoši pozīcijām, pamatojoties uz skaitļiem, kas atrasti masīvā. ROW funkcijas. & amp; mūsu iegūtās vērtības šajā formulas daļā būs - {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))
- Tagad šī funkcijas daļa apvienos 0 ar tekstiem šūnā B5 . Pēc tam tiks pievienots 1 individuāli ar visiem skaitļiem, kas atrodami pēdējā sadaļā, un parādīt rakstzīmes no B5 šūnā, pamatojoties uz noteiktajām numuru pozīcijām.
- Tātad mūsu rezultāts šajā sadaļā būs - {"2″; "9″; "1″; "0″; "0″; "0″; "0″; "0″; "0″; "0″; "0"}.
C daļas sadalījums = (10^ROW(INDIRECT("$1:$"&LEN(B5)))/10),""),")
- Šajā daļā tiks noteiktas 10 & amp; amp; uzglabāt tos masīva iekšpusē. Skaitļi pilnvaras ir skaitļi, kas atrasti no ROW funkcija iepriekš.
- Šī formulas daļa atgriezīs šādas vērtības - {1;10;100;1000;10000;100000;1000000;10000000;100000000}.
B reizināšana n un C n
- Tagad masīva iekšienē tiks reizinātas pēdējo divu lielāko sadalījumu B un C iegūtās vērtības. Tad reizinājumu rezultātā iegūtie reizinājumi būs - {2;90;100;0;0;0;0;0;0;0;0;0}.
- Un, visbeidzot, SUMPRODUCT funkcija saskaitīs šīs masīvā atrastās vērtības. Tādējādi mūsu galarezultāts būs. 192 (2+90+100+0+0+0+0+0+0) , kas ir iegūtie skaitļi no šūnas B5 .
Lasīt vairāk: Teksta un skaitļu atdalīšana programmā Excel (4 vienkārši veidi)
5. Piecu ciparu skaitļu iegūšana no virknes
Mēs izmantosim citu formulu, lai izvilktu piecu ciparu skaitļus no jebkuras virknes daļas programmā Excel. Mēs izmantosim formulu CONCAT un SEQUENCE Turklāt mēs esam nedaudz mainījuši mūsu datu kopu, lai izmantotu šo metodi.
Soļi:
- Vispirms atlasiet šūnu diapazonu C5:C12 .
- Otrkārt, ievadiet šādu formulu.
=CONCAT(IFERROR(0+MID(B5,SEQUENCE(LEN(B5)),1),"")))
- Visbeidzot, nospiediet Ctrl+Enter .
🔎 Formulas sadalījums
- LEN(B5)
- Izvades jauda: 11 .
- Šī funkcija atgriež virknes garumu.
- SEQUENCE(11)
- Output: {1;2;3;4;5;6;7;8;9;10;11} .
- Šī funkcija atgriež pirmos vienpadsmit skaitļus.
- MID(B5,{1;2;3;4;5;6;7;8;9;10;11},1)
- Izvades: {"1″; "9″;" "; "D"; "D"; "X"; "2″; "M"; "N"; "3″; "3″}. .
- Izmantojot šo daļu, mēs iegūstam atsevišķas rakstzīmes no virknes.
- 0+{"1″; "9″;" "; "D"; "D"; "X"; "2″; "M"; "N"; "3″; "3″}
- Izejas: {1;9;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;3;3}. .
- Ja mēs pievienojam nulli kopā ar virkni, tiek atgriezta kļūda.
- IFERROR({1;9;#VĒRTĪBA!;#VĒRTĪBA!;#VĒRTĪBA!;#VĒRTĪBA!;#VĒRTĪBA!;2;#VĒRTĪBA!;#VĒRTĪBA!;#VĒRTĪBA!;3;3},"")
- Izejas: {1;9;"";"";"";"";"";"";2;"";"";"";"";3;3}. .
- Visas kļūdas vērtības ir tukšas.
- CONCAT({1;9;"";"";"";"";"";"";2;"";"";"";3;3})
- Izlaide: 19233 .
- Visbeidzot, mēs saskaitām visas vērtības, lai iegūtu tikai piecu ciparu skaitļus.
6. Flash Fill izmantošana, lai iegūtu skaitļus diapazonā
Izmantojot . Flash Fill Funkcija ir vieglāka un vienkāršāka nekā jebkura cita iepriekš minētā metode. Mēs gatavojamies iegūt skaitļus no jebkuras pozīcijas teksta virknēs. Lai pareizi izpildītu šo metodi, mums ir jāpalīdz programmai Excel atrast šūnu vērtību paraugu kolonnā vai rindā, veicot ieguvi tikai pirmajām divām vērtībām.
Soļi:
- Vispirms manuāli ievadiet skaitļus šūnā C5 .
- Pēc tam sāciet ievadīt skaitļus no šūnas B6 uz šūnu C6 un Excel automātiski atpazīs modeli.
- Visbeidzot, nospiediet Ievadiet .
Piezīmes: Šai metodei ir daži trūkumi, tāpēc tā nav ieteicama visos gadījumos, kad no teksta virknēm ir jāizdala skaitļi. Flash Fill parasti seko modelim no kolonnas vai diapazona šūnām. Tāpēc pirmie 2 vai 3 izvilkumi vai aprēķini ir jāveic manuāli, lai palīdzētu programmai Excel apgūt kopīgo iegūto vērtību modeli. Taču dažreiz tas neseko precīzi vajadzīgajam modelim, un tādējādi tas sekos savam modelim un sniegs nesakritīgu rezultātu.
Piemēram, ja no dotajiem datiem būtu jāizdala divas nulles (00), tiktu parādīta tikai viena nulle, nevis divas. Ja vēlaties izvilkt skaitļus no šūnas sākuma vai pēdējām pozīcijām, kopā ar skaitļiem tiks izvilktas arī teksta vērtības.
Lasīt vairāk: Kā iegūt skaitļus pēc noteikta teksta programmā Excel (2 piemēroti veidi)
7. VBA koda piemērošana, lai no Excel šūnas iegūtu tikai skaitļus
Ja vēlaties izmantot Excel VBA makro programma lai no šūnām izvilktu tikai skaitļus, izpildiet tālāk norādītos soļus. Mēs parādīsim, kā ievadīt kodu šūnās. VBA modulis Šajā kodā lietotājam būs jānorāda ievades un izejas šūnu diapazoni.
Soļi:
- Pirmkārt, nospiediet ALT+F11 lai atvērtu VBA logs.
- Tad no Ievietot izvēlieties cilni Modulis parādīsies jauns moduļa logs, kurā jāievada kodi.
- Treškārt, moduļa iekšpusē pēc kopēšanas ielīmējiet šādus 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 = "Ievaddatu atlase" DBxName2 = "Izejas šūnu atlase" Set InBx1 = Application.InputBox("Teksta šūnu ievades diapazons:", _ DBxName1, "", Type:=8)Ja TypeName(InBx1) = "Nekas", tad Exit Sub Set InBx2 = Application.InputBox("Select Output Cells:", _ DBxName2, "", Type:=8) Ja TypeName(InBx2) = "Nekas", tad 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
- Pēc tam nospiediet F5 lai izpildītu kodu. Tiek atvērts dialoglodziņš ar nosaukumu " Ievaddatu atlase " parādīsies.
- Pēc tam atlasiet visas teksta šūnas (t. i. B5: B12 ) un nospiediet LABI .
- Pēc tam tiek atvērts cits dialoglodziņš ar nosaukumu " Izejas šūnu izvēle ", kurā jāizvēlas konkrēta šūna vai šūnu diapazons, lai redzētu izejas datus vai vērtības.
- Visbeidzot atlasiet šūnu diapazonu C5:C12 un nospiediet Ievadiet .
- Līdz ar to jūs redzēsiet iegūtos skaitļus no tekstiem uzreiz. Tādējādi mēs pabeigsim septiņas ātras metodes, lai iegūtu skaitļus tikai no Excel šūnas.
🔎 VBA koda sadalījums
➤ Parametru deklarēšana
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 = "Ievaddatu atlase" DBxName2 = "Izejas šūnu atlase"
- Sākumā šajā daļā mēs deklarējam visus savus parametrus kā veselos skaitļus, virknes vērtības vai šūnu diapazonus. Pēc tam mēs piešķiram mūsu dialoga logu nosaukumus ar "Ievaddatu atlase" un "Izejas šūnu izvēle" .
➤ Dialoglodziņu ievades un izejas tipu definēšana dialoglodziņiem
Set InBx1 = Application.InputBox("Teksta šūnu ievades diapazons:", _ 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 = ""
- Tagad mēs definējam parametrus un to tipus dialoglodziņiem. Šeit pievienojot Type:=8, ievades un izvades dati sastāv no atsauces šūnām vai šūnu diapazona.
- Mēs arī definējam, ka gadījumā, ja ievades dati netiek atrasti, apakšprogramma apstāsies. Minot šo makro, apakšprogramma nepārtrauks darbību trūkstošo datu dēļ, bet gan pārtrauks darbību.
➤ Funkciju apvienošana koda cilpu iekšpusē, lai veiktu iterācijas
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
- Visbeidzot, šī ir vissvarīgākā daļa, kurā mēs piemērojam funkcijas vai formulas, kas mums ir jāpiešķir tekstiem, lai atrastu virkņu rezultatīvās vērtības.
- Viena no galvenajām Excel funkcijas kodēšanas priekšrocībām ir tā, ka nav nepieciešams ievadīt lielu formulu, kā tas bija jādara iepriekšējās metodēs, jo VBA ir iebūvētas komandas, lai izmantotu For vai While cilpas, kurās bez problēmām var izpildīt iterāciju katrai teksta virknes detaļai.
Lasīt vairāk: Kā atdalīt skaitļus no teksta programmā Excel VBA (3 metodes)
Secinājums
Mēs esam parādījuši 7 vienkāršas metodes, lai izvilkt tikai skaitļus no Excel šūnas. Tikai skaitļu iegūšana no teksta virknes nav tik vienkārša, kā šķiet, jo ir nepieciešama vairāku funkciju kombinācija, kas galīgo formulu jeb sintaksi padara sarežģītu. Taču mēs ceram, ka tas, kā mēs esam centušies ilustrēt formulas, sadalot iekšējās funkcijas, ir palīdzējis jums saprast sintaksi nedaudz ērtāk un vieglāk.
Ja atrodat citas funkcijas vai formulas, kuras mums būtu vajadzējis šeit pievienot, lūdzu, informējiet mūs par to, izmantojot savus vērtīgos komentārus. Vai arī varat ielūkoties mūsu informatīvajos un interesantajos rakstos, kas saistīti ar Excel funkcijām šajā vietnē.