Como determinar el maximo valor dependiendo de una o varias condiciones





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.

  

El ejemplo de macro de Excel, como su nombre lo indica permite determinar cual es el máximo valor de una columna, pero teniendo presente ciertas condiciones, desde el link del final se puede descargar el ejemplo, recuerda donar si te es posible, recomiendo su descarga para observar el código y la macro en funcionamiento para poder interpretar con mayor facilidad el código que contiene.

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 seleccionarlasbuscar en listbox mientras escribes en textboxordenar hojas libro excel por su nombreconectar Excel con Access y muchos ejemplos más.








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




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