Excel - hallar Maximo valor con tres condiciones

 
Vista:
sin imagen de perfil
Val: 257
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

hallar Maximo valor con tres condiciones

Publicado por Juan Alberto (184 intervenciones) el 14/03/2021 12:38:22
Tengo una tabla de 5 columnas campos (Almacén, Articulo, Días, Stock y Días máximo), quiero sacar el máximo de días de los rangos que tienen tres criterios; el máximo valor de días de todos los registros que tengan el mismo ALMACÉN, ARTICULO Y STOCK. El codigo que tengo me arroja este resultado, que son días máximos de otros artículos para todos los registros en su totalidad. Adjunte la imagen y el archivo para una mejor observación

Quiero el maximo de dias de todos los registros que iguales entre Almacen, Articulo y Stock


El codigo que tengo es este:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Private Sub Informe_Click()
Dim Maximo&
Dim Condicion1, Condicion2, Condicion3
Dim WS1 As Worksheet
Dim WS2 As Worksheet
Dim Rango1, Rango2, Rango3, Rango4 As Range
'Dim Max
Dim Max, Almacen, Articulo, StockAsig
Dim Cell As Range
Worksheets("Pedidos").Range("E2:E9000").Value = Empty
With Application
.ScreenUpdating = False
old = .Calculation
.Calculation = xlCalculationManual
.EnableEvents = False
End With
 
Set WS1 = Worksheets("Pedidos")
 
FilaB = 2
While WS1.Cells(FilaB, 2).Value <> ""
      FilaB = FilaB + 1
Wend
 
For Each Cell In WS1.Range("A2:A" & FilaB - 1)
 
Almacen = Cell.Offset(, 0).Value
Articulo = Cell.Offset(, 1).Value
StockAsig = Cell.Offset(, 3).Value
 
Set Rango1 = WS1.Range("A2:A" & FilaB - 1)
Set Rango2 = WS1.Range("B2:B" & FilaB - 1)
Set Rango3 = WS1.Range("D2:D" & FilaB - 1)
Set Rango4 = WS1.Range("C2:C" & FilaB - 1)
Maximo = Application.WorksheetFunction.Max(Rango4)
 
Condicion1 = Application.WorksheetFunction.VLookup(Almacen, Rango1, 1, 0)
Condicion2 = Application.WorksheetFunction.VLookup(Articulo, Rango2, 1, 0)
Condicion3 = Application.WorksheetFunction.VLookup(StockAsig, Rango3, 1, 0)
 
If Almacen = Condicion1 And Articulo = Condicion2 And StockAsig = Condicion3 Then
Cell.Offset(, 4).Value = Maximo
End If
Next
End Sub
hallar-Maximo-valor-con-tres-condiciones
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 257
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

hallar Maximo valor con tres condiciones

Publicado por Juan Alberto (184 intervenciones) el 14/03/2021 19:33:36
Claro con tabla dinámica es muy fácil pero la idea es que sea automático cada ves que se carguen nuevos registros, y con fórmulas se puede hacer automatico pero no tengo en mi versión de Excel la fórmula MAX.SI.CONJUNTO, estoy en la necesidad de usar fórmula MATRICIAL combinando el MAX con el SI pero eso hace exageradamente lento el archivo cada vez que se actualiza. Es por ello que estoy obligado hacerlo a través de código de programacion.
El código que públique me da el valor máximo de dias pero de todo el archivo en general (137) sin considerar los criterios que sean igual Almacén, Artículo y Stock, la idea es que con esas tres condiciones sean distintos valores máximos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 40
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

hallar Maximo valor con tres condiciones

Publicado por Juan Carlos (54 intervenciones) el 20/03/2021 22:11:35
Hola Juan, hice una macro que tarda 28 segundos en completarse, pero obtiene el nro. de días máximo para cada grupo de
registros que tienen un mismo código de almacén. código de artículo y Stock.
Si tienes alguna duda me puedes escribir a mi correo: [email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar