
Splošna formula
=MIN(FIND((0,1,2,3,4,5,6,7,8,9),A1&"0123456789"))
Povzetek
Za ločevanje besedila in številk lahko uporabite formulo, ki temelji na funkciji FIND, MIN in LEN s funkcijo LEVO ali DESNO, odvisno od tega, ali želite izvleči besedilo ali številko. V prikazanem primeru je formula v C5:
=MIN(FIND((0,1,2,3,4,5,6,7,8,9),B5&"0123456789"))
ki vrne 7, položaj številke 3 v nizu "apple30".
Pojasnilo
Pregled
Formula je videti zapletena, a mehanika je pravzaprav precej preprosta.
Kot pri večini formul, ki razdelijo ali izvlečejo besedilo, je ključno poiskati položaj tistega, kar iščete. Ko imate položaj, lahko z drugimi funkcijami izvlečete, kar potrebujete.
V tem primeru predpostavljamo, da sta številki in besedilo združeni in da se številka pojavi za besedilom. Iz izvirnega besedila, ki se pojavi v eni celici, želite besedilo in številke razdeliti v ločene celice, takole:
Izvirnik | Besedilo | Številka |
Jabolka30 | Jabolka | 30. |
breskve24 | breskve | 24. |
pomaranče12 | pomaranče | 12. |
breskve0 | breskve | 0 |
Kot je navedeno zgoraj, je v tem primeru ključno poiskati začetni položaj številke, kar lahko storite s formulo, kot je ta:
=MIN(FIND((0,1,2,3,4,5,6,7,8,9),A1&"0123456789"))
Ko imate položaj, da izvlečete samo besedilo, uporabite:
=LEFT(A1,position-1)
In da izvlečete samo številko, uporabite:
=RIGHT(A1,LEN(A1)-position+1)
V prvi zgornji formuli s pomočjo funkcije FIND poiščemo začetni položaj številke. Za besedilo find_text uporabljamo konstanto matrike (0,1,2,3,4,5,6,7,8,9), zaradi česar funkcija FIND izvede ločeno iskanje za vsako vrednost v konstanti matrike. Ker konstanta matrike vsebuje 10 številk, bo rezultat matrika z 10 vrednostmi. Če je na primer izvirno besedilo "apple30", bo nastala matrika:
(8,10,11,7,13,14,15,16,17,18)
Vsako število v tej matriki predstavlja položaj elementa v konstanti polja znotraj izvirnega besedila.
Nato funkcija MIN vrne najmanjšo vrednost na seznamu, ki ustreza položaju prve številke, ki se pojavi v izvirnem besedilu. V bistvu funkcija FIND dobi vse številske položaje, MIN pa nam da prvo številčno pozicijo: upoštevajte, da je 7 najmanjša vrednost v matriki, ki ustreza položaju številke 3 v izvirnem besedilu.
Morda se sprašujete o nenavadni konstrukciji znotraj_besedila v funkciji iskanja:
B5&"0123456789"
Ta del formule združuje vse možne številke 0-9 z izvirnim besedilom v B5. Na žalost funkcija FIND ne vrne ničla, če vrednosti ne najdemo, zato je to le pameten način, da se izognemo napakam, ki bi lahko nastale, če številke ne najdemo.
V tem primeru, ker predpostavljamo, da bo številka v izvirnem besedilu vedno na drugem mestu, deluje dobro, ker MIN prisili, da se vrne le najmanjša ali prva pojavitev števila. Dokler se številka pojavi v izvirnem besedilu, se ta položaj vrne.
Če izvirno besedilo ne vsebuje nobenih številk, se vrne "lažni" položaj, enak dolžini izvirnega besedila + 1. S tem lažnim položajem bo zgornja formula LEVO še vedno vrnila besedilo, formula DESNO pa prazen niz ("").