Excel vzorec: Přeložit písmena na čísla -

Obsah

Obecný vzorec

(=TEXTJOIN("",1,VLOOKUP(T(IF(1,MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))),xtable,2,0)))

souhrn

Chcete-li přeložit písmena v řetězci na čísla, můžete použít maticový vzorec založený na funkcích TEXTJOIN a VLOOKUP s definovanou překladovou tabulkou, která zajistí potřebné vyhledávání. V zobrazeném příkladu je vzorec v C5:

(=TEXTJOIN("",1,VLOOKUP(T(IF(1,MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1))),xtable,2,0)))

kde „xtable“ je pojmenovaný rozsah E5: F10.

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

Vysvětlení

V podstatě tento vzorec používá operaci pole ke generování pole písmen ze vstupního textu, každé písmeno jednotlivě přeloží na číslo, poté znovu spojí všechna čísla dohromady a vrátí výstup jako řetězec.

K analýze vstupního řetězce na pole nebo písmena používáme funkce MID, ROW, LEN a INDIRECT, jako je tato:

MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)

LEN vrací délku vstupního textu, který je zřetězen na "1:" a předán INDIRECT jako text. INDIRECT vyhodnotí text jako odkaz na řádek a funkce ROW vrátí pole čísel do MID:

MID(B5,(1;2;3),1)

MID poté extrahuje jeden znak na každé výchozí pozici a máme:

=TEXTJOIN("",1,VLOOKUP(T(IF(1,("a";"b";"c"))),xtable,2,0))

V zásadě žádáme VLOOKUP, aby našel shodu pro „a“, „b“ a „c“ současně. Z obskurních důvodů musíme toto pole „dereferovat“ konkrétním způsobem pomocí funkcí T i IF. Po spuštění VLOOKUP máme:

=TEXTJOIN("",1,(9;4;6))

a TEXTJOIN vrací řetězec „946“.

Výstup čísla

Chcete-li vypsat číslo jako konečný výsledek (místo řetězce), přidejte nulu. Matematická operace donutí řetězec k číslu.

Součet čísel

Chcete-li součet čísel místo jejich vypsání, můžete nahradit TEXTJOIN SUM takto:

=SUM(VLOOKUP(T(IF(1,MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1))),xtable,2,0))

Poznámka: Funkce TEXTJOIN byla zavedena prostřednictvím předplatného programu Office 365 v roce 2018.

Dobré odkazy

Získejte iniciály od jména (Chandoo)

Zajímavé články...