Skip to main content

¿Cómo convertir una cadena de texto a mayúsculas iniciales con excepciones en Excel?

Author: Xiaoyang Last Modified: 2025-06-04

En Excel, puedes aplicar la función Mayúsculas Iniciales para convertir cadenas de texto a mayúsculas iniciales fácilmente. Sin embargo, a veces necesitas excluir algunas palabras específicas al convertir las cadenas de texto a mayúsculas iniciales, como se muestra en la siguiente captura de pantalla. En este artículo, hablaré sobre algunos trucos rápidos para resolver esta tarea en Excel.

convert text string to proper case with exceptions

Convertir cadenas de texto a mayúsculas iniciales con excepciones utilizando una fórmula

Convertir cadenas de texto a mayúsculas iniciales con excepciones utilizando código VBA


Convertir cadenas de texto a mayúsculas iniciales con excepciones utilizando una fórmula

Quizás la siguiente fórmula pueda ayudarte a manejar esta tarea rápidamente; por favor, sigue estos pasos:

Introduce esta fórmula:

=MAYUSC(IZQUIERDA(A2))&EXTRAE(LIMPIAR(SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(" "&PROPER(A2)&" "," Of "," of ")," A "," a "),"Is "," is ")," Usa "," USA ")),2,LARGO(A2)) en una celda donde desees obtener el resultado, y luego arrastra el controlador de relleno para completar esta fórmula, y las cadenas de texto se habrán convertido a mayúsculas iniciales excepto las excepciones específicas, ver captura de pantalla:

convert text string to proper case with exceptions by using formula

Nota: En la fórmula anterior, A2 es la celda que deseas convertir, “Of ”, “A”, “Is”, “Usa” son las palabras en mayúsculas iniciales normales después de la conversión, “of ”, “a”, “is”, “USA” son las palabras que deseas excluir de las mayúsculas iniciales. Puedes cambiarlas según tus necesidades o agregar otras palabras con la función SUSTITUIR.



Convertir cadenas de texto a mayúsculas iniciales con excepciones utilizando código VBA

Si la fórmula anterior es algo difícil de entender y adaptar a tus necesidades, aquí también puedes aplicar un código VBA para realizar esta tarea. Por favor, sigue los siguientes pasos uno por uno.

1. Mantén presionadas las teclas ALT + F11 para abrir la ventana de Microsoft Visual Basic para Aplicaciones.

2. Haz clic en Insertar > Módulo, y pega 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. Luego presiona la tecla F5 para ejecutar este código, y aparecerá un cuadro de diálogo para recordarte que selecciones las celdas originales que deseas convertir, ver captura de pantalla:

vba code to select data range

4. Luego haz clic en Aceptar, selecciona las celdas donde deseas obtener los resultados en el cuadro emergente, ver captura de pantalla:

vba code to desitination cell

5. Continúa haciendo clic en Aceptar, y en el cuadro de diálogo emergente, selecciona los textos que deseas excluir, ver captura de pantalla:

vba code to select excluded text

6. Luego haz clic en Aceptar para salir de los cuadros de diálogo, y todas las cadenas de texto se habrán convertido a mayúsculas iniciales excepto las palabras especificadas, ver captura de pantalla:

result of converting text string to proper case with exceptions

Las mejores herramientas de productividad para Office

🤖 Kutools AI Aide: Revoluciona el análisis de datos basado en: Ejecución inteligente | Generar código | Crear fórmulas personalizadas | Analizar datos y generar gráficos | Invocar Funciones mejoradas
Funciones populares: Buscar, resaltar o marcar duplicados | Eliminar filas en blanco | Combinar columnas o celdas sin perder datos | Redondear...
Super BUSCARV: Búsqueda por varios criterios | Búsqueda de varios valores | Búsqueda en varias hojas | Coincidencia difusa....
Lista desplegable avanzada: Crea rápidamente una lista desplegable | Lista desplegable dependiente | Lista desplegable de selección múltiple....
Administrador de columnas: Agregar un número específico de columnas | Mover columnas | Alternar el estado de visibilidad de columnas ocultas | Comparar rangos y columnas...
Funciones destacadas: Cuadrícula de enfoque | Vista de diseño | Barra de fórmulas mejorada | Administrador de Libro de trabajo y Hoja de cálculo | Biblioteca de AutoTexto | Selector de fechas | Combinar Datos | Cifrar/Descifrar celdas | Enviar correo electrónico por lista | Super Filtro | Filtro especial (filtrar celdas con fuente en negrita/cursiva/tachado...)...
Top15 conjuntos de herramientas:12 herramientas de texto (Agregar texto, Eliminar caracteres específicos, ...) | Más de50 tipos de gráficos (Diagrama de Gantt, ...) | Más de40 fórmulas prácticas (Calcular edad basada en la fecha de nacimiento, ...) |19 herramientas de inserción (Insertar código QR, Insertar imagen desde ruta, ...) |12 herramientas de conversión (Convertir a palabras, Conversión de moneda, ...) |7 herramientas para combinar y dividir (Combinar filas avanzado, Dividir celdas, ...) | ... y más

Potencia tus habilidades en Excel con Kutools para Excel y experimenta una eficiencia sin precedentes. Kutools para Excel ofrece más de300 funciones avanzadas para aumentar la productividad y ahorrar tiempo. Haz clic aquí para obtener la función que más necesitas...


Office Tab lleva la interfaz de pestañas a Office y facilita mucho tu trabajo

  • Habilita la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
  • Abre y crea varios documentos en nuevas pestañas de la misma ventana, en lugar de nuevas ventanas.
  • ¡Aumenta tu productividad en un50% y reduce cientos de clics de ratón cada día!