URGENTE: Encontrar un Valor dentro de otro

11/09/2005 - 04:15 por Carlos García | Informe spam
Excel XP

Hola a todos

Dos preguntas:

1º ¿Cómo hago para encontrar un valor, por ejemplo "345", que esta en una
celda, en otra que lo contiene, pero además presenta dígitos adicionales, por
ejemplo 888777345? Ademas de hallarlo debo obtener un valor de resultado que
se encuentra en la misma fila de donde este valor esta, pero en otra columna.
Lo indico pues he intentado utilizar la función BUSCARV, sin éxito, pues creo
que no es la más apropiada. ¿Se podrá hacer esto sin macros, empleando sólo
las funciones de Excel XP?

2º ¿Cómo relaciono dos tablas que tienen un campo en común con una tercera
(cada una de ellas un campo distinto)(¿a modo de Access como se haría?)?

Desde ya Muchísimas Gracias

Carlos García

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
11/09/2005 - 07:18 | Informe spam
hola, Carlos !

1 ... encontrar un valor, por ejemplo "345"... en una celda... que... presenta digitos adicionales, por ejemplo 888777345?
... obtener un valor... que se encuentra en la misma fila de donde este valor esta, pero en otra columna [...]
2 Como relaciono dos tablas que tienen un campo en comun con una tercera (cada una de ellas un campo distinto)



1) suponiendo un valor parcial [345] que pones en 'C1' y que...
necesitas 'encontrarlo' dentro del rango 'A2:A31' y que [una vez encontrado]...
necesitas 'devolver' de la misma fila un dato en la columna 'B'
a) las siguientes formulas son 'matriciales' [ya sabes... al introducirlas/editarlas se deben terminar con ctrl+mayusc+enter]
=max(fila(a2:a31)*no(eserror(hallar(c1,a2:a31))))
=min(elegir(1+eserror(hallar(c1,a2:a31)),fila(a2:a31),50))
-> la diferencia entre usar una u otra [solo] seria 'crucial' si se diera el caso de encontrarse mas de un valor 'coincidente'
-> la primera [max] devolveria el numero de fila donde se presenta 'la ultima' coincidencia
-> la segunda [min] devolveria el numero de fila donde se presenta 'la primer' coincidencia
=> AMBAS 'mienten' [o van a fallar] SI el dato que se busca NO existe en el rango donde se busca <= OJO
b) suponiendo que usas alguna de las formulas anteriores [p.e.] en la celda 'D1'...
cualquiera de las siguientes formulas te devolverian el dato que se encuentra en la columna 'B'... en la misma fila...
=indirecto("b"&d1)
=desref(a1,d1-1,1)
=indice(b2:b31,d1-1)
=indice(a2:b31,d1-1,2)

2) para el caso de tu segunda consulta [me temo que]... sera necesario que proporciones mayores detalles :))

si cualquier duda [o informacion adicional]... comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#2 KL
11/09/2005 - 14:01 | Informe spam
Hola chicos,

Usando los supuestos de Hector Miguel, tambien se podria devolver el valor
de la primera coincidencia mediante la siguiente formula MATRICIAL
(confirmada con Ctrl+Shift+Enter, no solo Enter):

=--BUSCARV("*"&F1&"*";""&A1:B3;2;0)
si la columna B contiene valores numericos

=BUSCARV("*"&F1&"*";""&A1:B3;2;0)
si la columna B contiene cadenas de texto

Saludos,
KL


"Héctor Miguel" wrote in message
news:
hola, Carlos !

1 ... encontrar un valor, por ejemplo "345"... en una celda... que...
presenta digitos adicionales, por ejemplo 888777345?
... obtener un valor... que se encuentra en la misma fila de donde este
valor esta, pero en otra columna [...]
2 Como relaciono dos tablas que tienen un campo en comun con una tercera
(cada una de ellas un campo distinto)



1) suponiendo un valor parcial [345] que pones en 'C1' y que...
necesitas 'encontrarlo' dentro del rango 'A2:A31' y que [una vez
encontrado]...
necesitas 'devolver' de la misma fila un dato en la columna 'B'
a) las siguientes formulas son 'matriciales' [ya sabes... al
introducirlas/editarlas se deben terminar con ctrl+mayusc+enter]
=max(fila(a2:a31)*no(eserror(hallar(c1,a2:a31))))
=min(elegir(1+eserror(hallar(c1,a2:a31)),fila(a2:a31),50))
-> la diferencia entre usar una u otra [solo] seria 'crucial' si se
diera el caso de encontrarse mas de un valor 'coincidente'
-> la primera [max] devolveria el numero de fila donde se presenta 'la
ultima' coincidencia
-> la segunda [min] devolveria el numero de fila donde se presenta 'la
primer' coincidencia
=> AMBAS 'mienten' [o van a fallar] SI el dato que se busca NO existe
en el rango donde se busca <= OJO
b) suponiendo que usas alguna de las formulas anteriores [p.e.] en la
celda 'D1'...
cualquiera de las siguientes formulas te devolverian el dato que se
encuentra en la columna 'B'... en la misma fila...
=indirecto("b"&d1)
=desref(a1,d1-1,1)
=indice(b2:b31,d1-1)
=indice(a2:b31,d1-1,2)

2) para el caso de tu segunda consulta [me temo que]... sera necesario que
proporciones mayores detalles :))

si cualquier duda [o informacion adicional]... comentas?
saludos,
hector.

Respuesta Responder a este mensaje
#3 Carlos García
17/09/2005 - 05:05 | Informe spam
Hola a todos

Muchas gracias a Héctor Miguel y a KL, he resuelto mi problema con vuestra
ayuda.

Sobre la segunda pregunta, acabo de leer una consulta respondida por KL,
sobre como agregar más de 256 columnas. Pues bien KL recomienda justamente
crear dos tablas con una columna como "índice" (como en Access) para
relacionar ambas tablas, pues bien por ahí va el asunto.

En mi caso son tres tablas

Por ejemplo la Tabla 1 tiene un campo A1 que se relaciona con la Tabla 2 a
través de un campo A2 (A1 sería "clave principal"). La Tabla 2, a su vez
tiene un campo B2 ("clave principal") que relaciona esta tabla con la Tabla 3
a traves de su campo B3. ¿Cómo haría para quizás utilizar la función BUSCARV
para obtener datos desde la Tabla 1 de la Tabla 3?

Desde ya Muchísimas Gracias
Respuesta Responder a este mensaje
#4 Héctor Miguel
17/09/2005 - 06:12 | Informe spam
hola, Carlos !

... la segunda pregunta... son tres tablas
... Tabla 1... campo A1... relaciona con la Tabla 2... campo A2 (A1 seria "clave principal")
... Tabla 2... campo B2 ("clave principal")... relaciona... con la Tabla 3 ... campo B3
... Como... utilizar la funcion BUSCARV para obtener datos desde la Tabla 1 de la Tabla 3?



-> suponiendo que con un dato en tabla1 que [probablemente] NO existe en tabla3 [por lo cual]...
habria que 'pasar' por un campo intermedio [comun SOLO entre tabla2 y tabla3]...
y... sin conocer cuales son los rangos [y hojas/libros] donde se encuentran las tablas 1, 2 y 3 -?-

[por lo pronto] te podria anticipar un 'pseudo-codigo' para una formula...
-> que busque desde tabla1 y rescate de tabla3... 'pasando' por tabla2 :))
=buscarv(buscarv(dato1,rango_Tabla2,col_Dato2,0),rango_Tabla3,col_Dato3,0)

toma nota que mi sistema usa como separador de argumentos a la coma ',' NO al punto y coma ';' ;)
haria falta que confirmes si existe la posibilidad de que algun dato se pudiera encontrar 1, 2 o ninguna veces -?-
[ya sea entre una otra o todas las tablas] -?-

si cualquier duda [o informacion adicional]... comentas?
saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida