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.