Tabla de contenido
En CONSEJO en Excel se utiliza para contar el número de celdas dentro de un rango que cumplen la condición dada. En este artículo, le mostraremos cómo utilizar la función CONSEJO en Excel con VBA macro.
Descargar el cuaderno de ejercicios
Puede descargar gratuitamente el libro de prácticas en Excel desde aquí.
Función COUNTIF con VBA.xlsm
Función COUNTIF en Excel
- Sintaxis
WorksheetFunction.CountIf( Arg1 Como Range, Arg2 ) Como Double
- Parámetros
Parámetro | Obligatorio/ Facultativo | Tipo de datos | Descripción |
---|---|---|---|
Arg1 | Requerido | Gama | El rango de celdas de las celdas de recuento. Ver también: Análisis de regresión múltiple con Excel |
Arg2 | Requerido | Variante | Un número, expresión, referencia de celda o texto que define qué celdas contar. Por ejemplo, la expresión puede ser 20, "20", ">20", "fruta" o B2. |
- Tipo de devolución
Valor como Double
6 Ejemplos de uso de la función COUNTIF en Excel con VBA
En esta sección, aprenderá a utilizar la función CONSEJO en Excel para contar textos, números, etc. con VBA código.
1. WorksheetFunction con COUNTIF en Excel VBA
Excel Hoja de cálculoFunción puede utilizarse para llamar a la mayoría de las demás funciones de Excel disponibles en la función Insertar en Excel y el cuadro de diálogo CONSEJO es una de esas funciones.
Con el ejemplo anterior, aprenderemos a utilizar la función Hoja de cálculoFunción con CONSEJO para contar datos con VBA en Excel.
Pasos:
- Pulse Alt + F11 en su teclado o vaya a la pestaña Desarrollador -> Visual Basic para abrir Editor de Visual Basic .
- En la ventana de código emergente, en la barra de menús, haga clic en Insertar -> Módulo .
- Copie el siguiente código y péguelo en la ventana de código.
Sub ExCOUNTIF() Range("B13") = Application.WorksheetFunction.CountIf(Range("B5:B10"), "<3") End Sub
Su código ya está listo para ejecutarse.
- Pulse F5 en el teclado o, en la barra de menús, seleccione Run -> Run Sub/UserForm También puede hacer clic en el botón pequeño icono Play en la barra de submenú para ejecutar la macro.
Queríamos averiguar cuántos números hay en nuestro conjunto de datos que sean menores que 3. Así que después de ejecutar el código obtuvimos el resultado de 4, que es el recuento de números que son menores que 3 para nuestro conjunto de datos.
Más información: Cómo usar COUNTIF entre dos números (4 métodos)
2. Función COUNTIF para Contar un Texto Específico en Excel
Si desea contar un texto específico, como cuántas ciudades, nombres, alimentos, etc. hay en una hoja de Excel, puede utilizar la función CONSEJO función en VBA .
A partir del ejemplo anterior, aprenderemos a utilizar la función CONSEJO para contar cuántas veces el nombre John se produce en nuestro conjunto de datos con VBA macro.
Pasos:
- De la misma manera que antes, abra Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
- En la ventana de código, copia el siguiente código y pégalo.
Sub CountifText() 'input countName = WorksheetFunction.CountIf(Range("B5:B10"), "John") 'output Range("E7") = countName End Sub
Su código ya está listo para ejecutarse.
- Ejecutar la macro y obtendrá el recuento total.
Si no quieres escribir el texto directamente en tu código entonces puedes almacenarlo en una variable primero y después pasar la variable dentro del código. Tal como el código de abajo,
Sub CountifText() 'input Nombre = Rango("E6") countName = WorksheetFunction.CountIf(Rango("B5:B10"), Nombre) 'output Rango("E7") = countName End Sub
Más información: Contar Texto al Inicio con COUNTIF & Funciones LEFT en Excel
3. Función COUNTIF para calcular números con VBA
Puede utilizar el CONSEJO para extraer determinados resultados.
A partir del ejemplo anterior, aprenderemos a utilizar la función CONSEJO para contar cuántos números hay en nuestro conjunto de datos que sean superior a 1,1 con VBA macro.
Pasos:
- De la misma manera que antes, abra Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
- En la ventana de código, copia el siguiente código y pégalo.
Sub CountifNumber() 'input countNum = WorksheetFunction.CountIf(Range("B5:B10"), ">1.1") 'output Range("E7") = countNum End Sub
Su código ya está listo para ejecutarse.
- Ejecutar la macro y obtendrá el recuento total.
Como se discutió antes, si no quieres escribir el número directamente en tu código entonces puedes almacenarlo en una variable primero y después pasar la variable dentro del código. Justo como el código de abajo,
Sub CountifNumber() 'entrada Num = Rango("E6") countNum = WorksheetFunction.CountIf(Rango("B5:B10"), ">" & Num) 'salida Rango("E7") = countNum End Sub
Más información: Excel COUNTIF con criterios mayor que y menor que
Lecturas similares
- Función COUNTIF de Excel para Contar Celdas Mayores que 0
- Cómo utilizar conjuntamente las funciones IF y COUNTIF en Excel
- Excel COUNTIF para Contar Celda que Contiene Texto de Otra Celda
- Cómo utilizar la función COUNTIF para calcular porcentajes en Excel
4. Función COUNTIF con un Rango de Objeto en Excel
Puede asignar un grupo de celdas al Rango Objeto y luego usar ese Rango Objeto para contar valores en Excel.
Pasos:
- Abrir Editor de Visual Basic del Desarrollador y Inserte a Módulo en la ventana de código.
- En la ventana de código, copia el siguiente código y pégalo.
Sub ExCountIFRange() Dim iRng As Range 'asigna el rango de celdas Set iRng = Range("B5:B10") 'usa el rango en la fórmula Range("B13") = WorksheetFunction.SumIf(iRng, ">1") 'libera el objeto rango Set iRng = Nada End Sub
Su código ya está listo para ejecutarse.
- Ejecutar el código y obtendrá el recuento total con un valor de suma.
Más información: Cómo usar COUNTIF para rangos no contiguos en Excel
5. Método de la fórmula COUNTIF en Excel
También puede utilizar la función Fórmula y/o FórmulaR1C1 para aplicar un CONSEJO a una celda de VBA Estos métodos son más flexibles a la hora de realizar este tipo de operaciones.
5.1. Método de la fórmula
La fórmula permite especificar el rango de celdas como B5:B10 que se muestra a continuación en el ejemplo.
Pasos:
- En la ventana de código del Editor de Visual Basic Copie el siguiente código y péguelo.
Option Explicit Sub ExCountIfFormula() Range("B13").Formula = "=COUNTIF(B5:B10, "">1"")" End Sub
Su código ya está listo para ejecutarse.
Este fragmento de código le proporcionará el recuento total de los datos que necesita.
5.2. Método FormulaR1C1
La fórmulaR1C1 es más flexible, ya que no se limita a un rango de celdas determinado.
Con el mismo conjunto de datos, ahora aprenderemos a utilizar FórmulaR1C1 para contar valores en VBA .
Pasos:
- En la ventana de código del Editor de Visual Basic Copie el siguiente código y péguelo.
Option Explicit Sub ExCountIfFormulaRC() Range("B13").FormulaR1C1 = "=COUNTIF(R[-8]C:R[-1]C,"">2"")" End Sub
Su código ya está listo para ejecutarse.
Este código también le proporcionará el recuento total de los datos que necesita.
Si no quieres establecer el rango de salida, puedes hacer este código aún más flexible escribiendo así,
Option Explicit Sub ExCountIfFormulaRC() ActiveCell.FormulaR1C1 = "=COUNTIF(R[-8]C:R[-1]C,"">2"")" End Sub
La fórmula contará las celdas que cumplan la condición y colocará la respuesta en el campo ActiveCell en la hoja de cálculo. El intervalo dentro del campo CONSEJO debe referirse a la función Fila (R) y Columna (C) sintaxis.
Más información: Cómo aplicar COUNTIF entre dos valores de celda en Excel
6. Asignación del resultado de la función COUNTIF a una variable
Si desea utilizar el resultado de la fórmula en otro lugar y no en el conjunto de datos de Excel, puede asignar el resultado a una variable y utilizarlo más adelante en el código.
En VBA código para eso es,
Sub AssignCountIfVariable() Dim iResult As Double 'Asigna la variable iResult = Application.WorksheetFunction.CountIf(Range("B5:B10"), "<3") 'Muestra el resultado MsgBox "El recuento de celdas con valor inferior a 3 es " & iResult End Sub
El resultado se mostrará en el cuadro de mensajes de Excel.
Más información: COUNTIF Excel Ejemplo (22 Ejemplos)
Conclusión
En este artículo se muestra cómo utilizar la función CONSEJO en Excel con VBA Espero que este artículo le haya sido de gran utilidad. No dude en preguntar si tiene alguna duda sobre el tema.