KutoolsforOffice — Una solución, cinco potentes herramientas.Lograr más con menos esfuerzo.Venta de marzo: 20 % de descuento

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

AutorXiaoyang Fecha de modificación

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 cadena de texto a mayúsculas y minúsculas adecuadas con excepciones

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:

convertir cadena de texto a mayúsculas y minúsculas adecuadas con excepciones mediante fórmula

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:

código VBA para seleccionar rango de datos

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:

código VBA para celda de destino

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:

código VBA para seleccionar texto excluido

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:

resultado de convertir cadena de texto a mayúsculas y minúsculas adecuadas con excepciones

Las mejores herramientas de productividad para Office

🤖KUTOOLS AI Asistente: Revolucione Análisis de datos basándose 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   |   Redondeo sin usar fórmulas...
Super BUSCARV:Búsqueda vertical (VLookup) con múltiples criterios  |  Búsqueda vertical (VLookup) con múltiples valores  |   Búsqueda vertical (VLookup) entre varias hojas   |   Coincidencia difusa....
Lista desplegable avanzada:Crear rápidamente una lista desplegable   |  Lista desplegable dependiente   |  Lista desplegable de selección múltiple....
Gestor de columnas:Añadir 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   | Gestor de libros y hojas   |  Biblioteca de recursos(Texto automático)|  Selector de Fecha   |  Combinar Hojas de Cálculo  |  Cifrar/Descifrar celdas   | Enviar correos electrónicos desde una lista   |  Super Filtro   |   Filtro especial(Filtrar celdas con fuente en negrita/cursiva/tachado...) ...
Principales conjuntos de herramientas 15:12 Herramientasde texto(Agregar texto,Eliminar caracteres específicos, ...)|   50+Tiposde gráfico(Diagrama de Gantt, ...)|   40+ Fórmulas prácticas(Calcular la edad basada en la fecha de nacimiento, ...)|   19 Herramientasde inserción(Insertar Código QR,Insertar imagen desde ruta, ...)|   12 Herramientasde conversión(Convertir a palabras,Conversión de moneda, ...)|   7 Herramientasde combinación y división(Combinar filas avanzado,Dividir celdas, ...)|...y muchas más
Use Kutools en su idioma preferido: compatible con inglés, español, alemán, francés, chino y 40+ más idiomas.¡

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.

ExcelWordOutlookTabsPowerPoint
  • 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