Обща формула
(=TEXTJOIN("",1,VLOOKUP(T(IF(1,MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))),xtable,2,0)))
Обобщение
За да преведете букви в низ в цифри, можете да използвате формула на масив, базирана на функциите TEXTJOIN и VLOOKUP, с дефинирана таблица за превод, за да осигурите необходимите справки. В показания пример формулата в C5 е:
(=TEXTJOIN("",1,VLOOKUP(T(IF(1,MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1))),xtable,2,0)))
където "xtable" е наименуваният диапазон E5: F10.
Забележка: това е формула на масив и трябва да се въведе с control + shift + enter.
Обяснение
В основата си тази формула използва операция с масив, за да генерира масив от букви от входния текст, превежда всяка буква поотделно в число, след което отново обединява всички числа и връща изхода като низ.
За да анализираме входния низ в масив или букви, използваме функции MID, ROW, LEN и INDIRECT по следния начин:
MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)
LEN връща дължината на въведения текст, който се обединява в "1:" и се предава на INDIRECT като текст. INDIRECT оценява текста като референтен ред и функцията ROW връща масив от числа в MID:
MID(B5,(1;2;3),1)
След това MID извлича по един знак за всяка начална позиция и имаме:
=TEXTJOIN("",1,VLOOKUP(T(IF(1,("a";"b";"c"))),xtable,2,0))
По същество ние искаме VLOOKUP да намери съвпадение за "a", "b" и "c" едновременно. По неясни причини трябва да „дереферентираме“ този масив по определен начин, използвайки както функциите T, така и IF. След стартирането на VLOOKUP имаме:
=TEXTJOIN("",1,(9;4;6))
и TEXTJOIN връща низа "946".
Изведете число
За да изведете число като краен резултат (вместо низ), добавете нула. Операцията по математика ще принуди низа в число.
Сумиращи числа
За да сумирате числата, вместо да ги изброявате, можете да замените TEXTJOIN със SUM по следния начин:
=SUM(VLOOKUP(T(IF(1,MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1))),xtable,2,0))
Забележка: Функцията TEXTJOIN е въведена чрез абонаментната програма на Office 365 през 2018 г.