BUSCAR V - un valor buscado y debe recuperar varios reguistros

Tengo un campo donde ingreso un nombre de vendedor y debo trae todos los clientes asociados a ese vendedor que están en otra hoja.

Utilice la función buscar v pero esto solo me trae el primero de los clientes que encuentra y me lo repite en la celdas hacia abajo.

Respuesta
2

Cuando usas la función BuscarV solo te encuentra un valor buscado, en tu caso lo que deseas es buscar con base a un valor y traer varios resultados según lo que entiendo, para esto deberás crear un macro y exponer mejor la que necesitas: en dónde tienes los datos, en donde los necesitas, etc

Hola, muchas gracias por la pronta respuesta.

Si la idea es esa.

Lo que tengo es un libro excel donde en una hoja llamada "Clientes estrella" tengo en la columna "A" los vendedores, en la columna "B" los clientes, existiendo una relación de un vendedor a varios clientes. En lam isma hoja también tengo los datos de ventas del año anterior, objetivos para este año.

La idea es que otra hoja, elaborar un informe, donde a partir de la elección de un vendedor en un check box, aparezcan listados sus clientes.

Espero haber podido aclarar lo solicitado.

Ok, suponiendo que la hoja nueva en donde requieres el dato se llamara : DATO VENDEDOR realicé una pequeña macro, le debes modificar según las posiciones en las celdas de tu libro y puedes cambiar el nombre de la hoja DATO VENDEDOR por el cual desees .

Sub DATO_VENDEDOR()

' CELDA EN DONDE VA EL NOMBRE DEL VENDEDOR, MODIFICA SEGUN TU ARCHIVO
Dim NOMBV As Range
Set NOMBV = Worksheets("DATO VENDEDOR").Range("B2")

If NOMBV.Value = "" Then
MsgBox "Escribir nombre del vendedor", vbOKOnly
Else
Range("D6:D1500").ClearContents ' LIMPIA CONTENIDO PARA EXTRAER NUEVAMENTE LA INFORMACION
Sheets("Clientes estrella").Select
Range("A1:B1").Select ' MODIFICA SEGUN SEAN LAS CELDAS EN DONDE SE ENCUENTREN LOS ENCABEZADOS
Range(Selection, Selection.End(xlDown)).Select
Selection.AutoFilter field:=1, Criteria1:=NOMBV
Range("B2:B2").Select ' MODIFICA SEGUN SEAN LAS CELDAS EN DONDE SE ENCUENTREN LOS DATOS
Range(Selection, Selection.End(xlDown)).Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Sheets("DATO VENDEDOR").Select
Range("D6").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Sheets("Clientes estrella").Select
Selection.AutoFilter
Sheets("DATO VENDEDOR").Select
End If

End Sub

Si necesitas mas modificaciones puedes escribirme al correo o bien puedes enviarme tu archivo y lo hacemos directamente en el mismo.

[email protected]

2 respuestas más de otros expertos

Respuesta
1

Puedes hacerlo también con formulas.

Lo primero que debes hacer es crear una columna auxiliar donde irán los números de fila del vendedor que tu elijas y poner esta fórmula:  =SI(Hoja1!$F$1=Hoja2!B2;FILA();"")

Arrastras hasta el final

Luego, en la hoja donde vas a poner el nombre del vendedor, pones esta otra:

=SI.ERROR(INDICE(Hoja2!$C$1:$C$9;K.ESIMO.MENOR(Hoja2!$A$1:$A$9;FILA(Hoja2!$A1)));"")

Arrastras hacia abajo y listo. Fíjate en la imagen y adecua tus rangos en las fórmulas. Si quieres añadir otros campos además del nombre del cliente, arrastra en horizontal esta fórmula y cambia el rango $A$1:$A$9 por el rango del campo que quieras.

¡Gracias! 

Muchas gracias.

Gustavo buenos días. Por algún motivo que no logro resolver los datos que me trae no se corresponden.

Es decir me devuelve datos pero no serian los correctos, en que puedo estar fallando???

Lo siento, no consigo leer bien la imagen que has subido y si la amplio tampoco.

¿No te funciona tampoco la macro de Hilario? Si quieres me mandas el archivo y en cuanto pueda le doy un vistazo

[email protected]

Gustavo, ahi te envie el archivo.

Muchas gracias.

Saludos.

OK. Visto. Cambia las referencia y que hagan siempre referencia a la primera fila

Las tienes así:

=SI.ERROR(INDICE('Clientes estrella'!$C$4:$C$143;K.ESIMO.MENOR('Clientes estrella'!$A$4:$A$143;FILA('Clientes estrella'!$A1)));"")

ponlas así:

=SI.ERROR(INDICE('Clientes estrella'!$C$1:$C$143;K.ESIMO.MENOR('Clientes estrella'!$A$1:$A$143;FILA('Clientes estrella'!$A1)));"")

Respuesta
1

Otra opción sería

=SUMAPRODUCTO(CONSULTAV("Agosto",Hoja1!$C$4:$K$15,{2;3;4;5;6;7;8;9},FALSO))

en este ejemplo con los corchetes indicas que quieres que te traiga las columnas {2;3;4;5;6;7;8;9}, abres y  cierras corchetes

Valor buscado:Agosto

Matriz_buscar en : Hoja1C4:K15

Indicador_columna:{2;3;4;5;6;7;8;9}

Ordenado:Falso

Primero armas tu fórmula de consultav

Y posteriormente agregas Sumaproducto con paréntesis( y cierras el paréntesis después de Falso)

Es Importante Punto y coma entre cada columna( ;)

Si gustas mándame tu archivo a [email protected]

Me comentas si te sirve

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas