Buscarv con datos repetidos

Tengo un problema en excel has de cuenta que tengo:

COLUMNA"A" COLUMNA"B"

1129 Laboratorio1

1323 Laboratorio2

1567 Laboratorio4

1129 Laboratorio2

1129 Laboratorio3

Lo que quiero hacer en una formula o macro, que cuando de buscar en v los valores de 1129 me arroje los diferentes resultados de esa celda, no nada mas el primero que encuentre, ¿se podrá?

1 respuesta

Respuesta
2

Si se puede hacer algo, pero antes de nada.

¿Por qué no utilizas una tabla dinamica?

lo que pasa es que yo voy a buscar por ejemplo "1129" y si me devuelve un solo valor el laboratorio se queda, pero si son varios voy a copiar toda una fila y la voy a insertar abajo de la misma, por ejemplo tengo los siguientes datos

Razón Social Código Producto Laboratorio

lo que sea 1129 Laboratorio 1

Razón Social Código Producto Laboratorio
lo que sea 1129 Laboratorio 1

lo que sea 1129 Laboratorio 2

lo que sea 1129 Laboratorio 3

Obvio lo de copiar la fila y duplicarla con el segundo o tercero laboratorio lo voy a hacer con macros.

Asi me piden el formato. espero sea entendible. Saludos Gracias por tu atencion

insisto... con la pregunta, ¿por qué no usas una tabla dinamica?

lo que pasa que es un formato que me envía el gobierno y no puedo usar tablas dinámicas, ya lo había considerado pero me devolvieron el formato.

ademas que el formato que me envían por ejemplo nomas me dan los códigos de los productos y le tengo que insertar de que laboratorios tengo ese mismo producto. osea no es una base de datos es un formato que tengo que llenar.

Indicame en que columnas están estos rótulos

Razón Social - Código Producto - Laboratorio

Razón Social =A

Código Producto=B

Laboratorio=C

Gracias

Ya aca esta:

Private Sub busca_grupo()

'4c7569735f50
Dim b As Variant
Dim r As Range
Dim fila As Long
On Local Error GoTo errores
b = Trim(InputBox("indica valor a buscar", "Buscar", 0))
If Application.WorksheetFunction.CountA(ActiveSheet.Range("A:A")) = 0 Then Exit Sub
Set r = Application.InputBox("selecciona el rango", , , , , , , Type:=8)
If Application.WorksheetFunction.CountIf(r, b) = 0 Then MsgBox "no existe el dato buscado", vbCritical: GoTo 1
fila = Application.WorksheetFunction.CountA(Sheets(2).Range("A:a")) + 1
For Each r In Range(r.Address)
If b = CStr(r) Then
Sheets(2).Range("a" & fila) = r.Offset(0, -1)
Sheets(2).Range("b" & fila) = r
Sheets(2).Range("c" & fila) = r.Offset(0, 1)
fila = Application.WorksheetFunction.CountA(Sheets(2).Range("A:a")) + 1
End If
Next
1:
Set r = Nothing
errores:
If Err.Number <> 0 Then Set r = Nothing: MsgBox Err.Number & " " & Err.Description
End Sub

Funciona asi:

Al ejecutar el macro "busca_grupo"
Aparecera un cuadro de dialogo que te pide que edites el valor a buscar
luego aparecera otro cuadro que te pedira identificar el rango completo de los codigos que se recorrera, en este caso desde b2 hasta b(n...)
Asi el macro recorrera cada una de las filas de ese rango y comparara su contenido v/s el valor buscado
si hay coincidencia pasara los valores de "resumen" a la hoja2
si deseas que se pasen a una hoja diferente... solo cambias el indice Sheets(2) por el numero que desees
importante es que no existan filas vacias en la tabla de recorrido ( valores originales)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas