Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Como contar datos con varias condiciones en una columna con CountIfs


.

En varias oportunidades cuando se programa macros es necesario contar dependiendo de criterios, este post muestra como contar datos de una columna, pero dependiendo de varias condiciones, para ello se apela a la WorksheetFunction CountIfs, anteriormente habíamos dicho que con WorkshetFunction se puede usar a traveés de código de VBA, funciones que vienen incorporadas en Excel, si deseas aprender más sobre WorksheetFunction visita el link.  

Existen otros post relacionados con como contar datos en Excel, si estás viendo este post es porque estás queriendo solucionar algo relacionado con la cuenta de datos, en ese caso invito a visitar post relacionados como son: como contar celdas vacías, como contar datos de celdas independientemente si son valores o no, como contar solo valores, contar celdas vacías con CountBlank.

Antes de seguir recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.

  
El ejemplo denominado como contar datos dependiendo de varias condiciones, se puede descargar desde el link del final, el código se encuentra abierto y no contiene restricciones, se puede descargar en forma absolutamente GRATIS, recuerda que si puedes dona para poder mantener la WEB y seguir subiendo ejemplos de macros sin costo alguno, desde el link del final o costado derecho podrás hacerlo.

En este ejemplo se cuentan todas los datos de la columna A, pero dependiendo que el valor de la columna A fila correspondiente sea menor a 60.000 y que el valor de columna B y fila correspondiente sea menor a 40.000; solo en el caso que se cumplan las condiciones se procede a contar el valor correspondiente, es decir si no se dan los dos criterios en simultaneo el dato de la columna A, no es contado.

El siguiente código es el que permite contar dependiendo de criterios:

Cells(uf, «A») = Application.WorksheetFunction.CountIfs(Range(«A2» & «:A» & uf – 1), «>60000», Range(«B2» & «:B» & uf – 1), «<40000»)

El código anterior asigna como valor de unas celda la cuenta de datos de la columna A, los datos son contados si se presentan los dos criterios en forma simultanea, se puede observar que la sintaxis es la siguiente:

Rango donde se debe evaluar el criterio, separado por coma y en forma inmediata se debe ingresar el criterio 1; luego se debe separar con coma y establecer el rango donde se debe evaluar el criterio 2, seguido a ello el criterio que se debe tener en cuenta; en este ejemplo los datos de la columna B deben ser menores a 4000 y los de la columna A mayores a 60.000, para que el dato de la columna A sea contado.

El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo WorksheetFunction sumar productobuscar en listbox mientras escribes en textboxCrear Cartas en Word desde Excelconectar Excel con Access y muchos ejemplos más.


if (payload.eventType == ‘subscribe’) {
// Add code to handle subscribe event.
} else if (payload.eventType == ‘unsubscribe’) {
// Add code to handle unsubscribe event.
}
if (window.console) { // for debugging only
window.console.log(‘YT event: ‘, payload);
}
}

Código que se inserta en un módulo
Sub CountIfs()
Application.ScreenUpdating = False
On Error Resume Next
Dim uf As String
uf = Sheets(«Hoja1»).Range(«A» & Rows.Count).End(xlUp).Row
Cells(uf, «A»).ClearContents
Cells(uf, «A») = Application.WorksheetFunction.CountIfs(Range(«A2» & «:A» & uf – 1), «>60000», Range(«B2» & «:B» & uf – 1), «<40000»)
MsgBox («La cantidad de registros es: » & Cells(uf, «A»)), vbInformation, «AVISO»
Application.ScreenUpdating = True
End Sub

Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.


.

If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.

Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends