Foros del Web » Soporte técnico » Ofimática »

Excel - Coger un dato de una tabla dependiendo de dos parámetros

Estas en el tema de Excel - Coger un dato de una tabla dependiendo de dos parámetros en el foro de Ofimática en Foros del Web. Buenas a todos, Tengo en una hoja de cálculo de Excel una tabla con tres columnas: una con un campo clave que no se repite ...
  #1 (permalink)  
Antiguo 19/03/2012, 07:17
 
Fecha de Ingreso: diciembre-2009
Mensajes: 24
Antigüedad: 14 años, 4 meses
Puntos: 0
Excel - Coger un dato de una tabla dependiendo de dos parámetros

Buenas a todos,


Tengo en una hoja de cálculo de Excel una tabla con tres columnas: una con un campo clave que no se repite y luego dos columnas con datos que pueden estar repetidos.
Obviamente, cada registro de la tabla (cada fila) es única.

Lo que me gustaría hacer es encontrar una fórmula que dado un dato de Col2 y un dato de Col3 me devuelva el dato clave de Col1.

He intentado utilizar SI() junto con BUSCARV(), pero no consigo hallar un valor en función de otros dos valores.
Hasta donde sé, BUSCARV sólo devuelve un valor en función de otro. Encima, si como rango de celdas a buscar le indico mi tabla, tampoco da resultados válidos ya que el dato a buscar está repetido (no es la clave principal).

Entiendo que esto se pueda hacer con Excel sin llegar a VisualBasic, pero no encuentro la manera de hacerlo.
¿Podríais ayudarme, por favor?

Muchísimas gracias por adelantado.


Saludos
  #2 (permalink)  
Antiguo 19/03/2012, 13:39
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
De acuerdo Respuesta: Excel - Coger un dato de una tabla dependiendo de dos parámetros

Si tus datos se encuentran en el rango

A1:C100

y los dos parámetros asociados a las columnas B y C se encuentran en

E1 y F1

podrías intentar con las siguientes fórmulas matriciales:

= INDICE($A$1:$A$100; MAX( ($B$1:$B$100 = $E$1) * ($C$1:$C$100 = $F$1) * FILA($A$1:$A$100)) )

= INDIRECTO("A" & MAX( ($B$1:$B$100 = $E$1) * ($C$1:$C$100 = $F$1) * FILA($A$1:$A$100) ))

Saludos, Cacho R.
  #3 (permalink)  
Antiguo 20/03/2012, 02:30
 
Fecha de Ingreso: diciembre-2009
Mensajes: 24
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Excel - Coger un dato de una tabla dependiendo de dos parámetros

Buenas de nuevo,

mrocf, primero agradecerte la respuesta.
Tal vez me he explicado mal. Voy a probar a intentarlo de nuevo:

Tengo en una hoja de cálculo un rango de datos entre B3:D141. Tres columnas:
Col1: campo clave
Col2: dato que se puede repetir en varias Col2 de diferentes registros
Col3: dato que se puede repetir en varias Col3 de diferentes registros
NOTA: las Col2 y Col3 podrían estar en blanco (o con un '-')

Ejemplo tabla:
Clave001; SW1; 19
Clave002; SW3; 7
Clave003; SW2; 7
Clave004; SW1; 12
Clave005; SW1; 3
Clave006; SW3; 10

Me gustaría tener en otro sitio de la misma hoja de cálculo unas tablas automatizadas cuyos datos lo cojan de la tabla anterior (datos cruzados).

Tabla SW1 (rango G3:H28, con SW1 en G2)
3 ; Clave005
12; Clave004
19; Clave001

Tabla SW2
7 ; Clave003

Tabla SW3
7 ; Clave002
10; Clave006

Para ello entiendo que lo que habría que hacer sería, por ejemplo para la tabla SW1, hacer una búsqueda en Col2 (C3:C141) de elementos que contengan SW1, luego ver su Col3 (D3:D141) y asociar la ClaveXXX en la nueva tabla dependiendo de esos dos datos.

En las fórmulas que me has indicado hablas de unos parámetros asociados que no tengo. Aún así he intentado adaptarlas y, a no ser que realmente sean válidas y esté haciendo algo mal, no consigo que me dé unos resultados válidos.
He cambiado $E$1 por $G$2 y $F$1 por $G3. INDICE me da directamente los datos de COL1 en orden e INDIRECTO me da error referencial.

Muchísimas gracias por tu ayuda tanto por adelantado como por lo que ya has hecho.


Un saludo
  #4 (permalink)  
Antiguo 20/03/2012, 12:50
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
De acuerdo Excel - Coger un dato de una tabla dependiendo de dos parámetros

Evítanos, por favor, la innecesaria pérdida de tiempo consistente en tratar de reproducir la estructura de tus datos (con el consiguiente margen de error que de ello deviene), y sube al servidor que te plazca (Mediafire, Uploaded, Bitshare, SkyDrive, etc.) una muestra de lo que tienes.

De ese modo será mucho más sencillo ayudarte, ¿OK?.

Saludos, Cacho R.
  #5 (permalink)  
Antiguo 21/03/2012, 02:01
 
Fecha de Ingreso: julio-2006
Ubicación: Madrid
Mensajes: 943
Antigüedad: 17 años, 8 meses
Puntos: 56
Respuesta: Excel - Coger un dato de una tabla dependiendo de dos parámetros

Hola,

Yo no sé si he entendido bien la cuestión, porque utilizo la primera de las fórmulas que sugirió mrocf y me funciona perfectamente.

Según tu última explicación, introduzco la fórmula en la celda H3, pulsando CTRL + SHIFT ya que es una fórmula matricial, y me devuelve la clave correspondiente.

Luego arrastro para el resto y también me da las claves que les corresponden.....

Vamos.... que me adhiero a lo del archivo de ejemplo en un servidor, porque si no, no lo pillo.

Saludos.
  #6 (permalink)  
Antiguo 21/03/2012, 06:32
 
Fecha de Ingreso: diciembre-2009
Mensajes: 24
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Excel - Coger un dato de una tabla dependiendo de dos parámetros

Perdón,
he subido a mediafire el archivo.
Básicamente está la tabla de los datos originales a la izquierda y luego las tablas de la derecha son las tablas a rellenar automáticamente.

No entiendo la referencia "A" que hay en la fórmula de INDIRECTO. Es una fórmula que nunca antes había utilizado. Según ejemplos que he visto por internet creo saber cómo funciona, pero sigo sin hacerlo funcionar.

He subido la misma versión del archivo, pero una para Office 2003 (xls) y otra de Office 2007 (xlsx):
http://www.mediafire.com/?8lceu3a8osokdmd


Muchas gracias a los dos.


Saludos.
  #7 (permalink)  
Antiguo 21/03/2012, 06:38
 
Fecha de Ingreso: diciembre-2009
Mensajes: 24
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Excel - Coger un dato de una tabla dependiendo de dos parámetros

En el archivo que subí no está metida la fórmula del INDICE con ctrl+Shift, pero con esto último tampoco me da los resultados esperados
  #8 (permalink)  
Antiguo 21/03/2012, 06:53
 
Fecha de Ingreso: julio-2006
Ubicación: Madrid
Mensajes: 943
Antigüedad: 17 años, 8 meses
Puntos: 56
Respuesta: Excel - Coger un dato de una tabla dependiendo de dos parámetros

Hola,

Código:
= INDICE($B$1:$B$141; MAX( ($C$1:$C$141 = $G$2) * ($D$1:$D$141 = G3) * FILA($B$1:$B$141)) )
Escrita en H3 e introducida como matricial (CTRL + SHIFT) da los resultados que esperas.

La he copiado y pegado tal cual de la respuesta que te dio mrocf, luego he modificado los rangos y ya está.

Saludos.
  #9 (permalink)  
Antiguo 21/03/2012, 14:20
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
Excel - Coger un dato de una tabla dependiendo de dos parámetros

La fórmula basada en INDICE contiene 3 errores de implementación, mientras que la fórmula basada en INDIRECTO sólo un error: ¡Te muestro esta última!

Pon en la celda I3 la siguiete FORMULA MATRICIAL:

= SI.ERROR(INDIRECTO("B" & MAX( ($C$3:$C$141 = $G$2) * ($D$3:$D$141 = $G3) * FILA($B$3:$B$141) )); "")

La letra "B", que ves, se corresponde con la columna B (que es de donde obtenemos los datos): ¡De allí tu error pues habías dejado la letra A!

En esta oportunidad y para simplificarte las cosas, le he agregado la función SI.ERROR (propia del Excel 2010/2007) para los casos en que no existiese el dato buscado en tu tabla.

Saludos, Cacho R.
  #10 (permalink)  
Antiguo 21/03/2012, 14:25
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
De acuerdo Respuesta: Excel - Coger un dato de una tabla dependiendo de dos parámetros

También podrías intentar en N3 con la siguiente fórmula matricial:

= SI.ERROR(INDICE($B$3:$B$141; COINCIDIR(1; ($C$3:$C$141 = $M$2) * ($D$3:$D$141 = $M3); 0)); "")

Saludos, Cacho R.
  #11 (permalink)  
Antiguo 22/03/2012, 08:39
 
Fecha de Ingreso: diciembre-2009
Mensajes: 24
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Excel - Coger un dato de una tabla dependiendo de dos parámetros

Muchísimas gracias!
Con respecto a la fórmula INDIRECTO: B indica a la columna2 de cualquier tabla o indica la columna B "general"? Supongo que "B" indicará la columna de donde se va a devolver el resultado, no?
Con respecto a la fórmula INDICE: no entiendo el problema que tenía. lo único que tenía diferente es el rango de los datos. En la fórmula que funciona se habla de rango de C1:C141, D1:D141... y yo tenía C3:C141, D3:D141... esto era lo que hacía que mi fórmula no devolvía los resultados que quería y la buena sí?

De nuevo, muchísimas gracias por todo. Sin vosotros no hubiese conocido la solución.


Saludos
  #12 (permalink)  
Antiguo 22/03/2012, 09:45
 
Fecha de Ingreso: julio-2006
Ubicación: Madrid
Mensajes: 943
Antigüedad: 17 años, 8 meses
Puntos: 56
Respuesta: Excel - Coger un dato de una tabla dependiendo de dos parámetros

Vaya!!!

Pues juro que a mi me funcionaba tal cual la pusiste la primera vez, pero si tu dices que había 3 errores, los habría

Saludos
  #13 (permalink)  
Antiguo 22/03/2012, 12:43
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
De acuerdo Respuesta: Excel - Coger un dato de una tabla dependiendo de dos parámetros

Cita:
Iniciado por jchuk Ver Mensaje
Vaya!!!

Pues juro que a mi me funcionaba tal cual la pusiste la primera vez, pero si tu dices que había 3 errores, los habría

Saludos
¡¡¡ Jajajajajaja!!!...
¡Parece que esta vez no me "lucí" por mi claridad!...

Me refería, amigo jchuk, a la implementación que nos mostrara duquesito.

Etiquetas: coger, columnas, dato, dependiendo, excel, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:23.