Получение функции 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
Другие вопросы по тегам