Exceli valem: teksti ja numbrite jagamine -

Lang L: none (table-of-contents)

Üldine valem

=MIN(FIND((0,1,2,3,4,5,6,7,8,9),A1&"0123456789"))

Kokkuvõte

Teksti ja numbrite eraldamiseks võite kasutada funktsiooni FIND, MIN funktsiooni ja LEN funktsiooni LEFT või RIGHT funktsioonil põhinevat valemit sõltuvalt sellest, kas soovite teksti või numbri eraldada. Näidatud näites on valem C5-s:

=MIN(FIND((0,1,2,3,4,5,6,7,8,9),B5&"0123456789"))

mis tagastab 7, numbri 3 positsiooni stringis "õunad30".

Selgitus

Ülevaade

Valem näeb välja keeruline, kuid mehaanika on tegelikult üsna lihtne.

Nagu enamiku valemite puhul, mis teksti jagavad või ekstraheerivad, on peamine leida otsitava asja asukoht. Kui olete positsiooni saanud, saate vajaliku väljavõtmiseks kasutada muid funktsioone.

Sellisel juhul eeldame, et arvud ja tekst on ühendatud ning number ilmub teksti järel. Ühes lahtris kuvatavast algtekstist soovite jagada teksti ja numbrid eraldi lahtriteks järgmiselt:

Originaal Tekst Arv
Õunad30 Õunad 30
virsikud24 virsikud 24
apelsinid12 apelsinid 12
virsikud0 virsikud 0

Nagu eespool öeldud, on antud juhul võtmeks numbri algpositsiooni leidmine, mida saate teha järgmise valemiga:

=MIN(FIND((0,1,2,3,4,5,6,7,8,9),A1&"0123456789"))

Kui teil on positsioon olemas, kasutage ainult teksti väljavõtmiseks järgmist:

=LEFT(A1,position-1)

Ja ainult numbri väljavõtmiseks kasutage:

=RIGHT(A1,LEN(A1)-position+1)

Esimeses ülaltoodud valemis kasutame numbri algpositsiooni leidmiseks funktsiooni FIND. Otsingu_teksti jaoks kasutame massiivi konstanti (0,1,2,3,4,5,6,7,8,9), see põhjustab funktsiooni FIND eraldi massiivikonstandi iga väärtuse otsingu. Kuna massiivi konstant sisaldab 10 numbrit, saab tulemuseks 10 väärtusega massiivi. Näiteks kui algtekst on „apple30“, on saadud massiiv:

(8,10,11,7,13,14,15,16,17,18)

Selle massiivi iga number tähistab üksuse asukohta massiivikonstandis algteksti sees.

Järgmisena tagastab MIN funktsioon loendi väikseima väärtuse, mis vastab algtekstis kuvatud esimese numbri positsioonile. Sisuliselt saab funktsioon LEIA kõik numbrikohad ja MIN annab meile esimese numbri positsiooni: pange tähele, et 7 on massiivi väikseim väärtus, mis vastab numbri 3 positsioonile originaaltekstis.

Võib-olla mõtlete funktsiooni find_text paaritu konstruktsiooni üle :

B5&"0123456789"

See valemi osa ühendab kõik võimalikud numbrid 0–9 B5 originaaltekstiga. Kahjuks ei tagasta FIND nulli, kui väärtust ei leita, seega on see lihtsalt nutikas viis, kuidas vältida vigu, mis võivad tekkida siis, kui numbrit ei leita.

Kuna eeldame, et selles näites on number originaaltekstis alati teine, töötab see hästi, kuna MIN sunnib tagastama ainult väikseima ehk esimese esinemise. Niikaua kui number originaaltekstis ilmub, tagastatakse see asukoht.

Kui originaaltekst ei sisalda numbreid, tagastatakse originaalteksti + 1 pikkusega võrdne asend "võlts". Selle võltspositsiooniga tagastab ülaltoodud VASAK valem ikkagi teksti ja PAREM valem tühja stringi ("").

Head lingid

Rick Rothsteini valem hr Excelis

Huvitavad Artiklid...