¿Cómo convertir una cadena de texto a mayúsculas iniciales en Excel, respetando ciertas excepciones?
En Excel, puede utilizar la función Mayusc.Inic para convertir fácilmente cadenas de texto a mayúsculas iniciales, pero a veces es necesario excluir ciertas palabras específicas durante esta conversión, tal como se muestra en la siguiente captura de pantalla. En este artículo, le explicaré algunos trucos rápidos para llevar a cabo esta tarea en Excel.

Convertir cadenas de texto a Mayúsculas Iniciales con excepciones mediante fórmula
Convertir cadenas de texto a Mayúsculas Iniciales con excepciones mediante código VBA
Convertir cadenas de texto a Mayúsculas Iniciales con excepciones mediante fórmula
Quizá la siguiente fórmula le ayude a completar esta tarea rápidamente. Siga estos pasos:
Introduzca esta fórmula:
=MAYUSC(IZQUIERDA(A2))&EXTRAE(ESPACIOS(SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(« »&MAYUSC.INIC(A2)&« »,« De »,« de »),« Un »,« un »),«Es »,« es »),« Usa »,« USA »)),2,LARGO(A2)) en una celda donde desee obtener el resultado y, a continuación, arrastre el controlador de relleno para aplicar esta fórmula. Las cadenas de texto se convertirán automáticamente en mayúsculas iniciales, excepto las palabras especificadas, tal como se muestra en la captura de pantalla:

Nota: En la fórmula anterior, A2 es la celda que desea convertir; “De”, “Un”, “Es”, “Usa” son las palabras que conservan mayúsculas iniciales tras la conversión, y “de”, “un”, “es”, “USA” son las palabras que desea excluir de la regla de mayúsculas iniciales. Puede modificarlas según sus necesidades o añadir otras palabras mediante la función SUSTITUIR.
Convertir cadenas de texto a Mayúsculas Iniciales con excepciones mediante código VBA
Si la fórmula anterior le resulta un poco complicada de entender o adaptar a sus necesidades, también puede usar código VBA para llevar a cabo esta tarea. Siga atentamente los pasos siguientes, uno por uno.
1. Mantenga pulsadas las teclas ALT + F11 para abrir la ventana de Microsoft Visual Basic para Aplicaciones.
2. Haga clic en Insertar > Módulo y pegue el siguiente código en la ventana del módulo.
Código VBA: convertir cadenas de texto a Mayúsculas Iniciales con excepciones:
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. A continuación, pulse la tecla F5 para ejecutar este código. Aparecerá un cuadro de diálogo que le recordará que seleccione las celdas originales que desea convertir, como se muestra en la captura de pantalla:

4. Luego, haga clic en Aceptar y seleccione, en el cuadro emergente, las celdas donde desea mostrar los resultados, como se muestra en la captura de pantalla:

5. Haga clic nuevamente en Aceptar y, en el cuadro de diálogo emergente, seleccione los textos que desea excluir, como se muestra en la captura de pantalla:

6. Por último, haga clic en Aceptar para cerrar los cuadros de diálogo. Todas las cadenas de texto se habrán convertido a mayúsculas iniciales, excluyendo las palabras especificadas, como se muestra en la captura de pantalla:

Las mejores herramientas de productividad para Office
Potencie sus habilidades en Excel con Kutools para Excel y experimente una eficiencia como nunca antes.Kutools para Excel ofrece más de 300 funciones avanzadas para aumentar su productividad y Ahorrar tiempo.Haga clic aquí para obtener la función que más necesita...
Office Tab aporta una interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil
- Active la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abra y cree varios documentos en nuevas pestañas dentro de la misma ventana, en lugar de hacerlo en ventanas separadas.
- ¡Aumente su productividad en un 50 % y elimine cientos de clics del ratón cada día!
Todos los complementos de Kutools en un solo instalador.
Kutools for Office es la suite que incluye complementos para Excel, Word, Outlook y PowerPoint, además de Office Tab Pro, ideal para equipos que trabajan en distintas aplicaciones de Office.
- Suite integral— complementos para Excel, Word, Outlook y PowerPoint + Office Tab Pro
- Un instalador, una licencia— configuración en minutos (compatible con MSI)
- Rendimiento mejorado en conjunto— productividad optimizada en todas las aplicaciones de Office
- Prueba gratuita de 30 días con todas las funciones— sin registro ni tarjeta de crédito
- La mejor relación calidad-precio— ahorre frente a la compra individual de complementos