Как заменить строку на номер - PullRequest
2 голосов
/ 23 июня 2019

Я хочу заменить разделенные запятыми буквы в ячейке на цифры.Я использовал функцию =LOOKUP(A1,{"a","b","c","d","e"},{1,2,3,4,5}), но она работает только для одной буквы.

например: мой желаемый вывод:

a => 1

1 Ответ

4 голосов
/ 23 июня 2019

Если у вас Excel 2016+ с функцией TEXTJOIN, вы можете использовать формулу массив :

=TEXTJOIN(",",TRUE,CODE(UPPER(FILTERXML("<t><s>"&SUBSTITUTE(A1,",","</s><s>")&"</s></t>","//s")))-64)

Поскольку это формула массива, вам необходимо «подтвердить» ее, удерживая нажатой ctrl + shift при нажатии , введите . Если вы сделаете это правильно, Excel поместит фигурные скобки {...} вокруг формулы, как показано в строке формул

Алгоритм:

  • Преобразовать строку через запятую в XML: "<t><s>"&SUBSTITUTE(A1,",","</s><s>")&"</s></t>"
  • Используйте FILTERXML для преобразования XML в массив строк
  • UPPER чтобы регистр не учитывался
  • CODE(…) - 64 для преобразования в последовательность чисел, связанных с буквой)
  • TEXTJOIN чтобы сложить результат

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...