.
Como determinar el máximo valor de una columna pero dependiendo de condiciones, eso es lo que se mostrará en el siguiente ejemplo, anteriormente se expuso como determinar el máximo valor de una columna y como determinar el mínimo valor de una columna, este ejemplo como se dijo determina el máximo valor de una columna, pero en base a condiciones.
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.
Básicamente el código que permite establecer cual es el máximo valor es el siguiente:
Cells(uf, «A») = Application.WorksheetFunction.Maxifs(Range(«A2» & «:A» & uf – 1),
Range(«B2» & «:B» & uf – 1), «<40000», Range(«C2» & «:C» & uf – 1), «Dayra»)
El código anterior permite escribir en el última celda, ustedes pueden elegir la celda donde requieran en dato e incluso en una variable para luego utilizarla en el código; el máximo valor que existe en la Columna A, pero dependiendo que que en la columna B y fila correspondiente el valor que exista en la celda sea menor a 40.000 y en en la columna C fila correspondiente el texto escrito sea igual a «Dayra»; la macro establece cual es el máximo valor de la columna A, pero si se cumplen estas dos últimas condiciones; en el ejemplo puede observarse que existen valores muchos mayores al máximo que determina la macro, pero no cumplen las condiciones dadas.
En este ejemplo también se puede aprender como determinar la última fila con datos y cargar dicho valor en una variable:
uf = Sheets(«Hoja1»).Range(«A» & Rows.Count).End(xlUp).Row
También se puede aprender como mostrar un msgbox que muestre el máximo valor dando formato al mismo:
MsgBox («La cantidad de registros es: » & Format(Cells(uf, «A»), «#,##0.00»)),
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 formulario que crea un listado de todas las hojas para poder luego seleccionarlas, buscar en listbox mientras escribes en textbox, ordenar hojas libro excel por su nombre, conectar 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 Maxifs()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.Maxifs(Range(«A2» & «:A» & uf – 1), Range(«B2» & «:B» & uf – 1), «<40000», Range(«C2» & «:C» & uf – 1), «Dayra»)
Cells(uf, «A»).NumberFormat = «#,##0.00»
MsgBox («La cantidad de registros es: » & Format(Cells(uf, «A»), «#,##0.00»)), vbInformation, «AVISO»
Application.ScreenUpdating = True
End Sub
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.Maxifs(Range(«A2» & «:A» & uf – 1), Range(«B2» & «:B» & uf – 1), «<40000», Range(«C2» & «:C» & uf – 1), «Dayra»)
Cells(uf, «A»).NumberFormat = «#,##0.00»
MsgBox («La cantidad de registros es: » & Format(Cells(uf, «A»), «#,##0.00»)), vbInformation, «AVISO»
Application.ScreenUpdating = True
End Sub
.
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