Tartalomjegyzék
Bár a Microsoft nem adott egyenes képletet vagy szintaxist a csak számok kivonása az Excel-cellából, az Excel-cellák széles skáláját tudjuk beépíteni a Excel képletek hogy egyetlen olyan függvényt készítsünk, amellyel csak számokat vagy számjegyeket tudunk kinyerni az Excel celláiból. Ebben a cikkben megpróbáljuk részletesen bemutatni és elmagyarázni, hogyan tudjuk a megfelelő képletekkel néhány feltétel mellett csak számokat kihozni a cellákból.
Gyakorlati munkafüzet letöltése
Töltse le ingyenesen a gyakorlókönyvet, amelyet a cikk elkészítéséhez használtunk. A kijelölt cellákba számokkal együtt adhatja be a szöveges értékeket, és a beágyazott képleteken keresztül azonnal megtalálja az eredményeket.
Számok kivonása Cell.xlsm cellából
7 hatékony módja annak, hogy csak számokat vonjon ki az Excel cellából
Lesz egy VBA kód, egy Excel funkció és öt gyakorlati képlet, amelyek segítségével számokat tudunk kivenni egy cellából. Mint az alábbi képen, van néhány kódunk, amely számjegyeket és betűket tartalmaz, ahol az elején számjegyek vannak. Csak ezeket a számjegyeket vagy számokat kell kivennünk.
1. Számok kiemelése a szöveg elejéről
Ebben az első módszerben kombináljuk a LEFT , SUM , LEN , és PÓTLÓ függvények segítségével számokat húzhatunk ki egy szöveges karakterlánc elejéről. Először is, beírjuk ezt a képletet a cellába, majd a a töltőfogantyú , ezt a képletet átmásoljuk a többi cellába.
Lépések:
- Először írja be a képletet a cellába C5 .
=LEFT(B5,SUM(LEN(B5)-LEN(SUBSTITUTE(B5,{"0","1","2","3","4","5","6","7","8","9"},""))))
- Másodszor, nyomja meg a Írja be a címet. és a 34-es számot kapod az első kódhoz.
- Harmadszor, használja a Töltse ki a fogantyút majd az oszlop összes többi cellájának automatikus kitöltéséhez C .
🔎 Képlet bontás
➤ SUBSTITUTE(B5,{"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9″},"")
- Itt a PÓTLÓ függvény megkeresi a számjegyeket (0-9) egymás után, és ha megtalálja, akkor az adott számjegyet kicseréli a cella B5 A függvény tehát a következő módon fog visszatérni: {"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″},""))
- A LEN függvény határozza meg a karakterek számát egy karakterláncban. Tehát itt a LEN függvény a szövegekben található összes karaktert egyenként megszámolja a PÓTLÓ A kapott értékek a mi esetünkben a következők lesznek: {7,7,7,7,6,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″},"")))))
- Ez a rész a kivonás a cellában lévő karakterek számából. B5 a képlet előző szakaszában külön-külön talált összes többi karakterszámhoz. Tehát itt az eredményül kapott értékek - {0,0,0,0,1,1,1,0,0,0,0,0,0,0,0} lesznek.
➤ SUM(LEN(B5)-LEN(SUBSTITUTE(B5,{"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9″},"")))))
- A SUM függvény ezután egyszerűen összeadja az összes kivont értéket & így az eredmény itt lesz, 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″},""))))
- És most itt az utolsó rész, ahol a LEFT függvény a képlet előző szakaszában talált értékeket adja vissza a bal oldali karakterek pontos számával. Mivel az összeg értékét 2-nek kaptuk, a LEFT funkció itt csak a 34 a szövegből 34DTXRF .
➥ Kapcsolódó: Hogyan válasszuk el a számokat az Excelben a képlet segítségével (5 mód)
2. Számok kivonása a szöveg jobb oldaláról
Ebben a szakaszban a számokat vagy számjegyeket fogjuk kivenni a szöveges karakterlánc jobb oldaláról. A JOBBRA , MIN , és KERESÉS funkciók itt.
Lépések:
- Kezdjük azzal, hogy a mi adatállományunkban mit kell beírnunk a cellába C5 is-
=RIGHT(B5,LEN(B5) - MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, B5& "0123456789")) +1))
- Ezután nyomja meg a Írja be a címet. majd használja a Töltse ki a fogantyút a többi cella automatikus kitöltéséhez.
🔎 Képlet bontás
➤ B5& "0123456789″
- Itt az értékek összekapcsolása történik a B5 cellával 0123456789 a zárójel (&) közöttük, és a kapott értéket DTXRF340123456789-ként kapjuk meg.
➤ SEARCH({0,1,2,3,4,5,6,7,8,9}, B5&”0123456789″)
- Most, a KERESÉS függvény egyenként megkeresi az összes számjegyet (0-9) az előző szakaszban kapott eredményértékben, és visszaadja a 10 számjegy pozícióját a karakterek között a DTXRF340123456789 Tehát itt a kapott értékek a következők lesznek: {8,9,10,6,7,13,14,15,16,17}.
➤ MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, B5&”0123456789″))
- A MIN függvényt arra használjuk, hogy megtaláljuk a legalacsonyabb számjegyet vagy számot egy tömbben. Tehát, itt a minimális vagy legalacsonyabb érték lesz- 6 a képlet előző részében található {8,9,10,6,7,13,14,15,16,17} tömbből.
➤ LEN(B5) - MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, B5& "0123456789″)) +1))
- Most a karakterek száma a B5 találja meg a LEN Ezután kivonja a 6-os értéket (amit az utolsó szakaszban találtunk), majd az eredményt 1 hozzáadásával adja vissza. 2 (7-6+1) .
➤ RIGHT(B5,LEN(B5) - MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, B5& "0123456789″)) +1))
- A JOBBRA függvény visszaadja a megadott számú karaktert a karakterlánc utolsó vagy jobb oldaláról. Az előző szakaszban a kivonási folyamat során kapott eredményt követve, itt a JOBBRA függvény a cella utolsó 2 karakterét fogja megjeleníteni B5 , és ez lesz 34 .
Bővebben: Hogyan válasszuk szét a számokat egy cellában az Excelben (5 módszer)
3. Számok kivonása egy szöveges karakterlánc bármely részéből
Most pedig itt van egy átfogó megoldás minden esetre. Ez a módszer a szöveges karakterlánc bármelyik pozíciójából ki fogja húzni a számokat vagy számjegyeket. Ráadásul használjuk a TEXTJOIN , IFERROR , INDIREKT , MID és ROW funkciók ebben a módszerben.
Lépések:
- Először is, írja be a képletet a célcellába az alábbiak szerint-
=TEXTJOIN("",TRUE,IFERROR((MID(B5,ROW(INDIRECT("1:"&LEN(B5)))),1)*1),"")))
- Ezután, ha a Excel 2016 vagy magasabb verzió, majd nyomja meg a Írja be a címet. , különben nyomja meg a Ctrl+Shift+Enter hogy megkapja a tömb képletének eredményét.
- E lépés után töltse ki automatikusan a többi cellát a Töltse ki a fogantyút és kész.
🔎 Képlet bontás
➤ INDIRECT("1:"&LEN(B5))
- A INDIREKT függvényt arra használjuk, hogy a cellák értékeinek tömbjét referencia szövegként tároljuk. Itt az ampersand (&) parancs a cellában lévő karakterek hosszát kapcsolja össze B5 hiányos tartomány szintaxissal (1:) .
- Tehát, itt a INDIREKT függvény az összes számot 1 és a karakterek hossza között tárolja a cellában B5 mint referenciaszöveg.
➤ ROW(INDIRECT("1:"&LEN(B5))))
- A ROW függvény általában egy cella sorszámát adja meg. De itt a INDIREKT függvény, mivel nem említettek referenciacellát, ebben az esetben a ROW függvény kivonja az összes értéket vagy számot a referenciaszövegekből, amelyeket a INDIREKT funkció.
- Most az 1. cella esetében B5 , a kapott értékek ezeken keresztül ROW és INDIREKT A függvények a következők lesznek: {1;2;3;4;5;6;7;8;9}.
➤ (MID(B5,ROW(INDIRECT("1:"&LEN(B5)))),1)))
- A MID függvény segítségével meghatározhatja a karaktereket egy szöveges karakterlánc közepéről, egy kezdő pozíció és egy bélyeg; hossza alapján.
- Tehát itt mind a 9, az előző szakaszban talált pozícióra vonatkozóan a MID függvény most minden egyes karaktert egyenként fog megmutatni minden egyes pozícióhoz & így az értékeket a következőképpen adja vissza: {"1″; "9″;" "; "D"; "D"; "X"; "2″; "M"; "N"}.
➤ IFERROR((MID(B5,ROW(INDIRECT("1:"&LEN(B5)))),1)*1),"")
- Most, a IFERROR egy logikai függvény, amely meghatározza, hogy egy karakterlánc szám vagy valami más-e. Ha nem azonosítja a számokat vagy számjegyeket tartalmazó karakterláncot, akkor az értéket egy meghatározott szövegparanccsal adja vissza.
- A mi esetünkben az utolsó szakaszban talált összes értéket megszorozzuk 1-gyel, és amikor a nem szorozható betűk vagy szöveges értékek esetében az eredmények értékhibaként érkeznek vissza, akkor azok IFERROR függvény a hibákat üres karakterláncokká alakítja. Így az eredményül kapott értékek a következők lesznek- {1;9;"";"";"";"";"";"";2;"";""}.
➤ =TEXTJOIN("",TRUE,IFERROR((MID(B5,ROW(INDIRECT("1:"&LEN(B5)))),1)*1),"")))
- És most az utolsó rész lesz végrehajtva a TEXTJOIN függvény. Ez a függvény két karakterlánc összefűzésére vagy összekapcsolására szolgál egy megadott elválasztójellel.
- Tehát az előző szakaszban talált eredményértékeket most összekapcsoljuk ezzel együtt. TEXTJOIN És így megkapjuk a számot. 192.
Bővebben: Hogyan lehet több számot kivonni az Excel karakterláncából (6 módszer)
4. Több függvény egymásba fészkelése, hogy csak számokat hozzon ki
Most egy másik képletet mutatunk, amellyel csak számokat tudunk kinyerni egy Excel-cellából bármelyik pozícióból. Bár elég bonyolultnak tűnhet, az egész képletet lebontjuk, és megpróbáljuk az összes kompakt függvényt könnyedén elmagyarázni. Ezen kívül használjuk a IF , LARGE , INDEX , SUMPRODUCT , és ISNUMBER függvények ebben a képletben.
- Kezdetnek írja be ezt a képletet a cellába C5 A cellahivatkozást csak a saját cellája alapján kell kicserélnie a táblázatban, majd ennek a képletnek a beágyazásával azonnal megkapja a várt eredményt. És ez a képlet tökéletesen működik az Excel bármelyik verziójában.
=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),"")
- Ezután meg kell nyomnia a Írja be a címet. csak a teljes képlet beírása után, és kész.
🔎 Képlet bontás
Mielőtt elkezdenénk ennek a masszív & kompakt képletnek a lebontását, szétválaszthatjuk néhány részre, mint-
=IF(A>0, SUMPRODUCT(B 1 *C 1 , B 2 *C 2 , ..........B n C n ),"")
Ez a szintaxis azt jelenti, hogy ha A nagyobb, mint 0, akkor az összes termék a B n és C n összegzi a végeredményt. És ha a A nem nagyobb, mint 0, akkor az eredmény egy üres vagy üres cellát fog visszaadni.
- 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),""
Az A. rész bontása = 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"}, "")
- A PÓTLÓ funkció egyenként megkeresi az összes számjegyet (0-9) a szövegben. 19 DDX2MN minden egyes alkalommal, és a számjegyek helyére egy üres karakterláncot ír a számjegyek helyére.
- Így az eredményül kapott értékek egy tömbben a következők lesznek- {"19 DDX2MN", "9 DDX2MN", "19 DDXMN", "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"}, "")))
- A LEN függvény most megszámolja a karakterek számát az előző szakaszban kapott összes karakterlánc értékében. Ez a függvény tehát a következő eredményt adja vissza: {9,8,8,8,9,9,9,9,9,9,9,9,8}.
➤ LEN(B5)-LEN(SUBSTITUTE(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, "")))
- Most a képlet ezen részében a cellában lévő karakterek száma B5 kivonja az előző szakaszban talált összes számot. A kapott értékek így a következők lesznek- {0,1,1,1,0,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"}, "")))))
- A segítségére van a SUM függvényt, az utolsó szakaszban talált tömbben lévő értékek összege 3 lesz (0+1+1+1+0+0+0+0+0+0+0+0+0+0+1).
- Tehát a képletünk első része szerint, A>0 (3>0) Most a bontás következő részére lépünk.
A B rész bontása = 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))
- A INDIREKT függvény itt a string értékeket a tömbre való hivatkozásként fogja tárolni. A zárójelen belül a zárójeles (&) parancs a cellában található karakterek számát fogja összeadni B5 a Range of cells' szintaxissal. Ez azt jelenti, hogy 1-től a meghatározott karakterek számáig minden egyes karakter tömbhivatkozásként kerül tárolásra.
➤ ROW(INDIRECT("$1:$"&LEN(B5))))
- Nos, ez a ROW függvény kihúzza az összes számot a tömbből, és az eredményül kapott értékeket a cellákhoz. B5 {1;2;3;4;5;6;7;8;9} lesz.
➤ MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1)
- A képletnek ebben a részében a MID függvény kifejezi az összes karaktert a cellából B5 az előző szakaszban számokként talált összes pozíció alapján. Tehát a kinyert értékeket ezután a rész után találjuk meg - {"1″; "9″;" "; "D"; "D"; "X"; "2″; "M"; "N"}.
➤ ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1)))
- Mint ISNUMBER egy logikai függvény, amely egyenként meghatározza, hogy az előző szakaszban talált értékek számsorok-e. Ha igen, akkor visszatér a TRUE , különben a következő lesz a megjelenítés FALSE .
- Tehát a mi esetünkben az eredmény a következő lesz: {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)
- Ha észreveszed a fenti függvényen belül egy dupla kötőjelet, az úgynevezett Dupla Unary Minden logikai értéket számsorokká alakít át. 1(TRUE) vagy 0(FALSE) . Most, a INDEX függvény ezt az eredményt adja vissza: {1;1;0;0;0;0;0;1;0;0;0}.
- Ezt követően az eredményül kapott értékeket megszorozzuk a következő értékekkel ROW függvényt a tömbön belül, és az eredmény a következő lesz: {1;2;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))))
- A LARGE függvény most átrendezi a legnagyobb értékeket a tömbből a pozíciók szerint, a számok alapján, amelyeket a ROW függvények. & a képlet ezen szakaszának eredményül kapott értékei a következők lesznek: {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))
- A függvénynek ez a része most a következőket kapcsolja össze 0 a cellában lévő szövegekkel B5 . Aztán hozzáadja 1 egyenként az utolsó szakaszban található összes számmal, és mutassa meg a karaktereket a B5 cellát a meghatározott számpozíciók alapján.
- Tehát a szakasz eredménye a következő lesz: {"2″; "9″; "1″; "0″; "0″; "0″; "0″; "0″; "0″; "0″; "0″; "0"}.
A C rész bontása = (10^ROW(INDIRECT("$1:$"&LEN(B5)))/10),"")
- Ez a rész meghatározza a 10 & hatványait; tárolja őket a tömbben. A hatványok számjegyei a számok, amelyeket a ROW funkciót korábban.
- A képlet ezen része a következő értékeket adja vissza: {1;10;100;1000;10000;100000;1000000;10000000;100000000}.
B szorzata n és C n
- Most a B és C utolsó két nagy bontásából származó eredményértékeket szorozzuk meg a tömbön belül. Ezután a szorzásokból kapott termékek a következők lesznek- {2;90;100;0;0;0;0;0;0;0;0;0}.
- És végül, a SUMPRODUCT függvény összeadja a tömbben található értékeket. Így a végeredményünk a következő lesz 192 (2+90+100+0+0+0+0+0+0) , amely a cellából kivont számok B5 .
Bővebben: Szöveg és számok elválasztása Excelben (4 egyszerű módja)
5. Öt számjegyű számok kivonása karakterláncból
Egy másik képletet fogunk használni arra, hogy az Excelben egy karakterlánc bármely részéből kivonjuk az ötjegyű számokat. A CONCAT és SEQUENCE függvényeket először ebben a szakaszban. Ezen túlmenően az adatkészletünket kissé megváltoztattuk ehhez a módszerhez.
Lépések:
- Először válassza ki a cellatartományt C5:C12 .
- Másodszor, írja be a következő képletet.
=CONCAT(IFERROR(0+MID(B5,SEQUENCE(LEN(B5)),1),""))
- Végül nyomja meg a Ctrl+Enter .
🔎 Képlet bontás
- LEN(B5)
- Kimenet: 11 .
- Ez a függvény a karakterlánc hosszát adja vissza.
- SEQUENCE(11)
- Output: {1;2;3;4;5;6;7;8;9;10;11} .
- Ez a függvény az első tizenegy számot adja vissza.
- MID(B5,{1;2;3;4;5;6;7;8;9;10;11},1)
- Kimenet: {"1″; "9″;" "; "D"; "D"; "X"; "2″; "M"; "N"; "3″; "3″} .
- Ezzel a résszel a karakterlánc egyes karaktereit kapjuk meg.
- 0+{"1"; "9";" "; "D"; "D"; "X"; "2"; "M"; "N"; "3"; "3″}
- Kimenet: {1;9;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;2;#VALUE!;#VALUE!;#VALUE!;3;3} .
- Ha nullát adunk hozzá egy karakterlánccal, hibát fog visszaadni.
- IFERROR({1;9;#ÉRTÉK!;#ÉRTÉK!;#ÉRTÉK!;#ÉRTÉK!;#ÉRTÉK!;2;#ÉRTÉK!;#ÉRTÉK!;#ÉRTÉK!;3;3},"")
- Kimenet: {1;9;"";"";"";"";"";2;"";"";"";3;3} .
- Minden hibaértéknél üres értéket kapunk.
- CONCAT({1;9;"";"";"";"";"";2;"";"";"";3;3})
- Kimenet: 19233 .
- Végül összeadjuk az összes értéket, hogy csak ötjegyű számokat kapjunk.
6. Flash kitöltés használata tartományon belüli számok kivonására
A használata a Flash töltés funkció könnyebb és egyszerűbb, mint bármely más fent említett módszer. A szöveges karakterláncok bármelyik pozíciójából fogunk számokat kinyerni. Ahhoz, hogy ezt a módszert megfelelően végre tudjuk hajtani, segítenünk kell az Excelnek megtalálni a cellák értékeinek mintáját egy oszlopban vagy egy sorban úgy, hogy csak az első két értékre végezzük el a kinyerést.
Lépések:
- Kezdetben írja be a számokat kézzel a cellába C5 .
- Ezután kezdje el beírni a számokat a cellából B6 a cellához C6 és az Excel automatikusan felismeri a mintát.
- Végül nyomja meg a Írja be a címet. .
Megjegyzések: Ennek a módszernek van néhány hátránya, ezért nem ajánlott minden olyan esetben, amikor számokat kell kivonni a szöveges karakterláncokból. Flash töltés általában egy oszlop vagy tartomány celláinak mintáját követi. Így az első 2-3 kivonást vagy számítást kézzel kell elvégezni, hogy az Excel elsajátítsa az eredményül kapott értékek közös mintáját. Néha azonban nem követi pontosan azt a mintát, amire szükségünk van, és ezáltal a saját mintáját követi, és nem megfelelő eredményt ad.
Ha például két nullát (00) kellene kivonnunk a megadott adatokból, akkor csak egy nullát mutatna, nem kettőt. Ha pedig számokat szeretnénk kivonni egy cella elejéről vagy utolsó pozíciójából, akkor a számokkal együtt a szöveges értékeket is kivonja.
Bővebben: Hogyan lehet kivenni a számokat egy adott szöveg után az Excelben (2 megfelelő mód)
7. VBA-kód alkalmazása az Excel-cellából csak számok kivonásához
Ha a Excel VBA makró csak számokat szeretne kinyerni a cellákból, akkor az alábbi lépéseket szeretné követni. Megmutatjuk, hogyan kell beírni a kódot a VBA modul Ez a kód megkéri a felhasználót, hogy adja meg a bemeneti és kimeneti cellatartományokat.
Lépések:
- Először is, Press ALT+F11 a VBA ablak.
- Ezután, a Beillesztés lapon válassza ki a Modul Egy új modulablak jelenik meg, ahol beírja a kódokat.
- Harmadszor, a modulon belül, a másolás után illessze be a következő kódokat.
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 = "Input Data Selection" DBxName2 = "Output Cell Selection" Set InBx1 = Application.InputBox("Input Range of Text Cells:", _ DBxName1, "", Type:=8)If TypeName(InBx1) = "Semmi" Then Exit Sub Set InBx2 = Application.InputBox("Select Output Cells:", _ DBxName2, "", Type:=8) If TypeName(InBx2) = "Semmi" 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
- Ezután nyomja meg a F5 a kód végrehajtásához. A " Bemeneti adatok kiválasztása " fog megjelenni.
- Ezután jelölje ki az összes szöveges cellát (pl. B5:B12 ) és nyomja meg a OK .
- Ezt követően egy másik párbeszédpanel, a " Kimeneti cella kiválasztása " jelenik meg, ahol ki kell választania egy adott cellát vagy cellatartományt a kimeneti adatok vagy értékek megtekintéséhez.
- Végül válassza ki a cellatartományt C5:C12 és nyomja meg a Írja be a címet. .
- Következésképpen a szövegekből kivont számokat egyszerre fogja látni. Így befejezzük a hét gyors módszert a számok kivonására csak az Excel-cellából.
🔎 VBA kód lebontása
➤ Paraméterek deklarálása
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 = "Input Data Selection" DBxName2 = "Output cell Selection"
- Itt ebben a részben először minden paraméterünket egész számként, string értékként vagy cellatartományként deklaráljuk. Ezután megadjuk a párbeszédablakaink nevét a "Bemeneti adatok kiválasztása" és "Kimeneti cella kiválasztása" .
➤ A párbeszédpanelek bemeneti és kimeneti típusainak meghatározása
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 = ""
- Most a párbeszédpanelek paramétereit és azok típusait határozzuk meg. Itt a Type:=8 hozzáadása azt jelenti, hogy a be- és kimeneti adatok referenciacellákból vagy cellatartományból állnak.
- Azt is definiáljuk, hogy ha nem találunk bemeneti adatokat, akkor az alprogram leáll. Ennek a makrónak az említésével az alprogram nem fog leállni a hiányzó adatok miatt, hanem leállítja a működését.
➤ A függvények kombinálása a kódhurokban az ismétlésekhez
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
- Végül ez a legfontosabb rész, ahol alkalmazzuk a függvényeket vagy képleteket, amelyeket a szövegekhez kell rendelnünk, hogy megtaláljuk az eredményül kapott értékeket a karakterláncokból.
- Az Excel függvények kódolásának egyik legnagyobb előnye, hogy nem szükséges nagy képletet begépelni, mint a korábbi módszereknél, mivel a VBA beépített parancsokkal rendelkezik a For vagy While ciklusok használatára, ahol az iteráció minden egyes részletre egy szöveges karakterláncban minden gond nélkül végrehajtható.
Bővebben: Hogyan válasszuk el a számokat a szövegtől az Excel VBA-ban (3 módszer)
Következtetés
Megmutattunk 7 egyszerű módszert, hogy csak számok kivonása egy Excel-cellából. A csak számok kivonása egy szöveges karakterláncból nem olyan egyszerű, mint amilyennek látszik, mert több függvény kombinációját igényli, ami bonyolulttá teszi a végső képletet vagy szintaxist. De reméljük, hogy ahogyan megpróbáltuk a képleteket a belső függvények lebontásával szemléltetni, segített Önnek egy kicsit kényelmesen és könnyedén megérteni a szintaxist.
Ha bármilyen más olyan funkciót vagy képletet talál, amelyet hozzá kellett volna adnunk, akkor kérjük, ossza meg velünk értékes megjegyzéseivel. Vagy vethet egy pillantást az Excel-funkciókkal kapcsolatos informatívabb és érdekesebb cikkeinkre ezen a weboldalon.