Excel: Izraksts no teksta virknes

  • Dalīties Ar Šo
Michael Brown

Šajā pamācībā ir parādīts, kā iegūt skaitli no dažādām teksta virknēm programmā Excel, izmantojot formulas un rīku Izraksts.

Lai ātri veiktu uzdevumu, Excel ir pieejamas trīs apakšvirkņu funkcijas (kreisā, labā un vidusdaļa), kas ļauj iegūt daļu no noteikta garuma teksta virknes. Kad no burtu un ciparu virknes jāizdala skaitļi, Microsoft Excel nav pieejams... nekas.

Lai Excel programmā Excel no virknes iegūtu skaitli, ir nepieciešama neliela izdomu deva, pacietība un virkne dažādu funkciju, kas ievietotas cita citā. Vai arī varat palaist rīku Ekstrahēšana, un darbs tiks paveikts ar vienu peles klikšķi. Tālāk atradīsiet sīkāku informāciju par abām metodēm.

    Kā iegūt numuru no teksta virknes beigām

    Ja jums ir burtu un ciparu virkņu sleja, kurā skaitlis ir aiz teksta, varat izmantot šādu formulu, lai to iegūtu.

    TAISNĪBA( šūna , LEN( šūna ) - MAX(IF(ISNUMBER(MID( šūna , ROW(INDIRECT("1:"&LEN( šūna )))), 1) *1)=FALSE, ROW(INDIRECT("1:"&LEN( šūna ))), 0)))

    Par formulas loģiku mēs runāsim nedaudz vēlāk. Pagaidām vienkārši nomainiet šūna ar atsauci uz šūnu, kurā atrodas sākotnējā virkne (mūsu gadījumā A2), un ievadiet formulu jebkurā tukšā tās pašas rindas šūnā, piemēram, B2:

    =PRAVA(A2, LEN(A2) - MAX(IF(ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0))))))

    Šī formula iegūst skaitli tikai no beigām. Ja virknei ir skaitļi arī sākumā vai vidū, tie tiek ignorēti:

    Izvilkšana tiek veikta ar funkciju RIGHT, kas pieder kategorijai Teksta funkcijas. Šīs funkcijas izeja vienmēr ir šāda. teksts Mūsu gadījumā rezultāts ir skaitliskā apakšvirkne , kas Excel programmā arī ir teksts, nevis skaitlis.

    Ja jums ir nepieciešams, lai rezultāts būtu numurs (ko var izmantot turpmākajos aprēķinos), pēc tam formulu ietveriet funkcijā VALUE vai veiciet aritmētisku darbību, kas nemaina rezultātu, piemēram, reiziniet ar 1 vai pieskaitiet 0. Lai konstatētu kļūdas virknēs, kurās nav neviena skaitļa, izmantojiet funkciju IFERROR. Piemēram:

    =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)))), "")

    vai

    =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, ""))

    Piezīme. Programmā Dynamic Array Excel (Office 365 un 2021) formulu ievadiet parastajā veidā, izmantojot taustiņu Enter. Programmā Excel 2019 un agrākajos modeļos tā darbojas tikai kā masīva formula, tāpēc, lai to pabeigtu, neaizmirstiet nospiest kombinācijas Ctrl + Shift + Enter.

    Kā šī formula darbojas:

    Lai no burtu un ciparu virknes iegūtu skaitli, vispirms ir jāzina, no kurienes sākt iegūšanu. Pēdējā neskaitļa zīmes pozīciju virknē nosaka, izmantojot šo sarežģīto formulu:

    MAX(IF(ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1)*1)=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0)))

    Lai saprastu loģiku, izpētīsim to no iekšpuses:

    ROW(INDIRECT("1:"&LEN(A2))) kombinācija izveido numuru secību, kas atbilst kopējam rakstzīmju skaitam avota virknē (A2), un mēs šos secīgos numurus izmantojam MID kā sākuma numurus:

    MID(A2, {1;2;3;4;5;6;7;8}, 1)

    MID funkcija izvelk katru atsevišķu rakstzīmi no A2 un atgriež to kā masīvu:

    {"0";"5";"-";"E";"C";"-";"0";"1"}

    Tā kā MID ir teksta funkcija, tās izejas rezultāts vienmēr ir teksts (kā redzat, visas rakstzīmes ir ievietotas pēdiņās). Lai skaitliskos vienādojumus pārvērstu skaitļos, mēs masīvu reizinām ar 1 (dubultā noliegšana --MID() dos tādu pašu efektu). Šīs operācijas rezultāts ir skaitļu un #VALUE! kļūdu masīvs, kas attēlo rakstzīmes, kas nav skaitļi:

    ISNUMBER({0;5;#VĒRTĪBA!;#VĒRTĪBA!;#VĒRTĪBA!;#VĒRTĪBA!;#VĒRTĪBA!;0;1})

    Funkcija ISNUMBER izvērtē katru masīva elementu un sniedz savu spriedumu kā Būla vērtību - TRUE skaitļiem, FALSE jebkam citam:

    {TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE}

    Šis masīvs tiek nodots funkcijas IF loģiskajam testam, kurā katrs masīva elements tiek salīdzināts ar FALSE:

    IF({TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE}=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0)

    Katrai FALSE (neskaitliska vērtība) funkcija ROW(INDIRECT()) atgriež tās relatīvo pozīciju rindā. Katrai TRUE (skaitliska vērtība) tiek atgriezta nulle. Iegūtais masīvs izskatās šādi:

    {0;0;3;4;5;6;0;0}

    Pārējais ir vienkārši. MAX funkcija atrod lielāko skaitli iepriekš minētajā masīvā, kas ir pēdējās neskaitliskās vērtības pozīcija virknē (mūsu gadījumā 6). Vienkārši atņemiet šo pozīciju no virknes kopējā garuma, ko atgrieza LEN, un nododiet rezultātu RIGHT, lai tā zinātu, cik rakstzīmju jāizdala no virknes labās puses:

    RIGHT(A2, LEN(A2) - 6)

    Paveikts!

    Kā iegūt numuru no teksta virknes sākuma

    Ja strādājat ar ierakstiem, kuros teksts parādās aiz skaitļa, varat iegūt skaitli no virknes sākuma, izmantojot šo vispārīgo formulu:

    LEFT( šūna , MATCH(FALSE, ISNUMBER(MID( šūna , ROW(INDIRECT("1:"&LEN( šūna )+1)), 1) *1), 0) -1)

    Lai iegūtu skaitli, izmantojot sākotnējo virkni A2, izmantojiet šādu formulu:

    =LEFT(A2, MATCH(FALSE, ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2)+1))), 1) *1), 0) -1))

    Neatkarīgi no tā, cik ciparu ir vidū vai beigās, tiek iegūts tikai sākuma skaitlis:

    Piezīme. Excel 365 un Excel 2021, pateicoties dinamisko masīvu atbalstam, parastā formula darbojas labi. 2019. gada un agrākajos Excel versijās ir jānospiež Ctrl + Shift + Enter, lai to nepārprotami padarītu par formulu. masīva formula .

    Kā šī formula darbojas:

    Arī šajā gadījumā mēs izmantojam ROW, INDIRECT un LEN funkciju kombināciju, lai izveidotu skaitļu virkni, kas ir vienāda ar rakstzīmju kopskaitu avota virknē plus 1 (šīs papildu rakstzīmes loma kļūs skaidra nedaudz vēlāk).

    ROW(INDIRECT("1:"&LEN(A2)+1))

    MID un ISNUMBER veic to pašu darbu kā iepriekšējā piemērā - MID izvelk atsevišķas rakstzīmes, bet ISNUMBER pārvērš tās loģiskajās vērtībās. Iegūtais TRUE un FALSE masīvs nonāk MATCH funkcijā kā meklēšanas masīvs:

    MATCH(FALSE, {TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;FALSE}, 0)

    MATCH aprēķina pirmā FALSE relatīvo pozīciju, tādējādi iegūstot pirmā neskaitliskā simbola pozīciju rindā (3 A2). Lai iegūtu iepriekšējos skaitļus, no pirmā teksta simbola pozīcijas atņemam 1 un starpību pasniedzam uz num_chars funkcijas LEFT arguments:

    LEFT(A2, 3-1)

    Tagad atgriežamies pie "papildu" rakstzīmes ROW(INDIRECT()+1)) ģenerētajā secībā. Kā jau zināt, šī secība nodrošina sākuma punktus MID funkcijai. Bez +1 MID iegūtu tieši tik rakstzīmju, cik ir sākotnējā rindā. Ja rindā ir tikai skaitļi, ISNUMBER atgriezīs tikai TRUE, bet MATCH nepieciešams vismaz viens FALSE. Lai to nodrošinātu, mēs pievienojam vienuvairāk rakstzīmju līdz kopējam virknes garumam, ko MID funkcija pārvērš par tukšu virkni. Piemēram, B7 pozīcijā MID atgriež šo masīvu:

    {"1"; "2"; "3"; "4";""}

    Piezīme. Tāpat kā RIGHT funkcija, arī LEFT atgriež skaitliskā apakšvirkne , kas tehniski ir teksts, nevis skaitlis. Lai iegūtu rezultātu kā skaitli, nevis kā skaitļu virkni, ievietojiet formulu funkcijā VALUE vai reiziniet rezultātu ar 1, kā parādīts pirmajā piemērā.

    Kā iegūt skaitli no jebkuras pozīcijas virknē

    Ja jūsu uzdevums ietver skaitļa iegūšanu no jebkuras virknes vietas, varat izmantot šādu prātu aizraujošu formulu, kas publicēta MrExcel forumā:

    =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)

    kur A2 ir sākotnējā teksta virkne.

    Šīs formulas sadalīšanai būtu nepieciešams atsevišķs raksts, tāpēc varat to vienkārši nokopēt savā darba lapā, lai pārliecinātos, ka tā patiešām darbojas :)

    Tomēr, pārbaudot rezultātus, var pamanīt vienu nenozīmīgu trūkumu - ja avota rindā nav skaitļa, formula atgriež nulli, kā tas ir 6. rindā attēlā iepriekš. Lai to novērstu, formulu var ietvert IF paziņojumā, kura loģiskais tests pārbauda, vai avota rindā ir kāds skaitlis. Ja tā ir, formula iegūst skaitli, pretējā gadījumā atgriež tukšu skaitli.virkne:

    =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),"")

    Kā redzams zemāk redzamajā ekrāna attēlā, uzlabotā formula darbojas lieliski (par šo uzlabojumu izsakām atzinību mūsu Excel guru Aleksam):

    Atšķirībā no visiem iepriekšējiem piemēriem šīs formulas rezultāts ir šāds. numurs Lai par to pārliecinātos, pamaniet B slejā pa labi izlīdzinātās vērtības un nogrieztās sākuma nulles.

    Padoms. programmā Excel 365 - Excel 2019 ir daudz vienkāršāks risinājums, izmantojot funkciju TEXTJOIN. Skatiet sadaļu Kā noņemt tekstu un saglabāt skaitļus.

    Izraksts no teksta virknes ar Ultimate Suite

    Kā tikko redzējāt, nav triviālas Excel formulas, lai iegūtu skaitli no teksta virknes. Ja jums ir grūtības izprast formulas vai pielāgot tās savām datu kopām, jums varētu patikt šis vienkāršais veids, kā iegūt skaitli no virknes programmā Excel.

    Izmantojot Excel lentē pievienoto mūsu Ultimate Suite komplektu, varat ātri iegūt skaitli no jebkuras burtu un ciparu virknes:

    1. Dodieties uz Ablebits dati cilne> Teksts grupu un noklikšķiniet uz Izraksts :

    2. Atlasiet visas šūnas ar avota virknēm.
    3. Izvilkšanas rīka panelī atlasiet Izvilkumu numuri radio pogu.
    4. Atkarībā no tā, vai vēlaties, lai rezultāti būtu formulas vai vērtības, atlasiet iespēju Ievietot kā formulu vai atstājiet to neizvēlētu (noklusējuma iestatījums).

      Es iesaku atzīmēt šo rūtiņu, ja vēlaties, lai iegūtie skaitļi tiktu automātiski atjaunināti, tiklīdz avota virknēs tiek veiktas jebkādas izmaiņas. Ja vēlaties, lai rezultāti būtu neatkarīgi no sākotnējām virknēm (piemēram, gadījumā, ja vēlāk plānojat noņemt avota datus), tad šo rūtiņu nenorādiet.

    5. Noklikšķiniet uz Ievietot rezultātus poga. Gatavs!

    Tāpat kā iepriekšējā piemērā, ieguves rezultāti ir šādi. skaitļi , kas nozīmē, ka ar tiem var brīvi skaitīt, summēt, vidēji aprēķināt vai veikt jebkādus citus aprēķinus.

    Šajā piemērā esam izvēlējušies rezultātus ievietot kā vērtības , un papildinājums izdarīja tieši to, kas tika prasīts:

    Ja Ievietot kā formulu ir atzīmēta izvēles rūtiņa, jūs novērosiet. formula Vēlaties uzzināt, kurš no tiem ir? Lejuplādējiet Ultimate Suite izmēģinājuma versiju un pārliecinieties paši :)

    Pieejamās lejupielādes

    Excel izvilkuma numurs - parauga darbgrāmata (.xlsx fails)

    Ultimate Suite - izmēģinājuma versija (.exe fails)

    Maikls Brauns ir īpašs tehnoloģiju entuziasts, kura aizraušanās ir sarežģītu procesu vienkāršošana, izmantojot programmatūras rīkus. Ar vairāk nekā desmit gadu pieredzi tehnoloģiju nozarē viņš ir pilnveidojis savas prasmes programmās Microsoft Excel un Outlook, kā arī Google izklājlapās un dokumentos. Maikla emuārs ir veltīts tam, lai dalītos savās zināšanās un pieredzē ar citiem, sniedzot viegli izpildāmus padomus un pamācības produktivitātes un efektivitātes uzlabošanai. Neatkarīgi no tā, vai esat pieredzējis profesionālis vai iesācējs, Maikla emuārs piedāvā vērtīgas atziņas un praktiskus padomus, kā maksimāli izmantot šos būtiskos programmatūras rīkus.