Vzorec programu Excel: Rozdelenie textu a čísel -

Všeobecný vzorec

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

Zhrnutie

Na oddelenie textu a čísel môžete použiť vzorec založený na funkcii FIND, MIN a LEN s funkciou LEFT alebo RIGHT podľa toho, či chcete extrahovať text alebo číslo. V zobrazenom príklade je vzorec v C5:

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

ktorá vráti 7, pozíciu čísla 3 v reťazci „jablká30“.

Vysvetlenie

Prehľad

Vzorec vyzerá zložito, ale mechanika je v skutočnosti celkom jednoduchá.

Rovnako ako u väčšiny vzorcov, ktoré rozdeľujú alebo extrahujú text, je kľúčom nájsť polohu hľadanej položky. Keď budete mať pozíciu, môžete pomocou ďalších funkcií extrahovať to, čo potrebujete.

V takom prípade predpokladáme, že čísla a text sú spojené a že číslo sa objaví za textom. Z pôvodného textu, ktorý sa zobrazuje v jednej bunke, chcete rozdeliť text a čísla do samostatných buniek, napríklad takto:

Originál Text Číslo
Jablká30 Jablká 30
broskyne24 broskyne 24
pomaranče12 pomaranče 12
broskyne0 broskyne 0

Ako už bolo uvedené vyššie, kľúčom v tomto prípade je vyhľadanie počiatočnej polohy čísla, čo môžete urobiť pomocou tohto vzorca:

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

Keď budete mať pozíciu, na extrahovanie iba textu použite:

=LEFT(A1,position-1)

Ak chcete extrahovať iba toto číslo, použite:

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

V prvom vyššie uvedenom vzorci používame na nájdenie začiatočnej polohy čísla funkciu FIND. Pre text find_text používame konštantu poľa (0,1,2,3,4,5,6,7,8,9), čo spôsobí, že funkcia FIND vykoná samostatné vyhľadávanie každej hodnoty v konštante poľa. Pretože konštanta poľa obsahuje 10 čísel, výsledkom bude pole s 10 hodnotami. Ak je napríklad pôvodný text „jablká 30“, výsledné pole bude:

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

Každé číslo v tomto poli predstavuje pozíciu položky v konštante poľa v pôvodnom texte.

Ďalej funkcia MIN vráti najmenšiu hodnotu v zozname, ktorá zodpovedá pozícii prvého čísla, ktoré sa objaví v pôvodnom texte. Funkcia FIND v podstate získa všetky číselné pozície a MIN nám dá prvú číselnú pozíciu: všimnite si, že 7 je najmenšia hodnota v poli, ktorá zodpovedá pozícii čísla 3 v pôvodnom texte.

Možno by vás zaujímalo, aká zvláštna je konštrukcia pre within_text vo funkcii find:

B5&"0123456789"

Táto časť vzorca spája všetky možné čísla 0-9 s pôvodným textom v B5. FIND bohužiaľ nevráti nulu, keď sa nenájde hodnota, takže je to len šikovný spôsob, ako sa vyhnúť chybám, ktoré by mohli nastať, keď sa číslo nenájde.

V tomto príklade, pretože predpokladáme, že číslo sa v pôvodnom texte vždy zobrazí ako druhé, funguje to dobre, pretože MIN vynúti vrátenie iba najmenšieho alebo prvého výskytu čísla. Pokiaľ sa v pôvodnom texte objaví číslo, daná pozícia sa vráti.

Ak pôvodný text neobsahuje žiadne čísla, vráti sa falošná pozícia rovná dĺžke pôvodného textu + 1. S touto falošnou pozíciou LEVÝ vzorec vyššie vráti text a PRAVÝ vzorec prázdny reťazec („“).

Dobré odkazy

Formula od Ricka Rothsteina pre pána Excel

Zaujímavé články...