INHOUDSOPGAWE
Alhoewel Microsoft nie 'n reguit formule of sintaksis verskaf het om net getalle uit die Excel-sel te onttrek nie, kan ons 'n wye reeks Excel-formules insluit om maak 'n enkele funksie wat gebruik kan word om slegs getalle of syfers uit Excel-selle te onttrek. In hierdie artikel sal ons probeer om in detail te wys en te verduidelik hoe ons slegs getalle uit die selle kan uitbring met die toepaslike formules onder 'n paar kriteria.
Laai Praktykwerkboek af
Laai die oefenboek gratis wat ons gebruik het om hierdie artikel voor te berei. Jy kan die tekswaardes met getalle in die geselekteerde selle invoer en die resultate onmiddellik vind deur ingebedde formules.
Onttrek Getalle uit Cell.xlsm
7 Effektiewe maniere om slegs getalle uit Excel-sel te onttrek
Daar sal een VBA-kode, een Excel-kenmerk en vyf praktiese formules wees om jou te help om getalle uit 'n sel te onttrek. Soos in die prentjie hieronder, het ons 'n paar kodes insluitend syfers en letters waar syfers aan die begin teenwoordig is. Ons moet slegs daardie syfers of syfers onttrek.
1. Om nommers uit die begin van 'n teks uit te trek
In hierdie eerste metode sal ons kombineer die LINKS , SOM , LEN en SUBSTITUT funksioneer om nommers van die begin van 'n teksstring uit te trek. Eerstens sal ons hierdie formule in die sel tik, endie voorafgaande afdeling. Die resulterende waardes sal dan- {0,1,1,0,0,0,0,0,0,1} wees.
➤ SOM(LEN(B5)-LEN (PLAASVERVANGER(B5, {“0″,”1″,”2″,”3″,”4″,”5″,”6″,”7″,”8″,”9”}, “”) ))
- Met die hulp van die SUM -funksie sal die waardes binne die skikking wat in die laaste afdeling gevind word, optel tot 3 ( 0+1+1+0+0+0+0+0+0+1).
- Dus, volgens die eerste deel van ons formule, A>0 (3>0) . Nou gaan ons na die volgende deel van die uiteensetting.
Verdeling van Deel B = MID(0&B5, LARGE(INDEX(ISNUMBER(–MID(B5,RY( INDIRECT(“$1:$”&LEN(B5))),1))* RY(INDIREKTE(“$1:$”&LEN(B5))),0), ROW(INDIREKTE(“$1:$” &LEN(B5))))+1,1)
➤ INDIREKTE(“$1:$”&LEN(B5))
- Die INDIREKTE funksie hier sal die stringwaardes stoor as 'n verwysing na die skikking. Binne die hakies sal die ampersand (&) -opdrag die aantal karakters wat in sel B5 gevind word, verbind met die Reeks van selle se sintaksis. Dit beteken dat van 1 tot die aantal karakters wat gedefinieer is, elkeen as 'n skikkingsverwysing gestoor sal word.
➤ RY(INDIRECT(“$1:$”&LEN(B5)) )
- Nou, hierdie RY -funksie sal al die getalle uit die skikking en die resulterende waardes vir sel <2 trek>B5 sal- {1;2;3;4;5;6;7;8;9} wees.
➤ MIDDEL(B5,RY( INDIREKTE(“$1:$”&LEN(B5))),1)
- In hierdie deel van die formule, die MID -funksie sal al die karakters van sel B5 uitdruk op grond van al die posisies wat as getalle in die vorige afdeling gevind is. Dus, die onttrekde waardes sal gevind word na hierdie deel- {“1″;”9″;” “;”D”;”D”;”X”;”2″;”M”;”N”}.
➤ ISNUMBER(–MID(B5,RY(INDIREK) (“$1:$”&LEN(B5))),1))
- Aangesien ISNUMBER 'n logiese funksie is, sal individueel bepaal of die waardes wat in die voorafgaande afdeling gevind is, getallestringe is of nie. Indien wel, sal dit terugkeer as WAAR , anders sal dit as ONWAAR vertoon word.
- Dus in ons geval sal die resultaat wees- { WAAR;WAAR;ONWAAR;ONWAAR;ONWAAR;ONWAAR;WAAR;ONWAAR;ONWAAR}.
➤ INDEX(ISNUMBER(–MID(B5,RY(INDIRECT(“$1:$” &LEN(B5))),1))*ROW(INDIRECT(“$1:$”&LEN(B5))),0)
- As jy binne die bogenoemde funksie, is 'n dubbelkoppelteken, bekend as Double Unary , gebruik. Dit word gebruik om alle logiese waardes om te skakel na getallestringe- 1(WAAR) of 0(ONWAAR) . Nou sal die INDEKS -funksie hierdie resultaat terugstuur as- {1;1;0;0;0;0;1;0;0}.
- Na dat, die resulterende waardes vermenigvuldig sal word met die waardes verkry uit die RY -funksie binne die skikking en die uitkoms sal wees- {1;2;0;0;0;0; 7;0;0}.
➤ GROOT(INDEX(ISNUMBER(–MID(B5,RY(INDIREKTE(“$1:$”&LEN(B5))),1 ))*RY(INDIREKTE(“$1:$”&LEN(B5))),0),ROW(INDIRECT(“$1:$”&LEN(B5))))
- Die GROOT -funksie sal nou die grootste herrangskik waardes van die skikking volgens die posisies gebaseer op die getalle wat in die RY -funksies gevind word. & ons resulterende waardes vir hierdie afdeling van die formule sal- {7;2;1;0;0;0;0;0;0} wees.
➤ MID(0&B5 , LARGE(INDEX(ISNUMBER(–MID(B5,RY(INDIRECT(“$1:$”&LEN(B5))),1))*RY(INDIREK(“$1:$”&LEN(B5)) ),0), ROW(INDIRECT(“$1:$”&LEN(B5))))+1,1)
- Nou, hierdie deel van die funksie sal aaneenskakel 0 met die tekste in sel B5 . Dan sal dit 1 individueel byvoeg met al die nommers wat in die laaste afdeling gevind is en die karakters van B5 sel wys op grond van die gedefinieerde getalposisies.
- Dus, ons uitkoms van hierdie afdeling sal wees- {“2″;”9″;”1″;”0″;”0″;”0″;”0″;”0″;”0” }.
Verdeling van Deel C = (10^RY(INDIREKTE(“$1:$”&LEN(B5)))/10),,””)
- Hierdie deel sal die magte van 10 & stoor hulle binne die skikking. Die syfers van die magte is die getalle wat van die RY funksie voorheen gevind is.
- Hierdie deel van die formule sal die waardes terugstuur as- {1;10;100 ;1000;10000;100000;1000000;10000000;100000000}.
Vermenigvuldiging van B n en C n
- Nou, die resulterende waardes van die laaste twee groot uiteensettings van B en C sal noubinne die skikking vermenigvuldig word. Dan sal die produkte wat uit die vermenigvuldiging gevind word- {2;90;100;0;0;0;0;0;0} wees.
- En laastens, die SOMPRODUK funksie sal hierdie waardes wat in die skikking gevind word optel. Dus, ons finale uitkoms sal 192 (2+90+100+0+0+0+0+0+0) wees, wat die onttrekte getalle uit sel B5<3 is> .
Lees meer: Hoe om teks en syfers in Excel te skei (4 maklike maniere)
5. Onttrek vyfsyfergetalle uit string
Ons sal 'n ander formule gebruik om vyfsyfergetalle uit enige deel van 'n string in Excel te onttrek. Ons sal die CONCAT - en SEQUENCE -funksies vir die eerste keer in hierdie afdeling gebruik. Boonop het ons ons datastel effens vir hierdie metode verander.
Stappe:
- Selekteer eerstens die selreeks C5:C12 .
- Tik tweedens die volgende formule in.
=CONCAT(IFERROR(0+MID(B5,SEQUENCE(LEN(B5)),1),""))
- Laastens, druk Ctrl+Enter .
🔎 Formule-ontleding
- LEN(B5)
- Uitvoer: 11 .
- Hierdie funksie gee die lengte van die string terug.
- VOLGORDE(11)
- Uitvoer: {1;2;3;4;5; 6;7;8;9;10;11} .
- Hierdie funksie gee die eerste elf getalle terug.
- MID(B5,{1;2 ;3;4;5;6;7;8;9;10;11},1)
- Uitvoer: {“1″;”9″;” “;”D”;”D”;”X”;”2″;”M”;”N”;”3″;”3″} .
- Deur hierdie deel te gebruik, is onskry die individuele karakters uit die string.
- 0+{“1″;”9″;” “;”D”;”D”;”X”;”2″;”M”;”N”;”3″;”3″}
- Uitvoer: {1;9; #VALUE!;#VALUE!;#VALUE!;#VALUE!;2;#VALUE!;#VALUE!;3;3} .
- Wanneer ons nul byvoeg met 'n string, sal dit gee 'n fout terug.
- IFERROR({1;9;#WAARDE!;#WAARDE!;#WAARDE!;#WAARDE!;2;#WAARDE!;#WAARDE!;3 ;3},””)
- Uitvoer: {1;9;””;””;””;””;2;””;””;3;3} .
- Ons word leeg vir alle foutwaardes.
- CONCAT({1;9;"";"";"";"";2;" ”;””;3;3})
- Uitvoer: 19233 .
- Laastens tel ons al die waardes by om slegs vyfsyfergetalle te onttrek.
6. Gebruik Flash Fill om getalle binne 'n reeks te onttrek
Gebruik die Flash Vul -kenmerk is makliker en eenvoudiger as enige ander metode hierbo genoem. Ons gaan getalle uit enige posisie in die teksstringe onttrek. Om hierdie metode behoorlik uit te voer, moet ons Excel help om die patroon van die selwaardes in 'n kolom of 'n ry te vind deur slegs die onttrekking vir die eerste twee waardes te doen.
Stappe:
- Om mee te begin, tik die nommers handmatig in sel C5 .
- Begin dan die nommers van sel B6 na sel C6 in te tik en Excel sal outomaties die patroon herken.
- Laastens, druk Enter .
Notas: Hierdie metode het 'n paarnadele, en daarom word dit nie aanbeveel vir alle gevalle wanneer jy nommers uit teksstringe moet onttrek nie. Die Flitsvul volg gewoonlik 'n patroon van die selle in 'n kolom of 'n reeks. Dus, die eerste 2 of 3 ekstraksies of berekeninge moet met die hand gedoen word om Excel te help om die algemene patroon van die resulterende waardes te absorbeer. Maar soms volg dit nie die presiese patroon wat ons nodig het nie, en daardeur sal dit sy eie patroon volg en vir jou 'n onooreenstemmende resultaat gee.
As ons byvoorbeeld twee nulle (00) uit moes onttrek die data wat gegee word, sal slegs een nul wys, nie twee nie. As jy dan getalle van die begin of die laaste posisies in 'n sel wil onttrek, sal dit ook tekswaardes saam met die getalle onttrek.
Lees Meer: Hoe om getalle na 'n spesifieke teks in Excel te onttrek (2 geskikte maniere)
7. Toepassing van VBA-kode om slegs getalle uit Excel-sel te onttrek
As jy belangstel om die <1 te gebruik> Excel VBA Makro om slegs getalle uit die selle te onttrek, dan wil jy die stappe hieronder volg. Ons sal jou wys hoe om die kode in die VBA Module venster te tik. Hierdie kode sal die gebruiker vra om die invoer- en uitvoerselreekse te spesifiseer.
Stappe:
- Eerstens, Druk ALT+F11 om die VBA -venster oop te maak.
- Kies dan vanaf die Voeg in -oortjie. die Module opdrag. 'n Nuwe modulevenster sal verskyn waar jy die kodes sal tik.
- Derdens, in jou module, plak die volgende kodes nadat jy gekopieer het.
8176
- Druk daarna F5 om die kode uit te voer. 'n Dialoogkassie genaamd " Invoerdataseleksie " sal verskyn.
- Kies dan al die teksselle (d.w.s. B5:B12 ) en druk OK .
- Daarna, 'n ander dialoogkassie met die naam " Uitvoersel-seleksie ” sal verskyn waar jy 'n spesifieke sel of reeks selle moet kies om die uitvoerdata of waardes te sien.
- Selekteer laastens die selreeks C5:C12 en druk Enter .
- Gevolglik sal jy die onttrekde nommers van sien die tekste op een slag. Ons sal dus die sewe vinnige metodes voltooi om slegs getalle uit Excel-sel te onttrek.
🔎 VBA-kode-uiteensetting
➤ Verklaar parameters
6516
- Hier in hierdie deel eerstens verklaar ons almal ons parameters as heelgetalle, stringwaardes of reekse van selle. Dan gee ons die name van ons dialoogkassies met “Invoerdataseleksie” en “Uitvoerselseleksie” .
➤ Definieer die tipes insette & Uitsette vir dialoogkassies
2551
- Nou definieer ons die parameters en hul tipes vir die dialoogkassies. Hier beteken die byvoeging van Type:=8 dieinvoer- en uitvoerdata sal uit verwysingselle of 'n reeks selle bestaan.
- Ons definieer ook dat as invoerdata nie gevind word nie, die subroetine dan sal stop. Deur hierdie makro te noem, sal die subroetine nie afbreek vir ontbrekende data nie, maar dit sal eerder ophou funksioneer.
➤ Kombinering van die funksies binne die kodelusse vir Iterasies
7803
- Laastens, dit is die belangrikste deel waar ons die funksies of formules toepas wat ons aan die tekste moet toeken om die resulterende waardes uit die stringe te vind .
- Een van die groot voordele van die kodering van 'n funksie vir Excel is dat dit nie nodig is om 'n groot formule in te tik soos ons in vorige metodes moes doen nie, aangesien VBA ingeboude opdragte het om For- of While-lusse te gebruik waar herhaling vir elke detail in 'n teksstring sonder enige moeite uitgevoer kan word.
Lees meer: Hoe om getalle van teks te skei in Excel VBA (3) Metodes)
Gevolgtrekking
Ons het vir jou 7 maklike metodes gewys om net getalle uit 'n Excel-sel te onttrek. Om slegs getalle uit 'n teksstring te onttrek is nie so eenvoudig soos dit lyk nie, want dit vereis 'n kombinasie van veelvuldige funksies, wat die finale formule of sintaksis ingewikkeld maak. Maar ons hoop hoe ons probeer het om die formules te illustreer deur die innerlike funksies af te breek, het jou gehelp om die sintaksis met 'n bietjie troos engemak.
As jy enige ander funksies of formules vind wat ons hier moes bygevoeg het, laat weet ons asseblief deur jou waardevolle kommentaar. Of jy kan 'n blik kyk na ons meer insiggewende en interessante artikels wat verband hou met Excel-funksies op hierdie webwerf.
dan, deur die vulhandvatsel te gebruik, sal ons daardie formule na die res van die selle kopieer.Stappe:
- Tik eerstens die formule in sel C5 .
=LEFT(B5,SUM(LEN(B5)-LEN(SUBSTITUTE(B5,{"0","1","2","3","4","5","6","7","8","9"},""))))
- Tweedens, druk Enter en jy sal die nommer 34 vir die eerste kode kry.
- Derdens, gebruik die Vulhandvatsel en dan om alle ander selle in kolom C<3 outomaties in te vul> .
🔎 Formule-ontleding
➤ PLAASVERVANGER(B5;{“0″,”1″,”2″,”3″,”4″,”5″,”6″,”7″,”8″,”9″}, ””)
- Hier sal die SUBSTITUTE -funksie die syfers (0-9) opeenvolgend vind en, indien gevind, sal dit vervang daardie syfer in sel B5 met 'n leë karakter elke keer. Dus, die funksie sal terugkeer as- {“34DTXRF”,,”34DTXRF”,,”34DTXRF”,,”4DTXRF”,,”3DTXRF”,,”34DTXRF”,,”34DTXRF”,,”34DTXRF”,,”34DTXRF”,,”34DTXRF”}.
➤ LEN(PLAATSING(B5;{“0″,”1″,”2″,”3″,”4″,”5″,”6″,”7 ″,”8″,”9″},””))
- Die LEN -funksie bepaal die aantal karakters in 'n string . So, hier sal die LEN -funksie al die karakters wat individueel in die tekste gevind word, tel deur die SUBSTITUTE -funksie. Die resulterende waardes sal hier in ons geval wees – {7,7,7,6,6,7,7,7,7,7}.
➤ LEN(B5)- LEN(PLAASVERVANGER(B5;{“0″,"1″,"2″,"3″,"4″,"5″,"6″,"7″,"8″,"9″},"" )))
- Nou, hierdie deel is dieaftrekking van die aantal karakters in sel B5 na alle ander getalle karakters wat individueel in die vorige afdeling van die formule gevind is. Dus, hier sal die resulterende waardes wees – {0,0,0,1,1,0,0,0,0,0}.
➤ SOM(LEN(B5) -LEN(PLAASVERVANGER(B5;{“0″,”1″,”2″,”3″,”4″,”5″,”6″,”7″,”8″,”9″},” ”)))
- Die SOM -funksie sal dan eenvoudig al die afgetrekte waardes wat gevind is optel & dus sal die resultaat hier wees, 2 (0+0+0+1+1+0+0+0+0+0).
➤ = LINKS(B5,SOM(LEN(B5)-LEN(PLAATSING(B5;{“0″,”1″,”2″,”3″,”4″,”5″,”6″,”7″, ”8″,”9″},””))))
- En hier is nou die laaste deel waar die LEFT -funksie sal gee die waardes terug met 'n presiese aantal karakters van links wat in die vorige afdeling van die formule gevind is. Aangesien ons die somwaarde as 2 gekry het, sal die LEFT -funksie hier slegs 34 van die teks 34DTXRF terugstuur.
➥ Verwant: Hoe om getalle in Excel te skei met behulp van formule (5 maniere)
2. Onttrek getalle uit die Regterkant van 'n teks
In hierdie afdeling sal ons die syfers of syfers uit die regterkant van die teksstring onttrek. Ons sal die REGS -, MIN - en SOEK -funksies hier gebruik.
Stappe:
- Om mee te begin, in ons datastel wat ons in sel moet tik C5 is-
=RIGHT(B5,LEN(B5) - MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, B5&"0123456789")) +1)
- Druk daarna Voer in en gebruik dan die Vulhandvatsel om die res van die selle outomaties in te vul.
🔎 Formule-ontleding
➤ B5&”0123456789″
- Hier is ons besig om waardes in die B5 sel aaneen te koppel met 0123456789 deur amps en (&) tussen te gebruik hulle en ons sal die resulterende waarde kry as- DTXRF340123456789.
➤ SOEK({0,1,2,3,4,5,6,7,8,9}, B5&”0123456789″)
- Nou sal die SOEK -funksie vir al die syfers (0-9) een vir een in soek die resulterende waarde verkry uit die vorige afdeling en sal die posisies van daardie 10 syfers in die karakters van DTXRF340123456789 terugstuur. Dus, hier sal ons resulterende waardes- {8,9,10,6,7,13,14,15,16,17} wees.
➤ MIN(SOEK({0) ,1,2,3,4,5,6,7,8,9}, B5&”0123456789″))
- Die MIN -funksie word gebruik om die laagste syfer of getal in 'n skikking te vind. Dus, hier sal die minimum of laagste waarde- 6 wees vanaf die skikking {8,9,10,6,7,13,14,15,16,17} wat in die voorafgaande afdeling van die formule gevind word .
➤ LEN(B5) – MIN(SOEK({0,1,2,3,4,5,6,7,8,9}, B5&”0123456789″ )) +1)
- Nou sal die aantal karakters in B5 gevind word deur die LEN funksie. Dan sal dit die waarde 6 aftrek (gevind in die laaste afdeling) en dan die resultaat terugstuur deur 1 by te tel. Hier in ons geval, dieresulterende waarde sal 2 (7-6+1) wees.
➤ REGS(B5,LEN(B5) – MIN(SOEK({0,1, 2,3,4,5,6,7,8,9}, B5&”0123456789″)) +1)
- Die REGTE funksie sal die gespesifiseerde aantal karakters van die laaste of regterkant van 'n string terugstuur. Na aanleiding van die resultaat wat deur die aftrekproses in die vorige afdeling gevind is, hier sal die REGS funksie die laaste 2 karakters van sel B5 wys , en dit sal 34 wees.
Lees meer: Hoe om getalle in een sel in Excel te skei (5 metodes)
3. Onttrek nommers uit enige deel van 'n teksstring
Nou, hier is 'n breë oplossing vir alle gevalle. Hierdie metode sal getalle of syfers uit enige posisie in 'n teksstring uittrek. Verder sal ons die TEXTJOIN , IFERROR , INDIREKTE , <1 gebruik> MID en RY funksioneer in hierdie metode.
Stappe:
- Tik eerstens die formule in jou bestemmingsel soos volg-
=TEXTJOIN("",TRUE,IFERROR((MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)*1),""))
- Dan, as jy gebruik Excel 2016 of hoër weergawe, druk dan Enter , anders druk Ctrl+Shift+Enter om kry die resultaat vir hierdie skikkingsformule.
- Na hierdie stap, outovul ander selle met die Vulhandvatsel en jy is klaar.
🔎 Formule-ontleding
➤ INDIREKTE(“1:”&LEN(B5))
- Die INDIREKTE -funksie word gebruik om 'n skikking van selwaardes as 'n verwysingsteks. Hier voeg die ampersand (&) -opdrag die lengte van die karakters van sel B5 aaneen met onvolledige reekssintaksis (1:) .
- So, hier sal die INDIREKTE -funksie al die getalle tussen 1 en die lengte van die karakters in sel B5
as 'n verwysingsteks.
➤ RY(INDIRECT(“1:”&LEN(B5)))
- Die RY -funksie vertel gewoonlik die rynommer van 'n sel. Maar hier in die INDIREKTE -funksie, aangesien geen verwysingsel genoem is nie, in hierdie geval, sal die RY -funksie al die waardes of getalle van die verwysingstekste wat in die INDIREKTE -funksie gestoor is.
- Nou, vir die 1ste sel B5 , sal die resulterende waardes deur hierdie RY en INDIREKTE funksies wees- {1;2;3;4;5;6; 7;8;9}.
➤ (MID(B5,RY(INDIREK(“1:”&LEN(B5))),1))
- Die MID -funksie sal jou die karakters van die middel van 'n teksstring laat bepaal, gegewe 'n beginposisie & lengte.
- Dus, hier vir al 9 posisies wat in die vorige afdeling gevind is, sal die MID -funksie nou al die karakters een vir een vir elke posisie wys & sal dus die waardes terugstuur as- {“1″;”9″;”“;”D”;”D”;”X”;”2″;”M”;”N”}.
➤ IFERROR((MID(B5,RY(INDIREK) (“1:”&LEN(B5))),1)*1),””)
- Nou, die IFERROR is 'n logiese funksie wat sal bepaal of 'n string 'n getal of iets anders is. As dit nie 'n string met getalle of syfers identifiseer nie, sal dit die waarde met 'n gedefinieerde teksopdrag terugstuur.
- In ons geval sal al die waardes wat in die laaste afdeling gevind word, met 1 vermenigvuldig word, en wanneer die resultate teruggestuur word as waardefoute vir letters of tekswaardes wat nie vermenigvuldig kan word nie, sal hul IFERROR -funksie die foute in leë stringe omskakel. Dus, ons resulterende waardes sal dan- {1;9;””;””;””;””;2;””;””} wees.
➤ =TEKSSLUIT (“”,TRUE,IFERROR((MID(B5,RY(INDIREK(“1:”&LEN(B5))),1)*1),””))
- En nou sal die laaste deel deur die TEXTJOIN -funksie uitgevoer word. Hierdie funksie word gebruik om twee stringe aaneen te voeg of te verbind met 'n gespesifiseerde skeidingsteken.
- Dus, die resulterende waardes wat ons in die voorafgaande afdeling gevind het, sal nou saamgevoeg word langs hierdie TEXTJOIN funksie. En dus kry ons die getal 192.
Lees meer: Hoe om veelvuldige getalle uit string in Excel te onttrek (6 metodes)
4. Nestel veelvuldige funksies om slegs getalle uit te bring
Nou sal ons vir jou 'n ander formule wys om slegs getalle uit enige posisie uit 'n Excel te onttreksel. Alhoewel dit dalk redelik kompleks lyk, sal ons die hele formule opbreek en probeer om al die kompakte funksies met gemak te verduidelik. Daarbenewens sal ons die IF , GROOT , INDEKS , <1 gebruik> SOMPRODUK , en ISNUMMER funksies in hierdie formule.
- Om mee te begin, tik hierdie formule in sel C5 . Jy moet die selverwysing slegs vervang op grond van jou eie sel in die sigblad en dan deur hierdie formule in te sluit, sal jy dadelik die verwagte resultaat kry. En hierdie formule werk perfek in enige weergawe van 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),"")
- Daarna moet jy Enter druk eers nadat jy die hele formule ingetik het en jy is klaar.
🔎 Formule-ontleding
Voordat die uiteensetting van hierdie massiewe & kompakte formule, kan ons dit in sommige dele skei soos-
=IF(A>0, SUMPRODUCT(B 1 *C 1 , B 2 *C 2 , ….B n C n ),””)
Hierdie sintaksis beteken as A groter as 0 is, dan is al die produkte van B n en C n sal tot die finale resultaat opsom. En as A nie groter as 0 is nie, sal die resultaat as 'n leë of leë sel terugkeer.
- A =SOM(LEN(B5)-LEN(PLAATSING(B5; {“0″,”1″,”2″,”3″,”4″,”5″,”6″,”7″,”8″, ”9”}, “”
- B = MID(0&B5, LARGE(INDEX(ISNUMBER(–MID(B5,RY(INDIREK(“$1 :$”&LEN(B5))),1))* ROW(INDIRECT(“$1:$”&LEN(B5))),0), ROW(INDIRECT(“$1:$”&LEN( B5))))+1,1)
- C = 10^RY(INDIREKTE(“$1:$”&LEN(B5)))/ 10),""
Verdeling van Deel A = SOM(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”}, “”)
- Die SUBSTITUTE -funksie sal elke keer alle syfers (0-9) een vir een in die teks 19 DDX2MN vind en sal dit vervang syfers met 'n leë string in die posisies van die syfers.
- Dus sal die resulterende waardes in 'n skikking wees- {“19 DDX2MN”,,”9 DDX2MN”,,”19 DDXMN”,,”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”}, “”))
- Die LEN -funksie sal nou die aantal karakters tel in alle stringwaardes wat van die vorige afdeling verkry is. Dus, hierdie funksie sal terugkeer as- {9,8,8,9,9,9,9,9,9,8}.
➤ LEN(B5)-LEN( PLAASVERVANGER(B5, {“0″,”1″,”2″,”3″,”4″,”5″,”6″,”7″,”8″,”9”}, “”))
- Nou in hierdie deel van die formule sal 'n aantal karakters in sel B5 al die getalle wat in gevind word, aftrek