Pb con BDEXTRAER...más datos

09/02/2004 - 18:21 por MG | Informe spam
Exactamente el problema que tengo con BDEXTRAER es este

En una hoja tengo una tabla con datos como estes

MAQUINA TIPO SECCION LONGITUD_MINIMA LONGITUD_MAXIMA TIEMP
AAA BBB CCC 1 20 10
AAA BBB CCC 21 40 20
DDD FFF GGG 1 20 30


En otra tengo una tabla como est

MAQUINA TIPO SECCION LONGITUD TIEMP
AAA BBB CCC 25 (FORMULA

La formula debe buscar en la tabla la máquina entre cuya longitud minima y máxima está la longitud de mi 2º tabla. (Y también debe coincidir el tipo y seccion)

En Lotus con BDEXTRAER funciona, pero en Excel no hay manera

Gracias por echarme una mano

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
09/02/2004 - 22:49 | Informe spam
hola, MG !

... el problema que tengo con BDEXTRAER es ...
... debe buscar en la tabla ... entre cuya longitud minima y maxima esta la longitud de mi 2º tabla.
... tambien debe coincidir el tipo y seccion
En una hoja tengo una tabla con datos como estos:
MAQUINA TIPO SECCION LONGITUD_MINIMA LONGITUD_MAXIMA TIEMPO
AAA BBB CCC 1 20 100
AAA BBB CCC 21 40 200
DDD FFF GGG 1 20 300
.
En otra tengo una tabla como esta
MAQUINA TIPO SECCION LONGITUD TIEMPO
AAA BBB CCC 25 (FORMULA)
En Lotus con BDEXTRAER funciona, pero en Excel no hay manera.



==> 'necesitas' un rango con [TODOS] los criterios que se vayan a 'validar / descalificar'
'suponiendo' que la base de datos fuera 'Hoja1!A1:F8'
en alguna de las hojas tienes que 'construir' un rango con los criterios +/- como sigue:
[suponiendo que fuera en la 2a hoja]
________________________________________________________________
|__|____A____|___B___|____C____|________D________|________E________|
| 6 | MAQUINA | TIPO | SECCION | LONGITUD_MINIMA | LONGITUD_MAXIMA
| 7 | AAA | BBB | CCC | <% | >%

la formula para extraer el dato que 'coincide' con TODOS los criterios establecidos es:
½Extraer(Hoja1!A1:F8,"Tiempo",A6:E7) => 'traeria' un resultado de: 200 <[no se si en lotus 'funcione diferente' o los requerimientos / argumentos sean diferentes] :(

==> si quieres que 'encuentre' [nada mas] como dices...
'entre cuya longitud minima y maxima esta la longitud de mi 2º tabla...'
y... '... tambien debe coincidir el tipo y seccion'
entonces necesitas una formula [matricial... 'de momento'] que...
- encuentre la fila 'coincidente' [si...]
- 'valida' [o 'comprueba'] que la maquina 'solicitada' coincide [y si...]
- 'valida' [o 'comprueba'] que el tipo 'solicitado' coincide [y si...]
- 'valida' [o 'comprueba'] que la seccion 'solicitada' coincide [y si...]
- 'valida' [o 'comprueba'] que la longitud 'solicitada' ESTA 'entre' las minima y maxima [de la tabla 'original'] ;)
'suponiendo' que en tu 2a tabla tienes los siguientes 'requerimientos':
_______________________________________________
|__|____A____|___B___|____C____|_____D____|___E___|
| 1 | MAQUINA | TIPO | SECCION | LONGITUD | TIEMPO
| 2 | AAA | BBB | CCC | 25 | (FORMULA)

una formula MATRICIAL [de entre otras varias] que 'funciona' es:
=> es en una sola linea, la separo segun los 'pasos' que apunto en el parrafo anterior <= :))
=Indirecto("Hoja1!F"&
Max(Fila(Hoja1!A2:A8)
*(Hoja1!A2:A8¢)
*(Hoja1!B2:B8²)
*(Hoja1!C2:C8Â)
*(Hoja1!D2:D8<Ò)*(Hoja1!E2:E8>Ò)))

saludos,
hector.
Respuesta Responder a este mensaje
#2 MG
10/02/2004 - 21:51 | Informe spam
Gracias Hector, pero desilusión. No se si estoy poniendo tu formula mal, pero solo me funciona con la primera fila
Por si te ayuda, los datos exactos son estos. La tabla de tiempos (una parte) es asi
maqu tipo secc lgt min lgt max T
100 200 300 1 100 152
100 200 300 101 200 6
200 200 300 1 100 3
200 200 300 101 200 7
Si pongo los datos de la primera fila funciona
maqu tipo secc lgt tie
100 200 300 100 152
Pero si pongo de otra fila (por ejemplo debería traer la segunda) da error
maqu tipo secc lgt tie
100 200 300 150 #¡REF

Te agradezco tu ayuda, tengo unas cuantas hojas de Lotus a convertir y en todas tengo el mismo problemay mi cabeza no da para más

Un saludo
Respuesta Responder a este mensaje
#3 Héctor Miguel
10/02/2004 - 22:55 | Informe spam
hola, MG !

... desilusion ... solo me funciona con la primera fila.
... los datos exactos son estos ... tabla de tiempos (una parte) es asi: [...]
... los datos de la primera fila funciona:
... si pongo de otra fila (por ejemplo debería traer la segunda) da error: ... #¡REF! [...]



ademas de los datos 'exactos'... es importante ==> LA DIRECCION de los rangos <=[sobre todo, si la formula la vas a 'extender' a otras filas mas abajo]
[lo cual, si lo quisieras hacer con BDExtraer, ocuparia varios rangos 'de criterios'] :((

suponiendo que la base de datos esta en 'Hoja1' y las filas de los rangos es 2 a 8 <=recuerda que SIN los 'titulos'
cambia la referencia a los rangos de la hoja con la base de datos a referencias ABSOLUTAS [p.e.]
=Indirecto("Hoja1!F"&
Max(Fila(Hoja1!$A$2:$A$8)
*(Hoja1!$A$2:$A$8¢)
*(Hoja1!$B$2:$B$8²)
*(Hoja1!$C$2:$C$8Â)
*(Hoja1!$D$2:$D$8<Ò)*(Hoja1!$E$2:$E$8>Ò)))

saludos,
hector.
Respuesta Responder a este mensaje
#4 Héctor Miguel
11/02/2004 - 22:41 | Informe spam
hola, MG !

... sigo sin conseguirlo.
... misma formula en la fila 1 funciona ... en la fila 2 ya no ... en la fila 3 ... me trae el tiempo de la fila 1 [...]
maqu tipo secc lgt tiem
100 200 300 99 1523
100 200 300 99 #¡REF!
200 200 300 50 1523



[me parece que]... NO estas 'haciendo' que la/s formula/s sean =>matriciales<= OJO
si las copias... [una vez que han quedado 'matriciales']... NO hay 'problema' [tambien se copian 'matriciales']
... 'pero' ...
al 'introducirlas' o 'editarlas'... DEBES 'terminarlas' con la combinacion de teclas =>{Ctrl}+{Mayusc}+{Enter}<==> NO con un 'simple' {Enter}<== :((

¿confirmas?
saludos,
hector.
Respuesta Responder a este mensaje
#5 Héctor Miguel
12/02/2004 - 18:09 | Informe spam
hola, María !

Funciona!! [...]
Saludos desde España.
María.



gracias por el 'feed-back'
saludos desde México ;)
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida