En la entrada anterior del blog vimos el uso matricial de algunas funciones para conseguir contar el número de ceros (una condición dada cualquiera) sobre un rango de celdas discontinuos.
En el post de hoy veremos como conseguir ese conteo empleando una función personalizada con VBA para Excel.
En un módulo estándar de nuestro proyecto de VB insertamos la siguiente UDF:
ASí, para nuestro ejemplo, en una celda añadiremos:
=CuentaCeros((A2:C2;E2:G2;I2:P2))
OJO!!, es muy importante añadir el doble paréntesis; pues es la manera de indicar que estamos trabajando con un conjunto de áreas
(de igual manera que lo haríamos con la función INDICE con su segunda sintaxis, por ejemplo)
En el post de hoy veremos como conseguir ese conteo empleando una función personalizada con VBA para Excel.
En un módulo estándar de nuestro proyecto de VB insertamos la siguiente UDF:
Function CuentaCeros(rng As Range) As Long Dim celda As Range, rgArea As Range 'iniciamos el contador de ceros contador = 0 'recorremos cada área dada en el argumento de nuestra UDF For Each rgArea In rng.Areas 'recorremos cada celda de cada área For Each celda In rgArea 'probamos la condición 'si es Cero If celda = 0 Then 'And IsEmpty(celda) = False And Not (HasFormula(celda)) contador = contador + 1 End If Next celda Next rgArea 'devolvemos el dato a la función CuentaCeros = contador End Function
ASí, para nuestro ejemplo, en una celda añadiremos:
=CuentaCeros((A2:C2;E2:G2;I2:P2))
OJO!!, es muy importante añadir el doble paréntesis; pues es la manera de indicar que estamos trabajando con un conjunto de áreas
(de igual manera que lo haríamos con la función INDICE con su segunda sintaxis, por ejemplo)
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.