Как да конвертирате текстов низ в правилен регистър с изключения в Excel?
В Excel можете лесно да приложите функцията Proper, за да преобразувате текстови низове в правилен регистър, но понякога трябва да изключите някои конкретни думи, когато преобразувате текстовите низове в правилния регистър, както е показано на следната екранна снимка. В тази статия ще говоря за някои бързи трикове за решаване на тази задача в Excel.
Преобразувайте текстови низове в правилен регистър с изключения с помощта на формула
Преобразувайте текстови низове в правилен регистър с изключения с помощта на VBA код
Преобразувайте текстови низове в правилен регистър с изключения с помощта на формула
Може следната формула да ви помогне да се справите бързо с тази задача, моля, направете следното:
Въведете тази формула:
=UPPER(LEFT(A2))&MID(TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(" "&PROPER(A2)&" "," Of "," of ")," A "," a "),"Е "," е ")," САЩ "," САЩ ")),2,LEN(A2)) в клетка, където искате да получите резултата, и след това плъзнете манипулатора за попълване, за да попълните тази формула, и текстовите низове са преобразувани в правилен регистър, но конкретни изключения, вижте екранната снимка:
Забележка: В горната формула, A2 е клетката, която искате да конвертирате, „От“, „А“, „Е“, „САЩ“ са нормалните правилни думи след преобразуване, „на“, „а“, „е“, „САЩ“ са думите, които искате да изключите от правилния случай. Можете да ги промените според вашите нужди или да добавите други думи с функцията SUBSTITUTE.
Преобразувайте текстови низове в правилен регистър с изключения с помощта на VBA код
Ако горната формула е малко трудна за разбиране и промяна според вашите нужди, тук можете също да приложите VBA код, за да завършите тази задача. Моля, изпълнете следните стъпки една по една.
1. Задръжте натиснат ALT + F11 за да отворите Microsoft Visual Basic за приложения прозорец.
2. Щракнете Поставете > Модулии поставете следния код в Прозорец на модула.
VBA код: конвертирайте текстови низове в правилния регистър с изключения:
Sub CellsValueChange()
'Updateby Extendoffice
Dim xSRg As Range
Dim xDRg As Range
Dim xPRg As Range
Dim xSRgArea As Range
Dim xRgVal As String
Dim xAddress As String
Dim I As Long
Dim K As Long
Dim KK As Long
On Error Resume Next
xAddress = Application.ActiveWindow.RangeSelection.Address
Set xSRg = Application.InputBox("Original cells:", "KuTools For Excel", xAddress, , , , , 8)
If xSRg Is Nothing Then Exit Sub
Set xDRg = Application.InputBox("Output cells:", "KuTools For Excel", , , , , , 8)
If xDRg Is Nothing Then Exit Sub
Set xPRg = Application.InputBox("Cells to exclude:", "KuTools For Excel", , , , , , 8)
If xPRg Is Nothing Then Exit Sub
Set xDRg = xDRg(1)
For I = 1 To xSRg.Areas.Count
Set xSRgArea = xSRg.Areas.Item(I)
For K = 1 To xSRgArea.Count
xRgVal = xSRgArea(K).Value
If Not IsNumeric(xRgVal) Then
xRgVal = CorrectCase(xRgVal, xPRg)
xDRg.Offset(KK).Value = xRgVal
End If
KK = KK + 1
Next
Next
End Sub
Function CorrectCase(ByVal xRgVal As String, ByVal xPRg As Range) As String
Dim xArrWords As Variant
Dim I As Integer
Dim xPointer As Integer
Dim xVal As String
xPointer = 1
xVal = xRgVal
xArrWords = WordsOf(xRgVal)
For I = 0 To UBound(xArrWords)
xPointer = InStr(xPointer, " " & xVal, " " & xArrWords(I))
Debug.Print xPointer
Mid(xVal, xPointer) = CorrectCaseOneWord(CStr(xArrWords(I)), xPRg)
Next I
CorrectCase = xVal
End Function
Function WordsOf(xRgVal As String) As Variant
Dim xDelimiters As Variant
Dim xArrRtn As Variant
xDelimiters = Array(",", ".", ";", ":", Chr(34), vbCr, vbLf)
For Each xEachDelimiter In xDelimiters
xRgVal = Application.WorksheetFunction.Substitute(xRgVal, xEachDelimiter, " ")
Next xEachDelimiter
xArrRtn = Split(Trim(xRgVal), " ")
WordsOf = xArrRtn
End Function
Function CorrectCaseOneWord(xArrWord As String, xERg As Range) As String
With xERg
If IsError(Application.Match(xArrWord, .Cells, 0)) Then
CorrectCaseOneWord = Application.Proper(xArrWord)
Else
CorrectCaseOneWord = Application.VLookup(xArrWord, .Cells, 1, 0)
End If
End With
End Function
3. След това натиснете F5 клавиш, за да изпълните този код, и се появява поле за подкана, за да ви напомни да изберете оригиналните клетки, които искате да конвертирате, вижте екранната снимка:
4, И после щракнете върху OK, изберете клетките, където искате да изведете резултатите в изскачащото поле, вижте екранната снимка:
5. Отидете на щракване OKи в изскачащия диалогов прозорец изберете текстовете, които искате да изключите, вижте екранната снимка:
6, И после щракнете върху OK за да излезете от диалоговите прозорци и всички текстови низове са преобразувани в правилния регистър, но изключват посочените думи, вижте екранната снимка:
Най-добрите инструменти за продуктивност в офиса
Усъвършенствайте уменията си за Excel с Kutools за Excel и изпитайте ефективност, както никога досега. Kutools за Excel предлага над 300 разширени функции за повишаване на производителността и спестяване на време. Щракнете тук, за да получите функцията, от която се нуждаете най-много...
Раздел Office Внася интерфейс с раздели в Office и прави работата ви много по-лесна
- Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
- Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!