busquedas

24/10/2006 - 00:50 por jorge salas | Informe spam
tengo en una lista varias filas que comienzan con un mismo numer(num de fac)
y uso lka funcion buscarv en otra hoja para que me de varios campos, pero
solo me da el primer registro de mi lista.. puedo usar algo mas??
ej:
fac cant color
1 10 rojo
2 5 azul
2 3 verde
2 1 gris
3 2 azul.
buscarv(2,a1:c5,2,falso)
y solo me da el primer registro que es 5 si pongo la formula en la celda
siguiente, tambien me da el mismo resultado en vez de dar 3..AYUDA por favor..

Preguntas similare

Leer las respuestas

#1 Ivan
24/10/2006 - 01:04 | Informe spam
hola Jorge

me temo que mientras no sean 'entradas' unicas es improbable que excel
determine a cual de los 'fac=2' te estas refiriendo y directamente te
devuelve el 1º que encuentra. ¿no tienes un campo con entradas
unicas(no repetidas) como por ej. Ref para ejecutar la busqueda?

lo que podrias usar son filtros para que te devolviera 'todos' los
registros con 'fac=2', aunque uno solo (y concreto) lo veo complicado

de todas formas no me hagas mucho caso

un saludo
Ivan
Respuesta Responder a este mensaje
#2 jorge salas
24/10/2006 - 01:56 | Informe spam
Gracias Ivan, de verdad es que si lo necesito ya que en una hoja tengo todos
los registros de mis facturas y en otra el machote en si de la factura
entonces se trata de que con solo indicar en alguna celda el numero de
factura , me de todos los registros o me llene la factura en si.
gracias, si tienes alguna opcion o sugerencia te lo agradeceria..


"Ivan" escribió:

hola Jorge

me temo que mientras no sean 'entradas' unicas es improbable que excel
determine a cual de los 'fac=2' te estas refiriendo y directamente te
devuelve el 1º que encuentra. ¿no tienes un campo con entradas
unicas(no repetidas) como por ej. Ref para ejecutar la busqueda?

lo que podrias usar son filtros para que te devolviera 'todos' los
registros con 'fac=2', aunque uno solo (y concreto) lo veo complicado

de todas formas no me hagas mucho caso

un saludo
Ivan


Respuesta Responder a este mensaje
#3 alberto
24/10/2006 - 02:44 | Informe spam
Jorge:
a ver si te sirve de momento;
seria insertar una columna despues de tu No de fact, y ponerle un numerador,
en la otra hoja contar cuantas veces tienes ese numero de factura y tecleear
tantas veces tengas esa factura : hoja 1
A B C D FORMULA DE COL B
1 1 1 10 rojo
2 1 1.1 15 azul SI(A2¡;B1+0.1;A2)
3 2 2 5 verde SI(A3¢;B2+0.1;A3)
4 2 2.1 3 gris
5 2 2.2 1 amarillo
6 3 3 4 café
7 3 3.1
8 3 3.2
9 4 4
10 5 5
11 6 6
12 6 6.1
13 7 7

HOJA 2
DATO No DE VECES EMPEZAR dATO BUSCADO
2 CONTAR.SI(Hoja1!A$1:A18;A2) 5 BUSCARV(C22;B$1:C18;2;FALSO)
2.1 3
2.2 1
EN CONTAR TE DA 3 , EMPEZARIAS CON 2, DESPUES 2.1,2.2



"jorge salas" escribió:

Gracias Ivan, de verdad es que si lo necesito ya que en una hoja tengo todos
los registros de mis facturas y en otra el machote en si de la factura
entonces se trata de que con solo indicar en alguna celda el numero de
factura , me de todos los registros o me llene la factura en si.
gracias, si tienes alguna opcion o sugerencia te lo agradeceria..


"Ivan" escribió:

> hola Jorge
>
> me temo que mientras no sean 'entradas' unicas es improbable que excel
> determine a cual de los 'fac=2' te estas refiriendo y directamente te
> devuelve el 1º que encuentra. ¿no tienes un campo con entradas
> unicas(no repetidas) como por ej. Ref para ejecutar la busqueda?
>
> lo que podrias usar son filtros para que te devolviera 'todos' los
> registros con 'fac=2', aunque uno solo (y concreto) lo veo complicado
>
> de todas formas no me hagas mucho caso
>
> un saludo
> Ivan
>
>
Respuesta Responder a este mensaje
#4 Ivan
24/10/2006 - 04:03 | Informe spam
hola Jorge

yo con las formulas soy un desastre(no tengo ni idea), pero seguro que
existe alguna forma 'sencilla' de lograrlo.

si te apañas con codigo podrias usar algo parecido a esto:

suponiendo que:

a.- la lista con todos los registros esta en la Hoja1, en la fila 1
estan los titulos y en la 2 comienzan los registros

b.- en la hoja2 quieres sacar los registros de la factura elegida:-> en
la celda A1 intoducirias el nro de factura y en la fila 3 (pej) tienes
los titulos de campo (los registros se copiarian a partir de la fila 4
incluida)

ventana que se abre pegas este codigo

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Me.Range("a1").Address Then
Dim Celda As Range, nroFact
With Me
If .[a4] <> "" Then .Range("a4:a" & _
.[a65536].End(xlUp).Row).EntireRow.Delete
nroFact = .[a1]
End With
Application.ScreenUpdating = False
With Worksheets("Hoja1")
If .[a2] = "" Then Exit Sub
If .[a3] = "" Then
If .[a2] = nroFact Then _
.Range(.[b2], .[iv2].End(xlToLeft)).Copy _
Me.[a65536].End(xlUp).Offset(1, 0)
Exit Sub
End If
For Each Celda In .Range("a2:a" & .[a65536].End(xlUp).Row)
With Celda
If .Value = nroFact Then Worksheets("Hoja1") _
.Range("B" & .Row & ":iv" & .Row).Copy _
Me.[a65536].End(xlUp).Offset(1, 0)
End With
Next
End With
End If
End Sub

vuelve a excel

ahora solo tienes que escribir el nro de factura en la celda A! de la
hoja2 y te apareceran todos los registros

seguramente es muy mejorable, pero a mi me funciona. Puedes adaptarlo
facilmente a tus necesidades, o si no, comentas datos mas concretos

espero te sirva de algo

un saludo y hasta pronto
Ivan
Respuesta Responder a este mensaje
#5 naldo
12/04/2007 - 02:00 | Informe spam
IVAN
De antemano gracias, muchas gracias.

Yo tengo un problema similar y no lo he resuelto con buscarv, debido a que
regresa el primero unicamente. (Se podra con otra formula?).

a).- Tengo dos hojas una se llama "LparaF", con los titulos sig.
NUMFACT, CONCEPTO, UNIDAD, CANTIDAD, PRECIO, IMPORTE.
Los Titulos inician en A5, B5, C5, D5, E5, F5.
Los Registros inician en A6, B6, C6, D6, E6, F6.
NUMFACT se repite en ocaciones hasta 10 veces o mas.
CONCEPTO, UNIDAD, CANTIDAD, PRECIO, IMPORTE, varian.

b). La otra hoja se llama "0869"(numfact). Es donde quiero que aparezcan los
registros.
En esta hoja quiero escribir el numero de factura(Por ejemplo 869). estando
en "B1".
Los Titulos inician en A12(CONCEPTO), B12(UNIDAD), C12(CANTIDAD),
D12(PRECIO), E12.(IMPORTE)
Los Registros inician en A13, B13, C13, D13, E13.

c).- Ya copie el codigo e hice las modificaciones correspondientes.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Me.Range("b1").Address Then
Dim Celda As Range, nroFact
With Me
If .[a13] <> "" Then .Range("a13:a" & _
.[a65536].End(xlUp).Row).EntireRow.Delete
nroFact = .[b1]
End With
Application.ScreenUpdating = False
With Worksheets("LparaF")
If .[a5] = "" Then Exit Sub
If .[a6] = "" Then
If .[a5] = nroFact Then _
.Range(.[b6], .[iv2].End(xlToLeft)).Copy _
Me.[b65536].End(xlUp).Offset(1, 0)
Exit Sub
End If
For Each Celda In .Range("a5:a" & .[a65536].End(xlUp).Row)
With Celda
If .Value = nroFact Then Worksheets("LparaF") _
.Range("B" & .Row & ":iv" & .Row).Copy _
Me.[a65536].End(xlUp).Offset(1, 0)
End With
Next
End With
End If
End Sub
==>
==>
El resultado no coincide con el numero de factura buscada, me da otros datos
de otras facturas.
Por ejemplo me aparecen los que se encuentran en las filas A13, A14, A15,
A16. En este caso que son cuatro las que tiene esta factura.
Pero siempre me repite estas filas( cambiando el numero de factura).
Me equivoque en alguna entrada?

Espero que me puedan ayudar con estos datos. gracias
Escribio "naldo"
sin


"Ivan" escribió:

hola Jorge

yo con las formulas soy un desastre(no tengo ni idea), pero seguro que
existe alguna forma 'sencilla' de lograrlo.

si te apañas con codigo podrias usar algo parecido a esto:

suponiendo que:

a.- la lista con todos los registros esta en la Hoja1, en la fila 1
estan los titulos y en la 2 comienzan los registros

b.- en la hoja2 quieres sacar los registros de la factura elegida:-> en
la celda A1 intoducirias el nro de factura y en la fila 3 (pej) tienes
los titulos de campo (los registros se copiarian a partir de la fila 4
incluida)

ventana que se abre pegas este codigo

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Me.Range("a1").Address Then
Dim Celda As Range, nroFact
With Me
If .[a4] <> "" Then .Range("a4:a" & _
.[a65536].End(xlUp).Row).EntireRow.Delete
nroFact = .[a1]
End With
Application.ScreenUpdating = False
With Worksheets("Hoja1")
If .[a2] = "" Then Exit Sub
If .[a3] = "" Then
If .[a2] = nroFact Then _
.Range(.[b2], .[iv2].End(xlToLeft)).Copy _
Me.[a65536].End(xlUp).Offset(1, 0)
Exit Sub
End If
For Each Celda In .Range("a2:a" & .[a65536].End(xlUp).Row)
With Celda
If .Value = nroFact Then Worksheets("Hoja1") _
.Range("B" & .Row & ":iv" & .Row).Copy _
Me.[a65536].End(xlUp).Offset(1, 0)
End With
Next
End With
End If
End Sub

vuelve a excel

ahora solo tienes que escribir el nro de factura en la celda A! de la
hoja2 y te apareceran todos los registros

seguramente es muy mejorable, pero a mi me funciona. Puedes adaptarlo
facilmente a tus necesidades, o si no, comentas datos mas concretos

espero te sirva de algo

un saludo y hasta pronto
Ivan


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida