Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado
Logo Excel Avanzado

Función WorkSheetFunction.CountIf

| Sin comentarios

La aplicación de la función "Contar Si" se conoce en VBA como "CountIf". Esta función tiene como finalidad contar las celdas en un rango bajo un determinado criterio.

 

La sintaxis es bastante similar a Excel:

= CONTAR.SI (rango; criterio)

Sintaxis en VBA:

Application.WorksheetFunction.CountIf(Arg1 As Range, Arg2)

 

Ejemplo: 

Supongamos que tenemos la relación de viajes realizados por la empresa ABC a diferentes ciudades del Perú y queremos saber la cantidad de veces que hemos viajado a cada una de ellas.

Función WorkSheetFunction.CountIf

 

Por tanto, utilizamos CountIf para conocer la respuesta. A continuación, el código que utilizaríamos:

 

Sub ContarSi()

Dim x As Double

Dim ult As Double

Dim ult2 As Double

Worksheets("Hoja1").Select

ult = Cells(Rows.Count, 4).End(xlUp).Row

ult2 = Cells(Rows.Count, 2).End(xlUp).Row

For x = 4 To ult

dato = Worksheets("Hoja1").Cells(x, 4).Value

respuesta= Application.WorksheetFunction.CountIf(Worksheets("Hoja1").Range("B4:B" & ult2), dato)

Cells(x, 5).Value = respuesta

Next

End Sub

 

Para este ejemplo estamos utilizando las siguientes variables:

X: representa al número de fila que estamos buscando. Para lo cual utilizaremos en conjunto con la instrucción For Next.

Ult: para identificar la última fila en la relación de datos que representan el criterio de búsqueda (ciudades visitadas).

Ult2: para identificar la última fila en el rango de valores (Viajes realizados durante el año).

Dato: el valor que buscará, es decir la ciudad visitada.

 

Para este caso, estamos utilizando una instrucción For… Next que permite buscar el dato que necesitamos: "Ciudades Visitadas, en el rango de datos: Viajes Realizados durante el año". 

La aplicación tiene como resultado una “respuesta”, que será colocada en la celda solicitada al final del código. 

 

Resultado final:

Función WorkSheetFunction.CountIf

Nota 1: Considerar que, al utilizar el código de la última fila para nuestras variables, nos permite aumentar información al archivo sin que se tenga que hacer alguna modificación al código.

Nota 2: Si se utilizan datos que se encuentran en distintas hojas, no olvidar especificar a qué hoja se hace referencia (Ej. Hoja1, Hoja2, o el nombre que se le coloque).

 

El desarrollo de este ejemplo es una de las tantas utilidades que puede tener esta función para aplicarla con macros, solo es cuestión de ir conociéndola y poco a poco encontrar la mejor manera de utilizarla para que nos pueda ayudar en lo que necesitemos.

 

Descargar archivo con ejemplo: Función WorkSheetFunction.CountIf

Deja una respuesta

Los campos requeridos estan marcados con *.