Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Buscar todas las coincidencias de texto en rango de otro libro cerrado

4 views
Skip to first unread message

Brel

unread,
Dec 2, 2006, 3:10:11 PM12/2/06
to
Hola grupo,
antes que nada permitirme que indique a Hector que ya funcionó su última
propuesta ya que por problemas de viajes laborales no lo he podido hacer.
Y ahora, al tajo...
Se trata, en resumen , de lo que hace un 'BuscarV' pero para cuando -pueden
existir más coincidencias, el tipico siguiente de un formulario-, bajo estos
preceptos:
Texto a buscar situado en Libro 'Dpto'. Hoja 'Especial' -tributo a Hector
siguiendo sus recomendaciones para que nadie lo vea-.Celda 'B81'
(por si a alguien le sirve el resultado de este se muestra en celda B1 que
tiene la siguiente formula:
=SI($B$81="";"";SI(ESNUMERO(COINCIDIR("*"&$B$81&"*";'D:\[Tablas.xls]B'!$B$2:$B$5000;0));BUSCARV("*"&$B$81&"*";'D:\[Tablas.xls]B'!$B$2:$B$5000;1;0);0))
Detalle: Quise traerme los datos del libro 'Tablas' por codigo sin pasarlos
a celdas de esta hoja 'Especial' y se eternizaba, o no di con el codigo
correcto, claro. Lo digo porque luego vuelco los datos a otras celdas si
estoy conforme con las modificaciones, y quiero volver a guardarlos en
'Tablas', pero tambien estoy atascado en eso que dejo para cuando tenga este
tema resuelto. Cierro parentesis)

Claro, cuando hay más coincidencias esto no sirve (tampoco puedo hacer un
formulario de la base porque Excel se queja de demasiados datos)
La base -aunque esta claro en la formula descrita- es: Libro 'Tablas'.Hoja
'B'. Rango 'B2:B5000' (o podriamos decir 'B:B')
[Ambos ficheros estan en la misma ruta]
Con esta formula se cuantas coincidencias hay:
=SUMA(SI(ESERROR(ENCONTRAR(B81;'D:\[Tablas.xls]B'!$B$3:$B$5000));0;1))
[la formula es matricial, terminar con control+mayusculas+enter]

Lo que quisiera es que me pusiera en el libro 'Dpto'.Hoja 'Especial'.Rango
'B84:Bxx' donde estan estas coincidencias:
si son 2, que B84=Fila 2600 y B85=Fila 3001, por ejemplo...
De forma que con un click de un boton de comando 'sig' del formulario
'Localizador' -es desde donde hago todo- pudiera traerme los datos de la
siguiente coincidencia y este no estuviera habilitado cuando no hubiera
coincidencias o estuvieramos en la ultima. [el tipico 'siguiente' de un
formulario]

Detalle: el libro 'Tablas' esta cerrado y con contraseñas
apertura/escritura -sobra decir que son conocidas por mi.

Perdon por el ladrillo, a veces por intentar explicar uno se lia, y seguro
me he dejado mas de un detalle interesante/necesario para poder darme ideas.
Gracias de cualquier forma.
Brel


Héctor Miguel

unread,
Dec 2, 2006, 7:19:48 PM12/2/06
to
hola, Brel !

[en resumen]... si realmente va a ser preferible/necesario/ineludible/... que 'el otro' libro permanezca cerrado...
de acuerdo con el ultimo 'detalle' que comentas en esta consulta: -> '... cerrado y con contrase#as apertura/escritura ...'
[me temo que]... 'tendras que' mantener 'ese' archivo... d e s p r o t e g i d o [o abrirlo 'tras bambalinas'] por que ???
1) hasta la fecha [o hasta donde se]...
-> NO EXISTE ningun proveedor de acceso a bases de datos [como leer de libros de excel CERRADOS]...
que 'logre entrar' a bases de datos ENCRIPTADAS de excel :-(
2) las sugerencias que he visto -generalmente- van en el sentido de [y siempre y cuando lo necesites ->por codigo<-]...
-> usar el modelo de objetos de excel...
-> abrir una [nueva] instancia de excel ->CreateObject("Excel.Application")<-
-> abrir el libro, proveyendo password/s e indicando el modo de 'solo lectura'
-> 'tomar' los datos... cerrar el libro [sin guardar los cambios]... y 'terminar' la instancia en la que se abrio el libro 'cerrado' ;)

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

__ la consulta original __
> ... de lo que hace un 'BuscarV' pero para cuando -pueden existir mas coincidencias, el tipico siguiente de un formulario- ...
> Texto a buscar situado en Libro 'Dpto'. Hoja 'Especial'....Celda 'B81'


> (por si a alguien le sirve el resultado de este se muestra en celda B1 que tiene la siguiente formula:
> =SI($B$81="";"";SI(ESNUMERO(COINCIDIR("*"&$B$81&"*";'D:\[Tablas.xls]B'!$B$2:$B$5000;0));BUSCARV("*"&$B$81&"*";'D:\[Tablas.xls]B'!$B$2:$B$5000;1;0);0))
> Detalle: Quise traerme los datos del libro 'Tablas' por codigo sin pasarlos a celdas de esta hoja 'Especial' y se eternizaba

> o no di con el codigo correcto, claro. Lo digo porque luego vuelco los datos a otras celdas si estoy conforme con las modificaciones

> y quiero volver a guardarlos en 'Tablas', pero tambien estoy atascado en eso que dejo para cuando tenga este tema resuelto...)
> ... cuando hay mas coincidencias esto no sirve (tampoco puedo hacer un formulario de la base porque Excel se queja de demasiados datos)


> La base -aunque esta claro en la formula descrita- es: Libro 'Tablas'.Hoja 'B'. Rango 'B2:B5000' (o podriamos decir 'B:B')
> [Ambos ficheros estan en la misma ruta]
> Con esta formula se cuantas coincidencias hay: =SUMA(SI(ESERROR(ENCONTRAR(B81;'D:\[Tablas.xls]B'!$B$3:$B$5000));0;1))
> [la formula es matricial, terminar con control+mayusculas+enter]
> Lo que quisiera es que me pusiera en el libro 'Dpto'.Hoja 'Especial'.Rango 'B84:Bxx' donde estan estas coincidencias:
> si son 2, que B84=Fila 2600 y B85=Fila 3001, por ejemplo...
> De forma que con un click de un boton de comando 'sig' del formulario 'Localizador' -es desde donde hago todo-
> pudiera traerme los datos de la siguiente coincidencia y este no estuviera habilitado cuando no hubiera coincidencias
> o estuvieramos en la ultima. [el tipico 'siguiente' de un formulario]

> Detalle: el libro 'Tablas' esta cerrado y con contrase#as apertura/escritura -sobra decir que son conocidas por mi.


> Perdon por el ladrillo, a veces por intentar explicar uno se lia

Brel

unread,
Dec 3, 2006, 2:38:39 AM12/3/06
to
Hola Héctor y grupo,
tal y como comentaba en el anterior post vinculé 78 celdas del libro
'Dpto'.Hoja 'Especial'.Rango 'B1:B78' con el libro 'Tablas'.Hoja 'B' por
medio de BuscarV. (son los 78 datos asignados a cada cliente [una fila, en
la que encuentra coincidencia con el cliente en columna 'B'], y lo hace sin
problemas manteniendo el libro 'Tablas' cerrado y con contraseñas):
> Detalle: Quise traerme los datos del libro 'Tablas' por código sin
> pasarlos a celdas de esta hoja 'Especial' y se eternizaba
> o no di con el código correcto, claro. Lo digo porque luego vuelco los
> datos a otras celdas si estoy conforme con las modificaciones
> y quiero volver a guardarlos en 'Tablas', pero también estoy atascado en
> eso que dejo para cuando tenga este tema resuelto...)

Lo que busco es que si hay más coincidencias:

=SUMA(SI(ESERROR(ENCONTRAR(B81;'D:\[Tablas.xls]B'!$B$3:$B$5000));0;1))

encontrar la forma de que por un botón de comando 'sig' del formulario
'Localizador' traerme al mismo sitio [libro 'Dpto'.Hoja 'Especial'.Rango
'B1:B78'] la siguiente coincidencia encontrada.

Hasta aquí todo lo hado sin abrir ni desencriptar la base y es rápido (*),
otra cosa es que -intuyo- deberé hacerlo para devolver datos a esa base,
cuando haya modificaciones, claro. Estructura de ambos libros, en cuanto a
las Hojas implicadas:
(*) Insisto que intenté hacer todo por código sin meter datos a ninguna hoja
y se ralentizaba tanto -mi código- que opté por tu solución de una hoja
oculta y accesible por contraseña, no era mi idea pero si una solución
factible y rápida.
Libro 'Tablas'.Hoja 'B' --> Estructura:
Fila 1 Títulos: Nº / Cliente / CIF / Expdte / Gestor / ... (misma estructura
en fila)

Libro 'Dpto'.Hoja 'Especial' --> Estructura:
Columna A Títulos: Nº / Cliente / CIF / Expdte / Gestor / ...
Columna B --> Deposito los datos extraídos de la base coincidentes 'B1:B78'
(misma estructura en columna) / B81 es el TextBox0 del Formulario
'Localizador'-lo que tecleo para buscar un cliente por nombre, ordenado en
la base alfabéticamente.

No tengo forma de acceder a los atributos de los ficheros, todo esto lo
sitúo en un directorio compartido del servidor que funciona como 'servidor
web' con todas las limitaciones que lleva por política de 'seguridad
industrial'...no se permite 2 accesos simultáneos a un fichero como
escritura aunque se trate de un libro Excel compartido -te lo juro que es
real, he dejado varias neuronas en ese camino sin conseguirlo, es una
multinacional y...bueno, así están las cosas: Varias personas acceden como
lectura pero solo una -yo- puede actualizar. Si en 'Tablas' existe una fila
de títulos y una columna 'A' que es el nº del cliente no es sino por no
volverme loco al actualizar, si logro actualizar desde este formulario
obviamente sobrarían -hasta ahora actualizo directamente en la base.

De nuevo perdón, por extenderme en sin duda temas que no resuelven el
problema suscitado, aunque si aclaren las circunstancias de trabajo.
Saludos.

Brel


"Héctor Miguel" <NOhemio...@PLShotmail.com> escribió en el mensaje
news:%23Lx9$CnFHH...@TK2MSFTNGP02.phx.gbl...

Héctor Miguel

unread,
Dec 3, 2006, 5:32:16 AM12/3/06
to
hola, ?

1) 'asumo' que ya tienes resuelto el hecho de que al mantener cerrado [y con claves contra apertura y escritura] tu libro 'Tablas.xls'
al abrir el otro libro 'Dpto' [SIN abrir el 'de base']... -> te solicite la clave para poder actualizar los vinculos -?-
[o incluso, cuando entras/editas -nuevas- fornulas con vinculos al libro que permanece cerrado] ;)

2) si necesitas 'rescatar'... dos [o mas] posibles 'coinciencias' de un mismo dato [ya NO por macros sino con el procedimiento anterior]...
para poder 'averiguar' en cual/es otra/s filas existe/n otro/s dato/s coincidente/s -> con el unico-mismo dato que se busca...
se necesita aplicar formulas 'matriciales' [ya sabes, de las que se 'terminan' con crl+mayus+enter] para estar 'en condiciones de'... ;)

3) para poder 'devolver' datos 'actualizados' [en caso de modificaciones] hacia el libro 'de origen' [cerrado y con contrase#as]...
[supongo que] no podras 'escapar' de la 'necesidad' de -> abrirlo -?-

4) 'suponiendo' que tu libro 'base' [tablas] contiene los datos 'en horizontal' [por columnas] y los registros en filas...
y que a tu libro 'destino' [dpto] lo 'conviertes' a vertical [columnas a filas]...
te prepare un 'ejemplo' [3 'variantes'] PERO... unicamente con 40 filas/registros :-((
[obviamente] no tengo idea de como podria 'comportarse' con 5000 filas y [sobre todo] en un ambiente de redes y 'compartido' .-((

-> me puedes confirmar alguna direccion para hacertelo llegar ?

5) [obviamente] no lo he 'preparado' con alguna prevencion/correccion de posibles 'errores' [p.e. por no haber coincidencias]
pero creo que podras ingeniartelas una vez que lo estudies ;)

saludos,
hector.

__ 1 __
> tal y como comentaba en el anterior post vincule 78 celdas del libro 'Dpto'.Hoja 'Especial'.Rango 'B1:B78'


> con el libro 'Tablas'.Hoja 'B' por medio de BuscarV.
> (son los 78 datos asignados a cada cliente [una fila, en la que encuentra coincidencia con el cliente en columna 'B']

> y lo hace sin problemas manteniendo el libro 'Tablas' cerrado y con contrase#as):
__ 2 __
> Lo que busco es que si hay mas coincidencias:


> =SUMA(SI(ESERROR(ENCONTRAR(B81;'D:\[Tablas.xls]B'!$B$3:$B$5000));0;1))

> encontrar la forma de que por un boton de comando 'sig' del formulario 'Localizador'


> traerme al mismo sitio [libro 'Dpto'.Hoja 'Especial'.Rango 'B1:B78'] la siguiente coincidencia encontrada.

> Hasta aqui todo lo hado sin abrir ni desencriptar la base y es rapido (*)
__ 3 __
> otra cosa es que -intuyo- debere hacerlo para devolver datos a esa base, cuando haya modificaciones, claro.
__ 4 __


> Estructura de ambos libros, en cuanto a las Hojas implicadas:

> (*) Insisto que intente hacer todo por codigo sin meter datos a ninguna hoja y se ralentizaba tanto -mi codigo-
> que opte por tu solucion de una hoja oculta y accesible por contrase#a, no era mi idea pero si una solucion factible y rapida.


> Libro 'Tablas'.Hoja 'B' --> Estructura:

> Fila 1 Titulos: Nº / Cliente / CIF / Expdte / Gestor / ... (misma estructura en fila)


> Libro 'Dpto'.Hoja 'Especial' --> Estructura:

> Columna A Titulos: Nº / Cliente / CIF / Expdte / Gestor / ...
> Columna B --> Deposito los datos extraidos de la base coincidentes 'B1:B78' (misma estructura en columna) / B81 es el TextBox0 del Formulario 'Localizador'
> -lo que tecleo para buscar un cliente por nombre, ordenado en la base alfabeticamente.
__ 5 __
> No tengo forma de acceder a los atributos de los ficheros, todo esto lo situo en un directorio compartido del servidor
> que funciona como 'servidor web' con todas las limitaciones que lleva por politica de 'seguridad industrial'...
> no se permite 2 accesos simultaneos a un fichero como escritura aunque se trate de un libro Excel compartido
> -te lo juro que es real, he dejado varias neuronas en ese camino sin conseguirlo, es una multinacional y...bueno, asi estan las cosas:


> Varias personas acceden como lectura pero solo una -yo- puede actualizar.

> Si en 'Tablas' existe una fila de titulos y una columna 'A' que es el nº del cliente no es sino por no volverme loco al actualizar
> si logro actualizar desde este formulario obviamente sobrarian -hasta ahora actualizo directamente en la base.
> De nuevo perdon, por extenderme en sin duda temas que no resuelven el problema suscitado, aunque si aclaren las circunstancias de trabajo.


Brel

unread,
Dec 3, 2006, 6:04:11 AM12/3/06
to
Sorry, creo no debí contestar a tu correo personal directamente....
Hola Hector,
te agradezco de veras tu entusiasmo en ayudarnos a aprender en tantas cosas,
y tantas veces.
Enviame a la dirección que aparezco en las news sin el NOSPAM.

Estudiaré tus datos y remitiré detalles al grupo.

Sobre lo que dices en tu correo:

1) Exacto, pide la clave al principio, mal menor al tratarse de una vez por
sesión.
2) Estuve probando con código pero se eternizaba. Incluso con crear una
nueva columna en la base que buscara coincidencias de lo tecleado en el otro
libro, pero esto me obligaba a mantenerlos abiertos y quería evitarlo al
tratarse del servidor y las restricciones -y más, comentadas.
3) Como bien dices para devolver datos tendré que abrirlo, pero solo cuando
se actualicen datos volviendolo a cerrar en el mismo proceso.
4) Mil gracias. Probaré aquí -casa- y la semana que viene en curro -lunes
viaje, y semana que viene con fiestas será más difícil, me quedo sólo en el
departamento, será que no sé ser jefe que doy fiesta a todos menos yo...
jeje -.
5) Teóricamente, como hay una celda que lee si hay coincidencias: si su
valor es mayor que 1 (si es 1 sólo hay una coincidencia y ya está en
pantalla) con boton 'sig' enviaré a leer la siguiente hasta igualar el valor
de esa celda (no haya más coincidencias); si el valor de esta celda es 0 (no
hay coincidencias) el boton 'sig' estará inactivo. Todo teoría porque como
no se sacar más coincidencias...jaja

Gracias mil.

Brel
"Héctor Miguel" <NOhemio...@PLShotmail.com> escribió en el mensaje

news:uKDOPZsF...@TK2MSFTNGP04.phx.gbl...


> hola, ?
>
> 1) 'asumo' que ya tienes resuelto el hecho de que al mantener cerrado [y
> con claves contra apertura y escritura] tu libro 'Tablas.xls'
> al abrir el otro libro 'Dpto' [SIN abrir el 'de base']... -> te
> solicite la clave para poder actualizar los vinculos -?-
> [o incluso, cuando entras/editas -nuevas- fornulas con vinculos al
> libro que permanece cerrado] ;)
>
> 2) si necesitas 'rescatar'... dos [o mas] posibles 'coinciencias' de un
> mismo dato [ya NO por macros sino con el procedimiento anterior]...
> para poder 'averiguar' en cual/es otra/s filas existe/n otro/s dato/s
> coincidente/s -> con el unico-mismo dato que se busca...
> se necesita aplicar formulas 'matriciales' [ya sabes, de las que se
> 'terminan' con crl+mayus+enter] para estar 'en condiciones de'... ;)
>
> 3) para poder 'devolver' datos 'actualizados' [en caso de modificaciones]
> hacia el libro 'de origen' [cerrado y con contrase#as]...
> [supongo que] no podras 'escapar' de la 'necesidad' de ->

Brel

unread,
Dec 3, 2006, 7:12:25 AM12/3/06
to
Hola Héctor,
Una salvedad... si sabemos que hay x registros (pongamos 3 en tu caso del
cliente 10) no sería más fácil identificar en qué filas están los repetidos
y luego sacar los datos con BuscarV directamente a esa fila? Si esto es
posible, con una única columna 'Especial(2)' Columna 'B' valdría no?
Incluso aunque tengamos los 5000 registros de B, si en a3=11, a4=21, a5=31
(corresponde a las filas en que aparece Cliente 10) no se podría montar los
necesarios BuscarV a cada click del botón 'sig' por código? Así nos
ahorraríamos 78 columnas (B:BC) en Especial.(2) Aunque fuera (en hoja
Especial(2)) con un formato condicional vinculado al valor de 'A1' para todo
la columna 'B' se podrían identificar por código las celdas en letra roja
(x. e.) y averiguar así su fila, no?

No se si me explico. Quizás ante mi falta de perspectiva hago sencillo un
problema complejo...
Saludos.
Brel

"Héctor Miguel" <NOhemio...@PLShotmail.com> escribió en el mensaje

news:uKDOPZsF...@TK2MSFTNGP04.phx.gbl...


> hola, ?
>
> 1) 'asumo' que ya tienes resuelto el hecho de que al mantener cerrado [y
> con claves contra apertura y escritura] tu libro 'Tablas.xls'
> al abrir el otro libro 'Dpto' [SIN abrir el 'de base']... -> te
> solicite la clave para poder actualizar los vinculos -?-
> [o incluso, cuando entras/editas -nuevas- fornulas con vinculos al
> libro que permanece cerrado] ;)
>
> 2) si necesitas 'rescatar'... dos [o mas] posibles 'coinciencias' de un
> mismo dato [ya NO por macros sino con el procedimiento anterior]...
> para poder 'averiguar' en cual/es otra/s filas existe/n otro/s dato/s
> coincidente/s -> con el unico-mismo dato que se busca...
> se necesita aplicar formulas 'matriciales' [ya sabes, de las que se
> 'terminan' con crl+mayus+enter] para estar 'en condiciones de'... ;)
>
> 3) para poder 'devolver' datos 'actualizados' [en caso de modificaciones]
> hacia el libro 'de origen' [cerrado y con contrase#as]...
> [supongo que] no podras 'escapar' de la 'necesidad' de ->

Brel

unread,
Dec 3, 2006, 7:43:23 AM12/3/06
to
Hola Héctor y grupo,
acabo de darme cuenta de un error de planteamiento por no explicarme...
Se trata de buscar una parte del texto dentro de una rango: siguiendo tu
ejemplo imagina que lo que buscamos es "te 1" --> realmente '*te 1*'
bajo este argumento tendríamos que localizar en tu ejemplo 12 coincidencias:
Dato 10 (3 veces) y Dato 11 a Dato 19 (9 veces).

A esto añadir mi último comentario sobre la posibilidad de evitar 78
columnas.
Gracias nuevamente.
Brel
"Brel" <BrelNOS...@hotmail.com> escribió en el mensaje
news:OveNzVtF...@TK2MSFTNGP06.phx.gbl...

Brel

unread,
Dec 3, 2006, 7:57:43 AM12/3/06
to
Estoy dormido...
donde pone Dato debería poner Cliente...

Brel
"Brel" <BrelNOS...@hotmail.com> escribió en el mensaje
news:uuyNGntF...@TK2MSFTNGP06.phx.gbl...

Héctor Miguel

unread,
Dec 3, 2006, 4:51:24 PM12/3/06
to
hola, Brel !

[primero]: dejame 'recordarte' que 'desde este lado' [del mensaje] no se ha podido 'ver' cual es el 'arreglo' de tus datos :))

[segundo]: todavia no se alcanza a apreciar que 'relacion' existe entre los datos que expones [p.e.]
a) las 5000 filas donde se busca algun dato: -> 'D:\[Tablas.xls]B'!$B$2:$B$5000
b) las 78 celdas del libro 'Dpto' Hoja 'Especial' Rango 'B1:B78' que vinculaste con el libro 'Tablas' Hoja 'B' por medio de BuscarV

[tercero]: por ello es que te comentaba antes de enviarte un ejemplo [en el post anterior] lo siguiente:


> 4) 'suponiendo' que tu libro 'base' [tablas] contiene los datos 'en horizontal' [por columnas] y los registros en filas...
> y que a tu libro 'destino' [dpto] lo 'conviertes' a vertical [columnas a filas]...

[cuarto]: por lo mismo... 'mi' supuesto fue que las 78 celdas vinculadas 'venian' de 78 columnas en el libro 'de origen' -?-
-> no alcance a 'ver' otra posible relacion entre 5000 filas en un libro 'vinculadas' a 78 en otro -???-

[ahora]... 'regresando' a las exposiciones que haces en las 3 consultas previas/ultimas/...
__ 1 __


> ... si sabemos que hay x registros (pongamos 3 en tu caso del cliente 10)

> no seria más facil identificar en que filas están los repetidos y luego sacar los datos con BuscarV directamente a esa fila?
> ... aunque tengamos los 5000 registros de B, si en a3=11, a4=21, a5=31 (corresponde a las filas en que aparece Cliente 10)
> no se podria montar los necesarios BuscarV a cada click del boton 'sig' por codigo?

1) la funcion buscarv(...), hasta donde se... SOLO puede devolver UNA coincidencia [si existe]...
si existen dos [o mas]... buscarv(...) ya no continua con una busqueda mas... 'profunda/exhaustiva/...' :-((
-> para simular un 'For...Next' de vba por funciones de hoja de calculo, [generalmente] se usa indice() y coincidir() incluso desref()

__ 2 __
> ... Se trata de buscar una parte del texto dentro de una rango: siguiendo tu ejemplo


> imagina que lo que buscamos es "te 1" --> realmente '*te 1*' bajo este argumento

> tendriamos que localizar en tu ejemplo 12 coincidencias: Dato 10 (3 veces) y Dato 11 a Dato 19 (9 veces).

2) prueba adaptando dicha necesidad a las funciones utilizadas en el libro con los ejemplos :D

__ 3 __
> ... Estoy dormido... donde pone Dato debería poner Cliente..

3) el ejemplo 'se trae' dato... porque es lo que existe en la columna que se extrae...
te recuerdo que cuando los datos de una propuesta han tenido que ser supuestos/imaginados/inventados/... por quien propone...
le corresponde a quien consulta hacer las adaptaciones que no fueron expuestas en la consulta :))

[en resumen]: para 'encontrar' las filas donde existen coincidencias...
a) revisa la parte de la formula donde esta la funcion k.esimo.menor que es la que detecta la fila(...)
b) recuerda que es una formula 'matricial' :-((
c) no olvides que el ejemplo usa -solamente- 39 filas... si vas a incluir las 5000 de tu ejemplo/necesidad/... original...
[seguramente] la rapidez en el re/calculo de las [78 ?] formulas... no va a ser 'algo esperado' :-((

Brel

unread,
Dec 4, 2006, 1:30:09 PM12/4/06
to
Hola Héctor y Grupo,
ante todo humildemente perdón por suponer -y presuponer, y 'obligarte' a
hacer lo mismo...sorry.

[segundo] Las 5000 filas en 'Tablas!B': Cada fila corresponde a un cliente,
no hay repeticiones y está ordenada alfabéticamente.
cada cliente tiene 78 datos (columnas). x.e. Fila 6 sería de B6: ...BC6 (el
resto son cálculos en base a estos datos extraídos) los datos a traerme:
B:Empresa; C: CIF....

Cuando 'cojo' un cliente en 'Dpto!Especial me traigo sus datos... de ahí que
haya una columna (B) con 78 datos que por funciones están vinculadas:
B1: Empresa. B2: Cif..... y en B80: lo que escribo y a partir de lo que se
realiza la búsqueda: al encontrar la primera coincidencia B1 saca el dato
(Empresa) y el resto de datos los vinculo por funciones en referencia a este
B1 que es un dato único con lo que BuscarV funciona sin problemas....aunque
sería más lógico usar el CIF que sí es seguro es único, pero bueno, la base
está así, al menos de momento.

Pero el dato tecleado (proviene del textbox0 del formulario Localizador)
puede encontrarse en 'x' empresas (imagina que pongo en B80 'ab' y en
Tablas!B existe un "ab de componentes eléctricos", un "ab de
comunicaciones", un "ab de servicios"... en definitiva distintas 'posibles'
coincidencias que trato de localizar.
Siguiendo este ejemplo: la 1ª vez obtendría "ab de componentes eléctricos" y
extraería todos sus datos.
El siguiente no lo encontrara con un BuscarV en '[Tablas]B!B2:B5000', pero
si se que hay más coincidencias y que la 1ª está en fila 6, si podría lanzar
un BuscarV a '[Tablas]B!B7:B5000' y me traería la siguiente coincidencia,
no? o si se puede llegar a saber que la 2ª coincidencia está en fila 17, la
3ª en fila 160... si podría lanzar los BuscarV a esa fila concreta y
encontraría el dato, no?... Es todo teórico, claro.

[tercero] Por eso no harían falta 78 columnas, con una vale. Si acaso otras
celdas donde depositar las filas de coincidencia.

[Hasta aquí las suposiciones 'obligadas por mi carencia de datos...]

___1___ Mis intentos con esas funciones han fracasado, creo que no he sido
capaz de encontrarles la 'lógica' que sin duda tienen, ojo.
___2___ Repasaré de nuevo, y más concienzudamente tu ejemplo... Según
detectaba cosas -que no había comentado, etc- enviaba mensajes. La ansiedad
me pudo.
___3___ Sorry de nuevo.
[en resumen]Creo que con las explicaciones de ahora se simplifica el modelo,
espero. No serían 5000 matriciales a mi modo de ver si sé que la 1ª
coincidencia está en la fila 6. Para la 2ª deberé lanzar un BuscarV a
B7:B5000, pero intuyo debería depositar esos 78 datos en otra columna...y
así con cada posible coincidencia... creo que no es excesivamente
practico... salvo que las funciones de 'Especial!B1:B78' se entreguen por
código a esas celdas asignándoles cada vez el valor que haya en otras
celdas:
A90: 17 (2ª coincidencia en fila 17)
A91: 160 (3ª coincidencia en fila 160)
.....
y por código trasladara las fórmulas que tengo en B1:B78 adecuándolas al
valor que debe capturar BuscarV de comienzo de fila de búsqueda... Pero
transcribir esas formulas a VBA...buf y luego con un Width...End Width para
2ª coincidencia coge A90, para 3ª: A91... o por Select Case... no sé.

Espero haberte aclarado algo y dejar de 'obligarte a suponer'. Gracias.
Brel

"Héctor Miguel" <NOhemio...@PLShotmail.com> escribió en el mensaje

news:uEJnvUyF...@TK2MSFTNGP05.phx.gbl...

Héctor Miguel

unread,
Dec 5, 2006, 12:42:56 AM12/5/06
to
hola, Brel !

primero que todo... no me 'incomoda' el 'tener que' pre/suponer lo que no se comento en la consulta...
[aunque no lo parezca, te puedo asegurar que me gusta -o al menos intento- 'hacerle al adivino'] :))

me voy a 'tener que' esperar a que hagas un analisis mas 'profundo' del archivo que te envie... ya que [segun yo]...
a) las 78 columnas [del primer archivo 'tablas'] quedaron 'bien supuestas' en el ejemplo enviado [segun 'confirmas' en]...
___
> [segundo] Las 5000 filas en 'Tablas!B': Cada fila corresponde a un cliente, no hay repeticiones y esta ordenada alfabeticamente.
> cada cliente tiene 78 datos (columnas). x.e. Fila 6 sería de B6: ...BC6 (el resto son calculos en base a estos datos extraidos)


> los datos a traerme:B:Empresa; C: CIF....

b) la segunda 'asuncion' de que tales columnas las 'trasladabas' a filas [en el segundo archivo 'depto'] sigue bien 'supuesta' [segun]...
___
> Cuando 'cojo' un cliente en 'Dpto!Especial me traigo sus datos... de ahi que haya una columna (B) con 78 datos
> que por funciones estan vinculadas: B1: Empresa. B2: Cif..... y en B80: lo que escribo y a partir de lo que se realiza la busqueda:


> al encontrar la primera coincidencia B1 saca el dato (Empresa) y el resto de datos los vinculo por funciones en referencia a este B1

> que es un dato unico con lo que BuscarV funciona sin problemas...

c) con relacion a utilizar buscarv para encontrar mas 'coincidencias' basadas en un mismo dato 'repetido' en la tabla donde se busca...
[tengo que insistir]... buscarv SOLO encuentra UNA coincidencia [si existe]... para segundas 'apariciones'... indice y coincidir ;)
___


> Pero el dato tecleado (proviene del textbox0 del formulario Localizador) puede encontrarse en 'x' empresas

> (imagina que pongo en B80 'ab' y en Tablas!B existe un "ab de componentes electricos", un "ab de comunicaciones", un "ab de servicios"...


> en definitiva distintas 'posibles' coincidencias que trato de localizar.

> Siguiendo este ejemplo: la 1ª vez obtendria "ab de componentes electricos" y extraeria todos sus datos.
> El siguiente no lo encontrara con un BuscarV en '[Tablas]B!B2:B5000', pero si se que hay mas coincidencias y que la 1ª esta en fila 6
> si podria lanzar un BuscarV a '[Tablas]B!B7:B5000' y me traeria la siguiente coincidencia, no?
> o si se puede llegar a saber que la 2ª coincidencia esta en fila 17, la 3ª en fila 160...
> si podria lanzar los BuscarV a esa fila concreta y encontraría el dato, no?... Es todo teorico, claro.

d) 'el resto' de esta re/consulta [me parece que] sigue quedado 'dentro' de los comentarios anteriores :D
-> solo re/confirmarte que no serian 5000 formulas matriciales, pero si unas cuantas con matrices de 5000 filas [cada una] :-(

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

> [Hasta aqui las suposiciones 'obligadas por mi carencia de datos...]

___ el resto de esta re/consulta ___
> ___1___ Mis intentos con esas funciones han fracasado, creo que no he sido capaz de encontrarles la 'logica' que sin duda tienen, ojo.
> ___2___ Repasare de nuevo, y mas concienzudamente tu ejemplo... Segun detectaba cosas -que no habia comentado, etc- enviaba mensajes.


> La ansiedad me pudo.
> ___3___ Sorry de nuevo.
> [en resumen] Creo que con las explicaciones de ahora se simplifica el modelo, espero.

> No serian 5000 matriciales a mi modo de ver si se que la 1ª coincidencia esta en la fila 6.
> Para la 2ª debere lanzar un BuscarV a B7:B5000, pero intuyo deberia depositar esos 78 datos en otra columna...
> y asi con cada posible coincidencia... creo que no es excesivamente practico...
> salvo que las funciones de 'Especial!B1:B78' se entreguen por codigo a esas celdas asignandoles cada vez el valor que haya en otras celdas:


> A90: 17 (2ª coincidencia en fila 17) A91: 160 (3ª coincidencia en fila 160) ...

> y por codigo trasladara las formulas que tengo en B1:B78 adecuandolas al valor que debe capturar BuscarV de comienzo de fila de busqueda...


> Pero transcribir esas formulas a VBA...buf y luego con un Width...End Width para 2ª coincidencia coge A90, para 3ª: A91...

> o por Select Case... no se.

0 new messages