Отримання функції CHAR для повернення декількох символів в Excel 2011


1

Я використовую Office 2011 на Mac.

Я намагаюся написати формулу для видалення символів нижнього регістру (і в ідеалі просторів, але це менш важливо) з тексту в комірці. Мета полягає в перетворенні імен на ініціали; таким чином "Джейн" стане "J", "DeLacy" стане "DL", "Mary-Anne" стане "M-A", а "Anna Elise" стане "AE".

До цих пір я маю це (припускаючи, що ім'я в B2), для видалення символів нижнього регістру:

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

Однак це лише видаляє "a" (так "Jane" стає "Jne"). Проблема полягає в тому, що функція CHAR повертає лише перший символ, а не вказаний діапазон:

=CHAR(ROW(97:122))

повертає "a".

Так само

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

Як змусити його повернути весь діапазон так, що всі символи нижнього регістру буде видалено?


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

Відповіді:


0

Розглянемо використання невеликого U ser 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.