Extraer componente de una tabla XY

En una hoja de excel introduzco en una columna el valor de POR (por ejemplo 100) y en la otra el valor de Y (por ejemplo 120)
POR Y
100 120
Y quiero obtener en una celda en consecuencia el valor Z de la tabla de 600x600:
        1 2 ... 100... 599.. 600 (X)
1 0 0 ... 3... 6...
2      0 2 ...0 ...... 0......
120  0 0 ...5 ......4......
600  6 0 ... 1.......2.....
(Y)
que le corresponde a esa posición ( X= 100, Y =120) que me daría Z = 5:
Igual es sencillo pero llevo días dándole vueltas y no lo consigo.
Algo parecido lo había solucionado con combinaciones de buscar y condicionales para una tabla de 10 x 10. Pero la opción que utilicé ya no me sirve al ser la tabla del orden de 600x600 y en un futor casi 10000x10000
Agradecería sinceramente si me ayudar y sacar de dudas.

1 Respuesta

Respuesta
1
Lo puedes lograr con las funciones COINCIDIR, DIRECCIÓN e INDIRECTO. La respuesta te la paso medio rápido porque estoy corto de tiempo (perdón)
Primero buscas los valores POR e Y con la función COINCIDIR. Le pasas una matriz y te indica en que posición de ella está el dato buscado. Haces una para la POR y otra para la Y.
Identificas las posiciones de la celda donde se curza la POR con la Y, en mi caso E5 (5 filas, 5 columnas). A esta le sumas el resultado de las funciones coincidir para cada una de ellas.
La función DIRECCIÓN te arma una dirección dada una fila y columna. Lo que hacemos es de la fila 5 sumarle tantas filas hasta donde se encontró el valor buscado, y lo mismo para las columnas.
Cuando tienes la dirección utilizas la función INDIRECTO que te retorna el valor que contiene la misma.
La función sería algo así
=INDIRECTO(DIRECCION(5+COINCIDIR(C4;E6:E11;0);5+COINCIDIR(D4;F5:K5;0);4;1))
Donde en C4 tengo la Y, en D4 la X. Mi matriz se curza en E5 y temrina en K11
Luego mira el tema de absolutos y relativo en dirección, puede que lo mejores.
Debes de controlar cunado no encuentras el valor ya que dará N/A, esto lo haces con SI preguntando por el resultado de la función ESNOD.
Si he logrado ayudarte te agradezco que cierres la pregunta, de lo contrario me avisas.
Gracias por tu respuesta.
La verdad es que al final estuve probando y lo conseguí de un modo +o- sencillo.
Con COINCIDIR y luego INDICE. Creo que es lo más sencillo e intuitivo y en la primera parte es muy parecido al tuyo.
1º Uso COINCIDIR tomando como matriz sólo la fila superior 1 2 ... 100... 599.. 600 (X). En tipo de coincidencia le pongo 0 (Con 1 no me funcionaba) Me busca la posición de X = 100 en la matriz de 1x600, es decir la columna 100. Supongamos que esto lo he hecho en la celda A1
2º Hago lo mismo para Y ahora tomando como matriz esta vez sólo la columna 1 2 ... 120... 599.. 600 (Y). Sería una matriz de 600x1 . Obtendría que a 120 le corresponde 120. Suponemos que esto lo he hecho en la celda A2
Por lo tanto ya tengo que obtener el valor de la fila 120 y columna 100.
3º Ahora ya sólo queda utilizar INDICE tomando como referencia la matriz que forman 1 2 ... 100... 599.. 600 (X) y 1 2 ... 120... 599.. 600 (Y) que voy a llamar B. Ojo! La matriz no incluye la fila superior ni la columna de la izquierda. Quiero decir que en el caso expuesto sería sólo:
0 0 ... 3.......6......
0 2 ...0 ...... 0......
0 0 ...5 ......4......
6 0 ... 1.......2.....
Por lo tanto en una celda A3 introduzco +INDICE(B, A1, A2) y obtengo el valor de esa posición que en mi caso es 5.
Al final lo conseguí de esta manera. Espero que me haya explicado, pues se be mejor adjuntando el archivo.
Lo que me sigo preguntando es porque con tipo de coincidencia 1 no me funcionaba. La verdad es que no se que significa que es eso de tipo de coincidencia. Pero en fin al final he solucionado lo que quería.
Gracias de todas maneras, cuando tenga más tiempo probaré tu opción.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas