Si está utilizando Excel para analizar un grupo de celdas que contienen texto, es posible que desee determinar la cantidad de celdas que contienen mayúsculas, el número que contienen minúsculas y el número que contienen mayúsculas y minúsculas.

Hay dos formas de abordar esta tarea: utilizando una fórmula de hoja de trabajo normal o definiendo su propia función definida por el usuario.

Si el texto que desea evaluar está en la columna A, comenzando en la celda A1, puede usar la siguiente fórmula en la celda B1:

=IF(A1>"",IF(EXACT(UPPER(A1),A1),"Upper", IF(EXACT(LOWER(A1),A1),"Lower","Mixed")),"")

La fórmula comprueba si hay algo en A1. Si la hay, usa la función EXACTA para comparar el contenido con varias conversiones del contenido de la celda. La fórmula devuelve una cadena vacía si la celda A1 está vacía o las palabras Superior, Inferior o Mixta.

Copie la fórmula hacia abajo en la columna B tanto como sea necesario, y luego podrá usar el siguiente tipo de fórmula para determinar el recuento:

=COUNTIF(B:B,"Upper")

Para encontrar el recuento de celdas en minúsculas o en mayúsculas y minúsculas, reemplace «Upper» por «Lower» o «Mixed».

Obviamente, usar fórmulas de esta manera implica agregar una columna a su hoja de trabajo. Hay otro enfoque de fórmula que puede usar que no implica el uso de una columna intermedia de esta manera.

Considere la siguiente fórmula, que devuelve el número de celdas en el rango A1: A100 que contienen solo letras mayúsculas:

=SUMPRODUCT(--(EXACT(A1:A100,UPPER(A1:A100))),--(A1:A100<>""))

Se puede usar una variación de esta fórmula para devolver el número de celdas en minúsculas. Lo único que se cambia a continuación es el uso de la función INFERIOR en lugar de la función SUPERIOR:

=SUMPRODUCT(--(EXACT(A1:A100,LOWER(A1:A100))),--(A1:A100<>""))

Para determinar las celdas que contienen mayúsculas y minúsculas, debe generar una combinación de las dos fórmulas basadas en SUMPRODUCT:

=SUMPRODUCT(--(NOT(EXACT(A1:A100,UPPER(A1:A100)))),-- (NOT(EXACT(A1:A100,LOWER(A1:A100)))),--(A1:A100<>""))

Hay algunos inconvenientes en estas fórmulas, inconvenientes que no son evidentes en las fórmulas anteriores. Primero, si una celda contiene un valor numérico, entonces estas fórmulas podrían contar la celda como mayúscula. En segundo lugar, si una celda contiene un valor de error, la fórmula devuelve un error.

Si tiene la necesidad de contar mayúsculas y minúsculas con bastante frecuencia, probablemente le resulte más útil crear una función definida por el usuario que realice el recuento por usted. Hay muchas formas de escribir una función de este tipo, pero las pautas generales son las siguientes:

Recorrer cada celda de un rango Determinar si la celda es superior, inferior o mixta Incrementar algún contador Devolver un valor

La siguiente macro es un ejemplo de cómo se puede implementar lo anterior:

Function CountCase(rng As Range, sCase As String) As Long     Dim vValue     Dim lUpper As Long     Dim lMixed As Long     Dim lLower As Long     Dim rCell As Range     lUpper = 0     lLower = 0     lMixed = 0

For Each rCell In rng         If Not IsError(rCell.Value) Then             vValue = rCell.Value             If VarType(vValue) = vbString _                 And Trim(vValue) <> "" Then                 If vValue = UCase(vValue) Then                     lUpper = lUpper + 1                 ElseIf vValue = LCase(vValue) Then                     lLower = lLower + 1                 Else                     lMixed = lMixed + 1                 End If             End If         End If     Next     Select Case UCase(sCase)

Case "U"

CountCase = lUpper         Case "L"

CountCase = lLower         Case "M"

CountCase = lMixed         Case Else             CountCase = CVErr(xlErrValue)

End Select End Function

Determinar si una celda es superior, inferior o mixta es obviamente el quid de una macro como esta. Para realizar tal determinación se utiliza el mismo proceso que se realizó en las fórmulas de la hoja de trabajo: compare el contenido de la celda con la conversión de ese contenido en mayúsculas o minúsculas. En esta macro, el valor de la celda (vValue) se compara con el vValue transformado con la función UCase o LCase.

La función también ignora las celdas que no tiene sentido evaluar.

Ignora las celdas que contienen valores numéricos, valores booleanos, valores de error, celdas vacías y celdas que solo contienen espacios. Si un valor numérico tiene formato de texto, la función cuenta esa celda como mayúscula. Para usar esta función definida por el usuario, use una fórmula como la siguiente en su hoja de trabajo:

=COUNTCASE(A1:A100, "L")

Para el primer argumento, usa el rango que desea evaluar. El segundo argumento es un solo carácter (L, M o U) que indica qué recuento desea que se devuelva. Si usa algún otro valor para el segundo argumento, la función devuelve un error.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (10593) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365. Puede encontrar una versión de este consejo para la interfaz de menú anterior de Excel aquí:

link: / excel-Counting_Cells_According_to_Case [Conteo de celdas según el caso].