Rob se preguntó si existe una forma de contar el número de celdas que contienen fórmulas en una fila o columna. La respuesta es bastante simple, usando la función Ir a de Excel. Siga estos pasos:

  1. Muestre la hoja de trabajo para la que desea contar.

  2. Seleccione la fila o columna en la que desea contar fórmulas.

  3. Presione F5 o Ctrl + G. Excel muestra el cuadro de diálogo Ir a.

  4. Haga clic en el botón Especial. Excel muestra el cuadro de diálogo Ir a especial.

(Ver figura 1)

  1. Asegúrese de que el botón de opción Fórmulas esté seleccionado.

  2. Haga clic en Aceptar.

Eso es. Excel selecciona todas las celdas de la fila o columna que contienen fórmulas. (Si omite el paso 2, Excel selecciona todas las fórmulas en toda la hoja de trabajo). En la parte inferior de la pantalla, en la barra de estado, puede ver un recuento del número de celdas seleccionadas. (Ver figura 2)

image

Figura 2. La barra de estado muestra un recuento de celdas seleccionadas.

Si, por alguna razón, no ve un recuento en la barra de estado, debe verificar que tiene su barra de estado configurada para mostrar los recuentos.

Simplemente haga clic con el botón derecho en cualquier lugar en blanco de la barra de estado y elija Contar en las opciones resultantes.

Si está usando Excel 2013 o una versión más reciente, también puede usar una fórmula para averiguar cuántas fórmulas hay en un rango de celdas, como se muestra aquí:

=SUMPRODUCT(--ISFORMULA(A:A))

Este ejemplo devuelve el recuento de todas las fórmulas de la columna A; con la misma facilidad, podría sustituir un rango diferente de celdas en la fórmula. Independientemente del rango que especifique, no debe incluir la celda donde coloca esta fórmula en particular, lo que resultaría en una referencia circular y un probable error.

También puede, si lo desea, utilizar una macro para determinar el recuento. El siguiente ejemplo utiliza el mismo enfoque para determinar un recuento que se describió manualmente en los pasos anteriores:

Sub CountFormulas1()

Dim Source As Range     Dim iCount As Integer

Set Source = ActiveSheet.Range("A:A")

iCount = Source.SpecialCells(xlCellTypeFormulas, 23).Count     ActiveSheet.Range("D1") = iCount End Sub

Esta subrutina devuelve, muy rápidamente, un recuento de todas las celdas que contienen fórmulas en la columna A y rellena ese valor en la celda D1.

Sería muy útil si este enfoque pudiera convertirse en una función definida por el usuario, como esta:

Function CountFormulas2(Source As Range)

CountFormulas2 = Source.SpecialCells(xlCellTypeFormulas, 23).Count End Function

Sin embargo, esto no funcionará. La función siempre devuelve el recuento de celdas en el rango Fuente, no el recuento de celdas que contienen fórmulas. Es un error esotérico en el VBA de Excel que SpecialCells no funciona en funciones; solo funciona en subrutinas. Microsoft ni siquiera ha documentado este (que puedo encontrar), por lo tanto, mi referencia a él como un «error» en lugar de como una «limitación».

Sin embargo, existe una limitación real a lo que puede hacer el método SpecialCells: solo puede contener un rango de hasta 8.192 celdas. Puede analizar un rango que es mucho más grande (como es el caso cuando lo hace ver una columna completa), pero el subconjunto resultante, el rango resultante, solo puede contener hasta 8.192 celdas. Si contiene más, SpecialCells «fallará» y devolverá un rango (y por lo tanto un recuento) que es igual al número de celdas en el rango original.

Si desea crear una función definida por el usuario para determinar el recuento, deberá confiar en algo diferente al método SpecialCells.

Aquí hay un enfoque que usa la propiedad HasFormula:

Function CountFormulas3(Source As Range)

Dim c As Range     Dim iCount As Integer

iCount = 0     For Each c In Source         If c.HasFormula Then iCount = iCount + 1     Next     CountFormulas3 = iCount End Function

Si elige que esta macro evalúe una columna completa o una fila completa, prepárese para esperar un poco; la macro puede tardar un poco en recorrer cada celda de una columna o fila. El método SpecialCells es mucho más rápido para obtener resultados que para pasar por cada celda.

_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 (13330) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365.