Excel - функция для преобразования первой буквы каждого слова в верхний регистр - PullRequest
0 голосов
/ 09 ноября 2018

Я ищу формулу, которая преобразует первую букву каждого слова в верхний регистр (и ничего более). есть идеи как это сделать? например: «Моя задача WAA» должна быть преобразована в «Моя задача WAA» Я нашел PROPER функцию, но она также преобразует все остальные буквы в нижний регистр (поэтому он дает мне «My Waa Task»), но мне это не нужно

1 Ответ

0 голосов
/ 09 ноября 2018

Два метода,

Формула, работает только с Office 365 или выше:

=TEXTJOIN(" ",,UPPER(LEFT(TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),(ROW($A$1:INDEX($A:$A,LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1))-1)*99+1,99)),1)) & MID(TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),(ROW($A$1:INDEX($A:$A,LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1))-1)*99+1,99)),2,99))

Это формула массива, которая должна быть подтверждена Ctrl-Shift-enter вместо enter.

enter image description here


UDF, может использоваться с более старыми версиями.

Function fLetter(str As String) As String
    Dim strarr() As String
    strarr = Split(str)

    Dim i As Long
    For i = LBound(strarr) To UBound(strarr)
        strarr(i) = UCase$(Left$(strarr(i), 1)) & Mid$(strarr(i), 2)
    Next i
    fLetter = Join(strarr, " ")
End Function

затем позвоните:

=fLetter(A1)

enter image description here

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