Получение функции CHAR для возврата нескольких символов в Excel 2011
Я использую 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 ответ
Подумайте об использовании небольшого U ser D- определения (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