Referencia a celda

14/01/2004 - 22:13 por manuel | Informe spam
Saludos al grupo.
El problema que se me plantea es el siguiente:
Tengo una tabla de valores en un rango de cierta extensión. Por ejemplo
B2:T1000
Calculo el valor máximo de todo el rango. Por ejemplo max = 345,55
Necesito saber el número de columna y el número de fila que determinan su
posición, es decir, su referencia.
Si se encuentra en la fila 21 y la columna 10 (J), necesito una función que
al darle como argumentos el rango
de búsqueda y el valor buscado (345,55) me devuelva la referencia (J21)
función_ref( B2:T1000; 345,55 ) --> J21

O bien una función que devuelva el número de columna o de fila de ese valor
función_columna( B2:T1000; 345,55 ) --> 10 (J)
función_fila( B2:T1000; 345,55 ) --> 21

He estado mirando en las funciones de búsqueda y referencia de Excel'97,
pero la verdad es que no me aclaro
mucho, aunque seguiré probando.
Gracias

Saludos,
Manuel.
 

Leer las respuestas

#1 Héctor Miguel
15/01/2004 - 06:00 | Informe spam
hola, manuel !

... tabla de valores en ... B2:T1000 ... calculo el valor maximo ... ejemplo max = 345,55
... saber el numero de columna y el numero de fila que determinan su posicion, es decir
... necesito una funcion que ... me devuelva la referencia [...]



si quieres 'probar' ANTES de 'llegarle' a las macros... las siguientes formulas 'devuelven' su posicion:
usando/combinando la funcion de hoja de calculo =Direccion(Num_fila,Num_columna)
=> toma nota de las siguientes 'observaciones': <1.- 'mi' separador de argumentos es la coma ',' NO el punto y coma ';'
2.- son EN UNA SOLA LINEA [con toda seguridad NO 'caben' en el texto, asi que 'mejor las separo'] :))
3.- podrias 'ahorrarte' una buena parte de 'los chorizos' de formulas ...
si [p.e.] 'factorizas' [en celdas 'separadas'] algunas de las 'constantes' ;)
4.- si de cualquier forma 'prefieres' el uso de macros... ¿comentas?

saludos,
hector.
p.d. [luego me comentas si te sirvio el 'relleno' de areas en graficos x-y ???] :))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
si el maximo valor es 'unico' en la tabla [?] => TODAS 'fallan' si hay mas de un valor 'igual' al maximo < 'matriciales' [ya sabes: introducir / editar 'terminando' con ctrl+mayusc+enter] ==Direccion(
Max((B2:T1000=Max(B2:T1000))*Fila(B2:T1000)),
Max((B2:T1000=Max(B2:T1000))*Columna(B2:T1000)))

Celda("Direccion",Indice(B2:T1000,
Max((B2:T1000=Max(B2:T1000))*(Fila(B2:T1000)-1)),
Max((B2:T1000=Max(B2:T1000))*(Columna(B2:T1000)-1))))

la siguiente formula NO es 'matricial' ==Direccion(
SumaProducto(Max((B2:T1000=Max(B2:T1000))*(Fila(B2:T1000)))),
SumaProducto(Max((B2:T1000=Max(B2:T1000))*(Columna(B2:T1000)))))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
si el maximo valor se encuentra dos [o mas] veces en la tabla :\\
tendras que 'decidir' si 'obtienes' el que se encuentre 'primero' [o ultimo] POR FILAS ... o ... POR COLUMNAS :))
=> si 'decides' que es mejor 'devolver' EL ULTIMO de 'los encontrables'... cambia K.Esimo.Menor por K.Esimo.Mayor <1.- => matricial <=... 'atendiendo' a cual es la primer fila donde se encuentra UNO de los maximos valores
Direccion(
K.Esimo.Menor(SI(B2:T1000=Max(B2:T1000),Fila(B2:T1000)),1),
Columna(B2:T1000)-1
+Coincidir(Max(B2:T1000),
Indirecto(
Direccion(K.Esimo.Menor(SI(B2:T1000=Max(B2:T1000),Fila(B2:T1000)),1),Columna(B2:T1000))
&":"&
Direccion(K.Esimo.Menor(SI(B2:T1000=Max(B2:T1000),Fila(B2:T1000)),1),Columnas(B2:T1000)
+Columna(B2:T1000)-1)),0))

2.- => matricial <=... 'atendiendo' a cual es la primer columna donde se encuentra UNO de los maximos valores
Direccion(Fila(B2:T1000)-1
+Coincidir(Max(B2:T1000),
Indirecto(Direccion(Fila(B2:T1000),K.Esimo.Menor(SI(B2:T1000=Max(B2:T1000),Columna(B2:T1000)),1))
&":"&
Direccion(Filas(B2:T1000)+Fila(B2:T1000)-1,K.Esimo.Menor(SI(B2:T1000=Max(B2:T1000),Columna(B2:T1000)),1))),0),
K.Esimo.Menor(SI(B2:T1000=Max(B2:T1000),Columna(B2:T1000)),1))

Preguntas similares