Obtener fila de otro libro

30/11/2004 - 20:51 por Mario Alberto MX | Informe spam
Hola:

Tengo el Libro1 y el Libro2 los cuales contiene columnas con datos iguales,
necesito que despues de comparar varias columnas entre ambos y que todas
resultaran verdaderas, me devolviera la fila o bien otra columna de la misma
fila en la que todas las condiciones son verdaderas, para que posteriormente
pueda obtener los valores de otras 3 columnas del segundo libro .

Cree la siguiente formula pero no encuentro como me devuelva el dato que
necesito.

=SI(Y($B171=BUSCARV($B171,'[LIBRO2.xls]6945'!$C$162:$J$447,1,FALSO),$F171=BUSCARV($B171,'[LIBRO2.xls]6945'!$C$162:$J$447,5,FALSO),$G171=BUSCARV($B171,'[LIBRO2.xls]6945'!$C$162:$J$447,6,FALSO),$H171=BUSCARV($B171,'[LIBRO2.xls]6945'!$C$162:$J$447,7,FALSO),$J171=BUSCARV($B171,'[LIBRO2.xls]6945'!$C$162:$J$447,8,FALSO)),
Aqui no se que Poner ,"")





Gracias por la ayuda

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
01/12/2004 - 04:45 | Informe spam
hola, Mario Alberto !

... el Libro1 y el Libro2 ... contiene columnas con datos iguales
... que despues de comparar varias columnas entre ambos y que todas resultaran verdaderas
... devolviera la fila o bien otra columna de la misma fila en la que todas las condiciones son verdaderas
... para que posteriormente pueda obtener los valores de otras 3 columnas [...] -funciones buscarv anidadas-...



[como yo lo veo] se requiere 'diseñar' formulas que 'trabajen' ->con matrices<-, puesto que...
las funciones de busqueda [como buscarv] SOLO 'pueden' devolver UNO de los datos [si existe] y...
no hay 'garantia' de que la fila [donde fuera encontrado] 'coincida' TAMBIEN con otro dato [en distinta columna]
el 'inconveniente' de las formulas matriciales es que en uso 'excesivo' [obviamente] 'alentan' el recalculo del modelo
[por lo tanto..] si necesitas 'rescatar' VARIOS datos ->por cada fila<- y EN VARIAS filas... [te sugiero...]
utiliza un celda 'puente' [por cada fila] para 'obtener' el numero de la fila donde [todas] las condiciones 'coinciden'
[para evitar que se realice 'la busqueda' POR CADA columna de la misma fila donde se requiera 'rescatar' datos]

1.- la siguiente formula 'puesta' en una celda de la fila 171 del libro1 [p.e. en A171] te estaria devolviendo...
->el numero de fila 'mas alto'<- donde las condiciones se cumplen... o 0 [cero] si no se cumplen ->TODAS<-
es en una sola linea, y recuerda que es 'matricial' [al introducirla/editarla, se 'termina' con ctrl+mayusc+enter]
=max(fila('[libro2.xls]6945'!$c$162:$c$447)*('[libro2.xls]6945'!$c$162:$c$447=$b171)*('[libro2.xls]6945'!$g$162:$g$447=$f171)*('[libro2.xls]6945'!$h$162:$h$447=$g171)*('[libro2.xls]6945'!$i$162:$i$447=$h171)*('[libro2.xls]6945'!$j$162:$j$447=$j171))

2.- una vez 'localizado' el numero de fila 'correspondiente', la manera de 'obtener' los datos de las demas columnas...
[suponiendo que la formula 'quedo' en la columna 'A' y necesitas rescatar 'de' la columna 'K' del libro2...]
a) =desref('[libro2.xls]6945'1!$k$1,$a171-1,0)
b) =indice('[libro2.xls]6945'1!$k:$k,$a171)

3.- 'dado que' si NO existen TODAS las condiciones 'requeridas', la formula estaria 'devolviendo' un 0 [cero]...
[seguramente] necesitaras 'condicionar' la 'extraccion' de los demas datos [p.e.]
a) =si(a171>0,desref('[libro2.xls]6945'1!$k$1,$a171-1,0),"No hay coincidencias")
b) =si(a171>0,indice('[libro2.xls]6945'1!$k:$k,$a171),"No hay coincidencias")

si cualquier duda o 'algo' no funciona... ¿comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#2 KL
03/12/2004 - 22:52 | Informe spam
Hola chicos,

Igual llego tarde, pero me gustaria aportar mi grano de arena a la solucion
este problema q me habia torturado durante toda la semana pasada. Finalmente
tuve una idea q se basaba justo en la pemisa de q BUSCARV (al igual q
BUSCARH, ELEGIR, SUMAPRODUCTO, SUSTITUIR, COINCIDIR, TRANSPONER, INDIRECTO y
unas cuantas mas) devuelve mas de un valor (en este caso si se busca en
varias columnas a la vez - no es el caso de las filas). Luego con la ayuda
de los companeros del foro ingles (Domenic y Harlan Grove) q me propusieron
sustituir la funcion INDIRECTO de mi version inicial (tenia un par de
limitaciones) por ELEGIR, la formula quedo asi:

=SUMAPRODUCTO(--(BUSCARV(B1,Sheet2!$C$1:$J$10,{1;5;6;7;8},0)=ELEGIR({1;2;3;4;5},B1,F1,G1,H1,J1)))=5

Esta formula NO necesita ser introducida como formula matricial.

?A que es chula?

Saludos,
KL



"Héctor Miguel" wrote in message
news:%
hola, Mario Alberto !

... el Libro1 y el Libro2 ... contiene columnas con datos iguales
... que despues de comparar varias columnas entre ambos y que todas
resultaran verdaderas
... devolviera la fila o bien otra columna de la misma fila en la que
todas las condiciones son verdaderas
... para que posteriormente pueda obtener los valores de otras 3 columnas
[...] -funciones buscarv anidadas-...



[como yo lo veo] se requiere 'diseñar' formulas que 'trabajen' ->con
matrices<-, puesto que...
las funciones de busqueda [como buscarv] SOLO 'pueden' devolver UNO de los
datos [si existe] y...
no hay 'garantia' de que la fila [donde fuera encontrado] 'coincida'
TAMBIEN con otro dato [en distinta columna]
el 'inconveniente' de las formulas matriciales es que en uso 'excesivo'
[obviamente] 'alentan' el recalculo del modelo
[por lo tanto..] si necesitas 'rescatar' VARIOS datos ->por cada fila<- y
EN VARIAS filas... [te sugiero...]
utiliza un celda 'puente' [por cada fila] para 'obtener' el numero de la
fila donde [todas] las condiciones 'coinciden'
[para evitar que se realice 'la busqueda' POR CADA columna de la misma
fila donde se requiera 'rescatar' datos]

1.- la siguiente formula 'puesta' en una celda de la fila 171 del libro1
[p.e. en A171] te estaria devolviendo...
->el numero de fila 'mas alto'<- donde las condiciones se cumplen... o
0 [cero] si no se cumplen ->TODAS<-
es en una sola linea, y recuerda que es 'matricial' [al
introducirla/editarla, se 'termina' con ctrl+mayusc+enter]
=max(fila('[libro2.xls]6945'!$c$162:$c$447)*('[libro2.xls]6945'!$c$162:$c$447=$b171)*('[libro2.xls]6945'!$g$162:$g$447=$f171)*('[libro2.xls]6945'!$h$162:$h$447=$g171)*('[libro2.xls]6945'!$i$162:$i$447=$h171)*('[libro2.xls]6945'!$j$162:$j$447=$j171))

2.- una vez 'localizado' el numero de fila 'correspondiente', la manera de
'obtener' los datos de las demas columnas...
[suponiendo que la formula 'quedo' en la columna 'A' y necesitas
rescatar 'de' la columna 'K' del libro2...]
a) =desref('[libro2.xls]6945'1!$k$1,$a171-1,0)
b) =indice('[libro2.xls]6945'1!$k:$k,$a171)

3.- 'dado que' si NO existen TODAS las condiciones 'requeridas', la
formula estaria 'devolviendo' un 0 [cero]...
[seguramente] necesitaras 'condicionar' la 'extraccion' de los demas
datos [p.e.]
a) =si(a171>0,desref('[libro2.xls]6945'1!$k$1,$a171-1,0),"No hay
coincidencias")
b) =si(a171>0,indice('[libro2.xls]6945'1!$k:$k,$a171),"No hay
coincidencias")

si cualquier duda o 'algo' no funciona... ¿comentas?
saludos,
hector.

Respuesta Responder a este mensaje
#3 Héctor Miguel
04/12/2004 - 11:31 | Informe spam
hola, KL !

... con la ayuda ... del foro ingles (Domenic y Harlan Grove)
... me propusieron sustituir la funcion INDIRECTO de mi version inicial
... por ELEGIR, la formula quedo asi:
=SUMAPRODUCTO(--(BUSCARV(B1,Sheet2!$C$1:$J$10,{1;5;6;7;8},0)=ELEGIR({1;2;3;4;5},B1,F1,G1,H1,J1)))=5
... NO necesita ser introducida como formula matricial [...]



la formula 'aplicada' a los datos de la 'base de datos' en el 'otro' libro ['supuestos' por mi]...
[probe con numeros, textos y la 'mezcla' de ambos en la -supuesta- base de datos]
=> 'me devuelve' [solo] verdadero o falso [?] <no [me] fue posible 'encontrar' [p.e.] un # de fila donde [todas] las 'condiciones coinciden' [si es que coinciden]
es probable que 'el planteamiento' que hubieras enviado [al foro ingles] y 'mis' supuestos... 'difieran' [?]

si pudieras comentar 'como' y 'sobre que supuestos' la haces funcionar ;)
saludos,
hector.
Respuesta Responder a este mensaje
#4 KL
04/12/2004 - 12:17 | Informe spam
Hola Hector Miguel,

Yo habia entendido q lo q se buscaba era validar en cada fila (copiando las
formulas de A1 hacia abajo) si coincidian TODOS los datos en ciertas
columnas para luego devolver un data de otra columna. Lo q he puesto
anterirmente era la manera de validar. Entendi q era obvio q para devolver
el numero de fila habria q sacar el numero da la fila vigente, p.ej:

=--(SUMAPRODUCTO(--(BUSCARV(B1,Sheet2!$C$1:$J$10,{1;5;6;7;8},0)=ELEGIR({1;2;3;4;5},B1,F1,G1,H1,J1)))=5)*FILA(B1)

pero habiendo releeido la explicacion pienso q igual me he hecho un lio.

KL

"Héctor Miguel" wrote in message
news:OW4K%
hola, KL !

... con la ayuda ... del foro ingles (Domenic y Harlan Grove)
... me propusieron sustituir la funcion INDIRECTO de mi version inicial
... por ELEGIR, la formula quedo asi:
=SUMAPRODUCTO(--(BUSCARV(B1,Sheet2!$C$1:$J$10,{1;5;6;7;8},0)=ELEGIR({1;2;3;4;5},B1,F1,G1,H1,J1)))=5
... NO necesita ser introducida como formula matricial [...]



la formula 'aplicada' a los datos de la 'base de datos' en el 'otro' libro
['supuestos' por mi]...
[probe con numeros, textos y la 'mezcla' de ambos en la -supuesta- base de
datos]
=> 'me devuelve' [solo] verdadero o falso [?] <> no [me] fue posible 'encontrar' [p.e.] un # de fila donde [todas] las
'condiciones coinciden' [si es que coinciden]
es probable que 'el planteamiento' que hubieras enviado [al foro ingles] y
'mis' supuestos... 'difieran' [?]

si pudieras comentar 'como' y 'sobre que supuestos' la haces funcionar
;)
saludos,
hector.

Respuesta Responder a este mensaje
#5 Héctor Miguel
04/12/2004 - 12:39 | Informe spam
hola, KL !

... habiendo releeido la explicacion [...]



[yo tambien]... 'casando' el asunto y el mensaje del OP [crei entender que...]
'lo que se busca' es...
encontrar ->en que fila<- de una BD en una hoja ->'de otro libro'<-...
->'se cumplen'<- [todas] las condiciones... ->solicitadas en el libro 'que pregunta'<-

igual y 'mis' suposiciones [para 'variar'... aunque no es 'raro']... fueron 'exageradas' :(

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