Tabela e përmbajtjes
Tutoriali tregon se si të nxirret një numër nga vargjet e ndryshme të tekstit në Excel duke përdorur formulat dhe mjetin "Ekstrakt".
Kur bëhet fjalë për nxjerrjen e një pjese të vargut teksti me një gjatësi të caktuar , Excel ofron tre funksione Substring (Majtas, Djathtas dhe Mid) për të trajtuar shpejt detyrën. Kur bëhet fjalë për nxjerrjen e numrave nga një varg alfanumerik, Microsoft Excel nuk ofron... asgjë.
Për të marrë një numër nga një varg në Excel, duhet pak zgjuarsi, pak durim dhe një sërë funksionesh të ndryshme folezuar në njëra-tjetrën. Ose, mund të ekzekutoni mjetin Ekstrakt dhe ta kryeni punën me një klikim të mausit. Më poshtë do të gjeni detaje të plota për të dyja metodat.
Si të nxjerrni numrin nga fundi i vargut të tekstit
Kur keni një kolonë vargjesh alfanumerike ku numri vjen pas tekst, mund të përdorni formulën e mëposhtme për ta marrë atë.
Djathtas( qeliza, LEN( qeliza) - MAX(IF(ISNUMBER(MID( qeliza, RRESHT(INDIRECT("1:"&LEN( qeliza))), 1) *1)=FALSE, RRESHT(INDIRECT("1:"&LEN( qeliza))), 0)))Ne do të ndalemi në logjikën e formulës pak më vonë. Tani për tani, thjesht zëvendësoni qelizën me një referencë për qelizën që përmban vargun origjinal (A2 në rastin tonë) dhe futni formulën në çdo qelizë boshe në të njëjtin rresht, thoni në B2:
=RIGHT(A2, LEN(A2) - MAX(IF(ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0)))
Kjo formulë merr numër vetëm nga fundi. Nëse një varg gjithashtu ka numra në fillim ose në mes, ata janëinjoruar:
Nxjerrja kryhet me funksionin RIGHT që i përket kategorisë së funksioneve të tekstit. Dalja e këtij funksioni është gjithmonë tekst . Në rastin tonë, rezultati është një nënvarg numerik , i cili për sa i përket Excel-it është gjithashtu tekst, jo numër.
Nëse ju duhet që rezultati të jetë një numër (që mund ta përdorni në llogaritjet e mëtejshme), më pas mbështillni formulën në funksionin VALUE ose kryeni një operacion aritmetik që nuk e ndryshon rezultatin, le të themi, shumëzoni me 1 ose shtoni 0. Për të kapur gabimet në vargjet që nuk përmbajnë një numër i vetëm, përdorni funksionin IFERROR. Për shembull:
=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)))), "")
ose
=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, "")
Shënim. Në Excel-in Dynamic Array (Office 365 dhe 2021), ju futni formulën në mënyrën e zakonshme me tastin Enter. Në Excel 2019 dhe më herët, funksionon vetëm si një formulë grupi, prandaj mos harroni të shtypni Ctrl + Shift + Enter për ta përfunduar atë.
Si funksionon kjo formulë:
Për të nxjerrë një numër nga një varg alfanumerik, gjëja e parë që duhet të dini është se ku të filloni nxjerrjen. Pozicioni i karakterit të fundit jo-numerik në një varg përcaktohet me ndihmën e kësaj formule të ndërlikuar:
MAX(IF(ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN( A2))), 1)*1)=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0))
Për të kuptuar logjikën, le ta hetojmë atë nga brenda :
Kombinimi ROW(INDIRECT("1:"&LEN(A2)))krijon një sekuencë numrash që korrespondojnë me totalin e karaktereve në vargun burimor (A2), dhe ne i shërbejmë këta numra sekuencialë në MID si numra fillestarë:
MID(A2, {1;2;3;4 ;5;6;7;8}, 1)
Funksioni MID tërheq çdo karakter individual nga A2 dhe i kthen ato si një grup:
{"0";"5";" -";"E";"C";"-";"0";"1"}
Meqenëse MID është një funksion teksti, dalja e tij është gjithmonë tekst (siç mund ta vini re, të gjithë karakteret janë të mbyllura në thonjëza). Për t'i kthyer ato numerike në numra, ne e shumëzojmë grupin me 1 (mohimi i dyfishtë --MID() do të ketë të njëjtin efekt). Rezultati i këtij operacioni është një grup numrash dhe #VALUE! gabime që përfaqësojnë karaktere jo numerike:
ISNUMBER({0;5;#VALUE!;#VALUE!;#VALUE!;#VALUE!;0;1})
Funksioni ISNUMBER vlerëson çdo element të grupit dhe jep verdiktin e tij në formën e vlerave Boolean - TRUE për numrat, FALSE për çdo gjë tjetër:
{TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE}
Ky grup shkon në testin logjik të funksionit IF, ku secili element i grupit krahasohet me FALSE:
IF({TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE ;TRUE}=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0)
Për çdo FALSE (vlerë jo numerike), një funksion tjetër ROW(INDIRECT()) kthehet pozicioni i tij relativ në varg. Për çdo TRUE (vlerë numerike), kthehet një zero. Vargu që rezulton duket sivijon:
{0;0;3;4;5;6;0;0}
Pjesa tjetër është e lehtë. Funksioni MAX gjen numrin më të lartë në grupin e mësipërm, që është pozicioni i vlerës së fundit jonumerike në vargun (6 në rastin tonë). Thjesht, zbritni atë pozicion nga gjatësia totale e vargut të kthyer nga LEN dhe kaloni rezultatin në RIGHT për t'i bërë të ditur se sa karaktere duhet të nxjerrë nga ana e djathtë e vargut:
RIGHT(A2, LEN (A2) - 6)
U krye!
Si të nxirret një numër nga fillimi i vargut të tekstit
Nëse jeni duke punuar me regjistrime ku teksti shfaqet pas numrit, mund të nxirrni numrin nga fillimi i një vargu duke përdorur këtë formulë të përgjithshme:
LEFT( qeliza, MATCH(FALSE, ISNUM(MID( qeliza, RRESHT(INDIRECT("1: "&LEN( qeliza)+1)), 1) *1), 0) -1)Me vargun origjinal në A2, përdorni formulën e mëposhtme për të marrë numrin:
=LEFT(A2, MATCH(FALSE, ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2)+1)), 1) *1), 0) -1)
Pavarësisht se sa shifra janë në mes ose në fund, nxirret vetëm numri fillestar:
Shënim. Në Excel 365 dhe Excel 2021, për shkak të mbështetjes për vargje dinamike, një formulë e rregullt funksionon mirë. Në Excel 2019 dhe më herët, duhet të shtypni Ctrl + Shift + Enter për ta bërë atë në mënyrë eksplicite një formulë grupi .
Si funksionon kjo formulë:
Këtu, ne përsëri përdorim kombinimin e funksioneve ROW, INDIRECT dhe LEN për të krijuar një sekuencë numrash të barabartë me totalin e karaktereve në vargun burimor plus 1 (roli i atijkarakteri shtesë do të bëhet i qartë pak më vonë).
ROW(INDIRECT("1:"&LEN(A2)+1))
MID dhe ISNUMBER bëjnë të njëjtën punë si në Shembulli i mëparshëm - MID tërheq karaktere individuale dhe ISNUMBER i konverton ato në vlerat logjike. Vargu që rezulton i TRUE dhe FALSE shkon në funksionin MATCH si një grup kërkimi:
MATCH(FALSE, {TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;FALSE}, 0)
MATCH njehson një pozicion relativ të të parës FALSE, duke na dhënë pozicionin e karakterit të parë jonumerik në varg (3 në A2). Për të nxjerrë numrat e mëparshëm, ne zbresim 1 nga pozicioni i karakterit të parë të tekstit dhe i shërbejmë diferencës në num_chars argumentin e funksionit LEFT:
LEFT(A2, 3-1)
Tani, kthehuni te një karakter "shtesë" në sekuencën e krijuar nga ROW(INDIRECT()+1)). Siç e dini tashmë, kjo sekuencë ofron pikat e fillimit për funksionin MID. Pa +1, MID do të nxirrte saktësisht aq karaktere sa ka në vargun origjinal. Nëse vargu përmban vetëm numra, ISNUMBER do të kthejë vetëm TRUE ndërsa MATCH ka nevojë për të paktën një FALSE. Për ta siguruar këtë, ne shtojmë një karakter më shumë në gjatësinë totale të vargut, të cilin funksioni MID do ta konvertonte në një varg bosh. Për shembull, në B7, MID kthen këtë grup:
{"1";"2";"3";"4";""}
Shënim. Siç është rasti me funksionin RIGHT, LEFT kthen gjithashtu një numerik substring , që teknikisht është tekst, jo numër. Për të marrë rezultatin si numër dhe jo si varg numerik, vendosni formulën në funksionin VALUE ose shumëzojeni rezultatin me 1 siç tregohet në shembullin e parë.
Si të merrni një numër nga çdo pozicion në një varg
Nëse detyra juaj nënkupton nxjerrjen e numrit nga kudo në një varg, mund të përdorni formulën e mëposhtme befasuese të publikuar në forumin MrExcel:
=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)
Aty ku A2 është varg teksti origjinal.
Zbërthimi i kësaj formule do të kërkonte një artikull të veçantë, kështu që thjesht mund ta kopjoni në fletën tuaj të punës për t'u siguruar që funksionon vërtet :)
Me shqyrtimin e rezultateve, megjithatë, mund të vëreni një pengesë të parëndësishme - nëse vargu burimor nuk përmban një numër, formula kthen zero, si në rreshtin 6 në pamjen e mësipërme. Për ta rregulluar këtë, mund ta mbështillni formulën në deklaratën IF, testi logjik i së cilës kontrollon nëse vargu burimor përmban ndonjë numër. Nëse ndodh, formula e nxjerr numrin, përndryshe kthen një varg bosh:
=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),"")
Siç tregohet në pamjen e mëposhtme të ekranit, formula e përmirësuar funksionon bukur (faleminderit Alex, mësuesit tonë të Excel, për këtë përmirësim):
Ndryshe nga të gjithë shembujt e mëparshëm, rezultati i kësaj formule është numri . Për t'u siguruar për këtë, thjesht vini re vlerat e rreshtuara djathtas në kolonën B dhe zerot e prera kryesore.
Këshillë. Në Excel 365 -Excel 2019, ka një zgjidhje shumë më të thjeshtë me ndihmën e funksionit TEXTJOIN. Ju lutemi shikoni Si të hiqni tekstin dhe të mbani numrat.
Nxjerrja e numrit nga vargu i tekstit me Ultimate Suite
Siç e keni parë sapo, nuk ka një formulë të parëndësishme Excel për të tërhequr numrin nga një varg teksti. Nëse keni vështirësi me të kuptuarit e formulave ose t'i ndryshoni ato për grupet tuaja të të dhënave, mund t'ju pëlqejë kjo mënyrë e thjeshtë për të marrë numra nga vargu në Excel.
Me Suite tonë Ultimate të shtuar në shiritin tuaj të Excel, kjo është mënyra se si ju mund të marrë shpejt numrin nga çdo varg alfanumerik:
- Shko te grupi Ablebits Data > Text dhe kliko Ekstrakt :
- Zgjidhni të gjitha qelizat me vargjet burimore.
- Në panelin e mjetit Ekstrakt, zgjidhni butonin radio Nxjerrja e numrave .
- Në varësi të faktit nëse dëshironi që rezultatet të jenë formula ose vlera, zgjidhni kutinë Fut si formulë ose lëreni të pazgjedhur (parazgjedhja).
Këshilla ime është të zgjidhni këtë kuti nëse dëshironi që numrat e nxjerrë të përditësohen automatikisht sapo të bëhen ndryshime në vargjet burimore. Nëse dëshironi që rezultatet të jenë të pavarura nga vargjet origjinale (p.sh. në rast se planifikoni të hiqni të dhënat burimore në një moment të mëvonshëm), atëherë mos zgjidhni këtë kuti.
- Klikoni butonin Fut rezultatet . U krye!
Si në shembullin e mëparshëm, rezultatet enxjerrja janë numra , që do të thotë se ju jeni të lirë të numëroni, të shumoni, të mesataresoni ose të kryeni ndonjë llogaritje tjetër me ta.
Në këtë shembull, ne kemi zgjedhur t'i fusim rezultatet si vlerat , dhe shtesa bëri pikërisht atë që u kërkua:
Nëse kutia e kontrollit Fut si formulë ishte zgjedhur, ju' d vëzhgoni një formulë në shiritin e formulave. Kuriozë të dini se cilën? Thjesht shkarkoni provën e Ultimate Suite dhe shikoni vetë :)
Shkarkimet e disponueshme
Numri i Ekstraktit të Excel - modeli i librit të punës (skedari .xlsx)
Ultimate Suite - versioni i provës (.exe skedar)