Ayuda excel comparar dos columnas y realizar acción

Saludos
Se un poquito de las macros en excel pero ahora me encuentro haciendo algo en lo que de verdad necesito ayuda
Tengo tres columnas Col1, Col2 Y Col3 la col1 tiene un numero de registro, col2 tiene productos y en Col3 debe ir el numero de cajas asociada al registro, el numero de cajas aparecen en otra columna que la llame Col N+1 la cual tiene asociado en COL N el numero de registro al que pertenece.
Ejemplo:
COL1 COL2 COL3 COL N COL N+1
R2 A R1 2
R1 B R2 3
R2 A R3 4
R2 B R4 4
R2 C R5 5
R2 B R6 6
R3 G R7 8
R3 E
R4 E
R4 T
R5 U
R6 JK
Bueno el hecho es que necesito que por medio de una macro en COL3 aparezca en todas las celdas la cantidad de cajas que aparece en COL N+1 asociada a cada registro.
Por ejemplo para R2 debe aparecer 3 y al final quedar así:
COL1 COL2 COL3 COL N COL N+1
R2 A 3 R1 2
R1 B 2 R2 3
R2 A 3 R3 4
R2 B 3 R4 6
R2 C 3 R5 5
R2 B 3 R6 6
R3 G 4 R7 8
R3 E 4
R4 E 6
R4 T 6
R5 U 5
R6 JK 6

1 Respuesta

Respuesta
1
No necesitabas una rutina para eso, creo que con la función BuscarV hubiese alcanzado.
Si colocas en C2 esta fórmula y arrastras al resto de la COL3:
=BUSCARV(A2;$N$1:$O$7;2;FALSO)
Considerando que el rango de datos está en el rango N1:O7.
Hola
Gracias si de alguna manera estabas viendo como ayudarme.
La verdad es que ya he resuelto mi problema, el error lo tenia en que cuando me refería a una celda escribía cell(i, j) y no cells(i, j) por eso todo lo que intentaba no me corría, gracias de todos modos.
Espero contar con su ayuda una próxima oportunidad.
Dejo la rutina por si a alguien le interesa
Sub asocia()
Dim Ultima As Integer
Ultima = Worksheets("control").Range("a2").End(xlDown).Row
Rem ultima guarda el numero de la ultima celda vacia
Worksheets("control").Range("d1") = Ultima
rango = ("c" & Ultima)
i = 2
j = 2
Rem realizara la accion hasta que se haya llenado toda (cajas) col3( hasta donde debe llenarse)
Do While Range(rango) = 0
Rem reinicia a j
j = 2
While Worksheets("control").Cells(j, 5) <> 0
If Worksheets("control").Cells(i, 1) = Worksheets("control").Cells(j, 5) Then
Rem asigna el valor a cada celda de cajas (col3)
Worksheets("control").Cells(i, 3) = Worksheets("control").Cells(j, 6)
End If
j = j + 1
Wend
i = i + 1
Loop
End Sub
¿Por cierto como cierto el caso o el tema?
Muchas gracias, la verdad es que había trabajado mucho y ya estaba algo enbotado, no había tenido en cuenta una opción tan sencilla (pero útil) como es el buscarv, aunque todo tiene que ser una rutina dado que lo que estoy haciendo es una plantila de reporte de producción la cual obtiene información desde una base de datos en oracle, el reporte completo debe aprarecer de acuerdo con los parametors que ponga el usuario y todo tiene que suceder al oprimir un botón.
Bueno en mi plantila ya esta casi todo listo
de todas maneras muchas gracias por responder.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas