Получение функции CHAR для возврата нескольких символов в Excel 2011

476
Rhiannon

Я использую Office 2011 на Mac.

Я пытаюсь написать формулу для удаления строчных символов (и в идеале также пробелов, но это не так важно) из текста в ячейке. Цель состоит в том, чтобы преобразовать имена в инициалы; таким образом, «Джейн» станет «J», «DeLacy» станет «DL», «Мэри-Энн» станет «MA», а «Анна Элиз» станет «AE».

Пока у меня есть это (при условии, что имя в B2), для удаления символов нижнего регистра:

=SUBSTITUTE(B2,CHAR(ROW(97:122)),"") 

Тем не менее, это только удаляет «а» (так что «Джейн» становится «Jne»). Кажется, проблема в том, что функция CHAR возвращает только первый символ, а не указанный диапазон:

=CHAR(ROW(97:122)) 

возвращает «а».

Так же

=CHAR(ROW(INDIRECT("97:122"))) 

Как заставить его вернуть весь диапазон, чтобы удалить все символы нижнего регистра?

1
То, чего вы хотите достичь, нельзя сделать с помощью формулы, потому что вам нужно выполнять итерацию для каждой буквы алфавита. Для этого вам понадобится функция, если вы не хотите вкладывать 26 замещающих функций. teylyn 9 лет назад 0

1 ответ на вопрос

0
Gary's Student

Рассмотрите возможность использования небольшой U сер D efined F помазание (UDF) :

Public Function LowerKiller(sIn As String) As String Dim L As Long, LL As Long Dim sCh As String, temp As String For L = 1 To Len(sIn) sCh = Mid(sIn, L, 1) If sCh Like "[a-z]" Or sCh = " " Then Else temp = temp & sCh End If Next L LowerKiller = temp End Function 
Это сработало отлично! Большое спасибо! (У меня недостаточно представителей, чтобы проголосовать за этот ответ, извините!) Rhiannon 9 лет назад 0

Похожие вопросы