Edukien taula
Tutorialak Excel-en hainbat testu-kateetatik zenbakia nola atera erakusten du formulak eta Atera tresna erabiliz.
Luzera jakin bateko testu-kate baten zati bat ateratzeko orduan. , Excel-ek hiru azpikate funtzio eskaintzen ditu (Ezkerra, Eskuinera eta Erdia) zeregina azkar kudeatzeko. Kate alfanumeriko batetik zenbakiak ateratzeko orduan, Microsoft Excel-ek ez du ezer eskaintzen.
Excel-en kate batetik zenbaki bat lortzeko, asmamen apur bat, pazientzia pixka bat eta funtzio ezberdin mordoa behar dira. elkarren artean habiatuta. Edo, Extract tresna exekutatu eta lana egin dezakezu saguaren klik batekin. Jarraian, bi metodoei buruzko xehetasun guztiak aurkituko dituzu.
Nola atera zenbakia testu-katearen amaieratik
Kate alfanumerikoen zutabe bat duzunean, zenbakia atzetik datorrenean testua, formula hau erabil dezakezu hura lortzeko.
RIGHT( gelaxka, LEN( gelaxka) - MAX(IF(ISNUMBER(MID( gelaxka<2)>, ERRENKADA(ZEHENKOAK("1:"&LEN( gelaxka ))), 1) *1)=GEZURRERA, ERRENKADA(ZEHENKOAK("1:"&LEN( gelaxka<) 2>))), 0)))Pixka bat geroago formularen logikan luzatuko gara. Oraingoz, ordezkatu gelaxka jatorrizko katea duen gelaxkaren erreferentzia batekin (A2 gure kasuan), eta sartu formula errenkada bereko edozein gelaxka hutsetan, esan B2-n:
=RIGHT(A2, LEN(A2) - MAX(IF(ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0)))
Formula honek amaieratik soilik lortzen du zenbakia. Kate batek hasieran edo erdian ere zenbakiak baditu, halaxe dirabaztertu:
Erauzketa Testu-funtzioen kategoriari dagokion ESKUBINA funtzioarekin egiten da. Funtzio honen irteera testua da beti. Gure kasuan, emaitza zenbakizko azpikatea da, Excel-en aldetik ere testua, ez zenbakia.
Emaitza zenbakia izan behar baduzu. (kalkulu gehiagotan erabil dezakezuna), ondoren itzulbiratu formula BALIOA funtzioan edo egin emaitza aldatzen ez duen eragiketa aritmetiko bat, esate baterako, biderkatu 1ez edo gehitu 0. Arik ez duten kateetan akatsak atzemateko zenbaki bakarra, erabili IFERROR funtzioa. Adibidez:
=IFERROR(VALUE(RIGHT(A2, LEN(A2) - MAX(IF(ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1)*1)=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0)))), "")
edo
=IFERROR(RIGHT(A2, LEN(A2) - MAX(IF(ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0))) +0, "")
Oharra. Dynamic Array Excel-en (Office 365 eta 2021), formula ohiko moduan sartzen duzu Sartu teklarekin. Excel 2019-n eta aurrekoetan, matrize-formula gisa bakarrik funtzionatzen du, beraz, gogoratu Ctrl + Shift + Sartu sakatu behar duzula osatzeko.
Nola funtzionatzen du formula honek:
Zenbakia kate alfanumeriko batetik ateratzeko, jakin behar duzun lehenengo gauza da erauzketa non hasi. Kate bateko azken karaktere ez-zenbakikoaren posizioa formula delikagarri honen laguntzaz zehazten da:
MAX(IF(ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN()) A2))), 1)*1)=GEZURRA, ERRENKADA(ZEHARKOAK("1:"&LEN(A2))), 0))
Logika ulertzeko, iker dezagun barrutik :
ROW(ZEHARKOAK ("1:"&LEN(A2))) konbinazioasorburuko katearen karaktere osoari dagokion zenbaki-segida sortzen du (A2), eta zenbaki sekuentzial hauek MID-ari hasierako zenbaki gisa zerbitzatzen dizkiogu:
MID(A2, {1;2;3;4 ;5;6;7;8}, 1)
MID funtzioak A2-tik karaktere bakoitza ateratzen du eta array gisa itzultzen ditu:
{"0";"5";" -";"E";"C";"-";"0";"1"}
MID testu-funtzioa denez, bere irteera beti testua da (ohar dezakezun bezala, karaktere guztiak komatxoen artean sartzen dira). Zenbakizkoak zenbaki bihurtzeko, matrizea 1ez biderkatzen dugu (ezeztapen bikoitza --MID() eragin bera izango du). Eragiketa honen emaitza zenbaki eta #BALOIA sorta bat da! zenbakizko karaktereak ordezkatzen dituzten erroreak:
ISNUMBER({0;5;#BALIOA!;#BALIOA!;#BALIOA!;#BALIOA!;0;1})
ISNUMBER funtzioa arrayko elementu bakoitza ebaluatzen du eta bere epaia balio boolearren moduan ematen du - EGIA zenbakietarako, GEZURRA beste edozertarako:
{EGIA;EGIA;GEZURRA;GEZURRA;GEZURRA;GEZURRA;EGIA;EGIA
Matrize hau IF funtzioaren proba logikora doa, non matrizeko elementu bakoitza FALSErekin alderatzen den:
IF({EGIA;EGIA;GEZURRA;GEZURRA;GEZURRA;GEZURRA;EGIA) ;EGIA}=FALSE, ROW(ZEHARKOAK("1:"&LEN(A2))), 0)
FALSE (balio ez zenbakoi) bakoitzeko, beste ROW(ZEHENKOAK()) funtzioak itzultzen ditu bere posizio erlatiboa katean. EGIA (zenbakizko balio) bakoitzeko, zero bat itzultzen da. Sortzen den matrizeak itxura duhonako hau:
{0;0;3;4;5;6;0;0}
Gainerakoa erraza da. MAX funtzioak goiko matrizean zenbakirik altuena aurkitzen du, hau da, katearen azken balio ez-numerikoaren posizioa (6 gure kasuan). Besterik gabe, kendu posizio hori LEN-ek itzultzen duen katearen luzera osotik, eta pasatu emaitza ESKUINERA katearen eskuineko aldean zenbat karaktere atera behar dituen jakin dezan:
ESKUINERA(A2, LEN (A2) - 6)
Eginda!
Nola atera zenbakia testu-katearen hasieratik
Testua zenbakiaren ondoren agertzen den erregistroekin lan egiten ari bazara, dezakezu atera zenbakia kate baten hasieratik formula generiko hau erabiliz:
LEFT( gelaxka , MATCH(FALSE, ISNUMBER(MID( gelaxka , ROW(ZEHARK("1:): "&LEN( gelaxka )+1)), 1) *1), 0) -1)A2-ko jatorrizko katearekin, erabili formula hau zenbakia lortzeko:
=LEFT(A2, MATCH(FALSE, ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2)+1)), 1) *1), 0) -1)
Erdian edo amaieran zenbat zifra dauden, hasierako zenbakia bakarrik ateratzen da:
Oharra. Excel 365 eta Excel 2021-en, matrize dinamikoetarako laguntza dela eta, formula arrunt batek ondo funtzionatzen du. Excel 2019 eta lehenago, Ctrl + Shift + Sartu sakatu beharko zenuke esplizituki array formula bihurtzeko.
Nola funtzionatzen duen formula:
Hemen, berriz ere ROW, ZERKABERAKO eta LEN funtzioen konbinazioa erabiltzen dugu sorburu-katearen karaktereen guztizkoaren berdina den zenbaki-segida bat sortzeko (horren rolakaraktere gehigarriak argitu egingo dira pixka bat geroago).
ROW(INDIRECT("1:"&LEN(A2)+1))
MID eta ISNUMBER-ren lan bera egiten dute. aurreko adibidea - MIDek karaktere indibidualak ateratzen ditu eta ISNUMBER balio logikoetara bihurtzen ditu. Ondorioz, EGIA eta GEZURren matrizea MATCH funtziora doa bilaketa-matrize gisa:
MATCH(FALSE, {TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;FALSE}, 0)
MATCH-ek lehen FALSEren posizio erlatiboa kalkulatzen du, katearen lehenengo karaktere ez-zenbakikoaren posizioa (3 A2-n) ematen diguna. Aurreko zenbakiak ateratzeko, 1 kentzen dugu lehenengo testu-karakterearen posiziotik eta aldea LEFT funtzioaren num_chars argumentuari balioko diogu:
LEFT(A2, 3-1)
Orain, itzuli ROW(INDIRECT()+1)-k sortutako sekuentziako karaktere "gehigarri batera". Dagoeneko dakizuenez, sekuentzia honek MID funtzioaren abiapuntuak ematen ditu. +1 gabe, MID-ek jatorrizko kateak adina karaktere aterako lituzke. Kateak zenbakiak baino ez baditu, ISNUMBER EGIA bakarrik itzuliko du MATCH-ek FALSE bat behar duen bitartean. Hori ziurtatzeko, karaktere bat gehitzen diogu katearen guztizko luzerari, eta MID funtzioak kate huts bihurtuko luke. Adibidez, B7n, MID-ek array hau itzultzen du:
{"1";"2";"3";"4";""}
Oharra. RIGHT funtzioarekin gertatzen den bezala, LEFT-ek ere zenbaki bat itzultzen duazpikatea , hau da, teknikoki testua, ez zenbakia. Emaitza zenbaki gisa eta ez zenbakizko kate gisa lortzeko, habiaratu formula BALIOA funtzioan edo biderkatu emaitza 1ez lehen adibidean erakusten den moduan.
Nola lortu zenbakia kate bateko edozein posiziotatik
Zure zereginak kate bateko edozein lekutatik zenbakia ateratzea suposatzen badu, MrExcel foroan argitaratutako formula harrigarri hau erabil dezakezu:
=SUMPRODUCT(MID(0&A2, LARGE(INDEX(ISNUMBER(--MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1)) * ROW(INDIRECT("1:"&LEN(A2))), 0), ROW(INDIRECT("1:"&LEN(A2))))+1, 1) * 10^ROW(INDIRECT("1:"&LEN(A2)))/10)
Non A2 den. jatorrizko testu-katea.
Formula hau apurtzeko aparteko artikulu bat beharko litzateke, beraz, zure lan-orrian kopiatu dezakezu benetan funtzionatzen duela ziurtatzeko :)
Emaitzak aztertzean, ordea, eragozpen hutsal bat nabarituko duzu: iturburu-kateak zenbakirik ez badu, formulak zero itzultzen du, goiko pantaila-argazkiko 6. errenkadan bezala. Hau konpontzeko, formula IF adierazpenean bil dezakezu, zeinaren proba logikoak iturburu-kateak zenbakiren bat duen egiaztatzen du. Hala egiten badu, formulak zenbakia ateratzen du, bestela kate huts bat itzultzen du:
=IF(SUM(LEN(A2)-LEN(SUBSTITUTE(A2, {"0","1","2","3","4","5","6","7","8","9"}, "")))>0, SUMPRODUCT(MID(0&A2, LARGE(INDEX(ISNUMBER(--MID(A2,ROW(INDIRECT("$1:$"&LEN(A2))),1))* ROW(INDIRECT("$1:$"&LEN(A2))),0), ROW(INDIRECT("$1:$"&LEN(A2))))+1,1) * 10^ROW(INDIRECT("$1:$"&LEN(A2)))/10),"")
Beheko pantaila-argazkian erakusten den moduan, formula hobetuak ederki funtzionatzen du (Zorionak Alex, gure Excel guru, hobekuntza honetarako):
Aurreko adibide guztietan ez bezala, formula honen emaitza zenbakia da. Hori ziurtatzeko, ikusi besterik ez dago B zutabean eskuinera lerrokatuta dauden balioak eta hasierako zero moztuak.
Aholkua. Excel 365-enExcel 2019, irtenbide askoz errazagoa dago TEXTJOIN funtzioaren laguntzarekin. Mesedez, ikusi Nola kendu testua eta zenbakiak gorde.
Atera ezazu zenbakia testu-katetik Ultimate Suite-rekin
Ikusi berri duzun bezala, ez dago Excel formula hutsal bat testu-kate batetik zenbakia ateratzeko. Formulak ulertzeko edo zure datu-multzoetarako doitzeko zailtasunak badituzu, baliteke Excel-eko katetik zenbakia lortzeko modu erraz hau gustatzea.
Gure Ultimate Suite zure Excel zintarekin gehituta, horrela duzu. edozein kate alfanumerikoko zenbakia azkar berreskura dezake:
- Joan Ablebits Data fitxara > Testua taldera eta sakatu Atera :
- Hautatu iturburu-kateak dituzten gelaxka guztiak.
- Atera tresnaren panelean, hautatu Atera zenbakiak irrati-botoia.
- Emaitzak formulak edo balioak izatea nahi duzunaren arabera, hautatu Txertatu formula gisa koadroa edo utzi hautatu gabe (lehenetsia).
Nire gomendioa lauki hau hautatzea da ateratako zenbakiak automatikoki eguneratzea nahi baduzu iturburu-kateetan aldaketak egin bezain laster. Emaitzak jatorrizko kateekiko independenteak izatea nahi baduzu (adibidez, iturburuko datuak geroago ezabatzeko asmoa baduzu), ez hautatu lauki hau.
- Sakatu Txertatu emaitzak botoian. Eginda!
Aurreko adibidean bezala, emaitzakerauzketa zenbakiak dira, hau da, libre zaude haiekin zenbatzea, batuketa, batez bestekoa edo beste edozein kalkulu egiteko.
Adibide honetan, emaitzak <9 gisa txertatzea aukeratu dugu>balioak , eta gehigarriak eskatutakoa egin zuen:
Txertatu formula gisa kontrol-laukia hautatu bazen, d behatu formula formula-barran. Jakin-mina zein den jakiteko? Deskargatu Ultimate Suite-ren proba eta ikusi zuk zeuk :)
Erabilgarri dauden deskargak
Excel Extract zenbakia - adibidea lan-koadernoa (.xlsx fitxategia)
Ultimate Suite - probako bertsioa (.exe fitxategia)