Vzorec aplikace Excel: Odstraňte nečíselné znaky -

Obsah

Obecný vzorec

(=TEXTJOIN("",TRUE,IFERROR(MID(A1,ROW(INDIRECT("1:100")),1)+0,"")))

souhrn

Chcete-li odebrat nečíselné znaky z textového řetězce, můžete vyzkoušet tento experimentální vzorec založený na funkci TEXTJOIN, nové funkci v aplikaci Excel 2019. V zobrazeném příkladu je vzorec v C5:

(=TEXTJOIN("",TRUE,IFERROR(MID(B5,ROW(INDIRECT("1:100")),1)+0,"")))

Poznámka: toto je maticový vzorec a musí být zadán pomocí kláves Control + Shift + Enter.

Vysvětlení

Při práci zevnitř ven se vzorec MID používá k extrakci textu v B5, jeden znak po druhém. Klíč je kus ROW / INDIRECT:

ROW(INDIRECT("1:100"))

který roztočí pole obsahující 100 čísel, jako je tento:

(1,2,3,4,5,6,7,8… 0,99,100)

Poznámka: 100 představuje maximální počet znaků ke zpracování. Změňte tak, aby vyhovovalo vašim údajům.

Toto pole jde do funkce MID jako argument start_num . Pro num_chars používáme 1.

Funkce MID vrací pole takto:

("1"; "0"; "0"; ""; "a"; "p"; "p"; "l"; "e"; "s"; ""; ""; ""; " „…)

(další položky v poli byly odstraněny kvůli čitelnosti)

Do tohoto pole přidáme nulu. Toto je jednoduchý trik, který nutí Excel, aby se pokusil donutit text k číslu. Převádějí se číselné textové hodnoty jako „1“, „2“, „3“, „4“ atd., Zatímco nečíselné hodnoty selžou a způsobí chybu #HODNOTA. K zachycení těchto chyb a vrácení prázdného řetězce ("") používáme funkci IFERROR, zatímco do pole procházejí číselné hodnoty. Výsledkem je pole, které obsahuje pouze čísla a prázdné řetězce:

(1; 0; 0; ""; ""; ""; ""; "";….)

Nakonec tento výsledek pole přejde do funkce TEXTJOIN jako argument text1 . Pro oddělovač používáme prázdný řetězec ("") a pro ignore_empty dodáváme TRUE. TEXTJOIN poté zřetězí všechny neprázdné hodnoty v poli a vrátí výsledek.

Poznámka: TEXTJOIN vrátí čísla jako text, například „100“, „500“ atd. Pokud chcete mít skutečný číselný výsledek, přidejte nulu nebo zalomte celý vzorec do funkce HODNOTA.

Zajímavé články...