Fórmula para Buscar y que muestre todas las coincidenc

Hola, Tengo un problema y me gustaría saber si con algún código VB o alguna fórmula Excel lo pueda solucionar, tengo una base de datos en Excel con muchos códigos de productos que se han vendido, además en esta base de datos hay más información como la fecha de la venta, el monto de la venta, por cada código.
Lo que yo necesito es en una nueva hoja yo pueda digitar un código y me aparezcan todas las ventas que se han realizados para ese código que ingrese, es decir si el código aparece 4 veces en la base de datos quiero que en la consulta que yo haga me muestre el código 4 veces con los datos asociados a cada venta.
Espero haber sido claro, te agradecería mucho si me puedes ayudar con esto, Gracias.
Saludos,
Niko

4 Respuestas

Respuesta
1
Te recomiendo lo siguiente. En la Hoja2, donde quieres que aparezcan los resultados, dejas la celda A2 de un color diferente, será donde escribas el código a buscar. En B2:B5 escribes los nombres de las columnas y entonces en entras en el código de visual basic y copias esto:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim codigo_a_buscar As String
Dim i As Integer
Dim j As Integer
Dim aux As String
i = 1
j = 2
If (Target.Column = 1 And Target.Row = 2) Then
Range("B2", "E100").Value = ""
codigo_a_buscar = Hoja2.Cells(2, 1).Value
While (i < 100)
aux = Hoja1.Cells(i, 1).Value
If (codigo_a_buscar = aux) Then
Hoja2.Cells(j, 2).Value = codigo_a_buscar
Hoja2.Cells(j, 3).Value = Hoja1.Cells(i, 2).Value
Hoja2.Cells(j, 4).Value = Hoja1.Cells(i, 3).Value
Hoja2.Cells(j, 5).Value = Hoja1.Cells(i, 4).Value
j = j + 1
End If
i = i + 1
Wend
End If
End Sub
He puesto que busque las 100 primeras filas de la Hoja1 pero esto ya lo adaptas a tu situación, igual que el numero de columnas etc..
Respuesta
1
¿No te sirva más hacer una tabla dinámica?
No, lo que pasa es que lo que quiero hacer es una planilla de consultas, en donde el usuario digite el código del producto e inmediatamente más abajo aparezca los movimientos que tuvo ese producto, la idea es que el usuario pueda consultar todos los productos que quiera.
Saludos,
Niko
Dame tu email te envío un ejemplo. Si quieres enviame el archivo y te lo hago con el mismo.
Gracias, mi E-Mail es [email protected]
Te agradecería si me mandas un ejemplo
Revisa tu email
Respuesta
1
Creo que se puede hacer. Necesitaría tener más datos.
1.- ¿Quieres pistas de como hacerlo o quieres que te lo haga?
2.- Sería interesante conocer la posición y cantidad de columnas de tu base de datos, así como los encabezados, para personalizarlo, etc...,
3.- Como se llama el fichero de la base de datos y como quieres que se llame el nuevo fichero, etc...
Esto sería un principio, si me envías tu correo, me pongo en contacto, aclaramos todo y luego pongo la madcro final, para que la puedan ver todos los visitantes
Mira, mi correo es [email protected]
pongamosnos de acuerdo por correo mejor, y así te puedo enviar la BBDD que tengo.
Desde ya te agradezco por tu ayuda.
Saludos,
Niko
Con esta macro, seleccionas un articulo de un combobox y te pega en esta hoja las ventas, habría que ampliar si quieres más datos..
Private Sub ComboBox1_Click()
Dim vendido As String
Dim articulo(40) As String
Dim n As Double
Range("B2").Select
Range(Selection, Selection.End(xlDown)).ClearContents
If ComboBox1.Value <> "" Then ' se ejecuta si no es vacio
vendido = ComboBox1.Value
n = 2
Workbooks("Ventas libro1.xls").Activate
With Sheets("Hoja1").Range("a:a")
Set c = .Find(vendido, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
articulo(n) = c.Value
n = n + 1
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
End If
Workbooks("Ventas libro2.xls").Activate
Cells(1, 2) = articulo(0)
For x = 1 To n
Cells(x, 2) = articulo(x)
Next x
ComboBox1 = ""
End Sub
Niko, si has terminado la pregunta, cierra la consulta y valora
Es muy buena tu solución, yo lo había hecho de otra manera pero creo que la voy a cambiar, esto me reduce mucho más el margen de error de digitar mal un código.
Saludos,
Niko
Respuesta
1
Eso que intentas hacer es una tabla dinámica con origen de datos en esa hoja.
Ponle titulo a las comumnas de datos,
menu Datos->Informes de tablas y gráficos dinámicos
en ¿dónde están los datos? Opción 1 (lista ho base de datos... Excel)
En ¿qué tipo de informe? Opción 1 Tabla dinámica
botón siguiente
elige el rango de datos (botón siguiente)
Posuiciona donde quieres ver los datos, botón finalizar
te presenta unos cuadros azules y una ventana con los títulos de los datos
arratra el código de venta en el cuadro superior
y los datos asociados a la venta en la parte que dice datos de columna o en los de fila
o en ambos.
Pe. En fila puedes poner las fechas, en columnas las unidades e importes
Muchras gracias por tu ayuda, ya me informaron de otras forma de realizar lo que necesitaba, de todas maneras te agradezco por tu tiempo.
Saludos,
Niko

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas