
Všeobecný vzorec
(=TEXTJOIN("",TRUE,IFERROR(MID(A1,ROW(INDIRECT("1:100")),1)+0,"")))
Zhrnutie
Ak chcete z textového reťazca odstrániť nečíselné znaky, môžete vyskúšať tento experimentálny vzorec založený na funkcii TEXTJOIN, novej funkcii v programe Excel 2019. V zobrazenom príklade je vzorec v C5:
(=TEXTJOIN("",TRUE,IFERROR(MID(B5,ROW(INDIRECT("1:100")),1)+0,"")))
Poznámka: toto je vzorec poľa a musí sa zadávať pomocou klávesov Control + Shift + Enter.
Vysvetlenie
Pri postupe zvnútra von sa vzorec MID používa na extrakciu textu v kóde B5 po jednom znaku.
Kľúč je kus ROW / INDIRECT:
ROW(INDIRECT("1:100"))
ktorý roztáča pole obsahujúce 100 čísel, ako je tento:
(1,2,3,4,5,6,7,8 … 0,99,100)
Poznámka: 100 predstavuje maximálny počet znakov na spracovanie. Zmeňte ich tak, aby vyhovovali vašim údajom.
Toto pole vstupuje do funkcie MID ako argument start_num . Pre num_chars používame 1.
Funkcia MID vráti pole podobné tomuto:
("1"; "0"; "0"; ""; "a"; "p"; "p"; "l"; "e"; "s"; ""; ""; ""; " „…)
(ďalšie položky v poli boli odstránené kvôli čitateľnosti)
Do tohto poľa pridáme nulu. Toto je jednoduchý trik, ktorý núti Excel, aby sa pokúsil prinútiť text k číslu. Konvertujú sa číselné textové hodnoty ako „1“, „2“, „3“, „4“ atď., Zatiaľ čo nečíselné hodnoty zlyhajú a vyvolá chybu #HODNOTA. Pomocou funkcie IFERROR tieto chyby zachytíme a vrátime prázdny reťazec (""), zatiaľ čo číselné hodnoty prechádzajú do poľa. Výsledkom je pole, ktoré obsahuje iba čísla a prázdne reťazce:
(1; 0; 0; ""; ""; ""; ""; "";….)
Nakoniec tento výsledok poľa prejde do funkcie TEXTJOIN ako argument text1 . Pre oddeľovač používame prázdny reťazec ("") a pre ignore_empty dodávame TRUE. TEXTJOIN potom zreťazí všetky neprázdne hodnoty v poli a vráti výsledok.
Poznámka: Funkcia TEXTJOIN vráti čísla ako text, napríklad „100,“ 500 atď. Ak chcete mať skutočný číselný výsledok, pridajte nulu alebo zabaľte celý vzorec do funkcie HODNOTA.