Dios Santo, de mi vida y de mi corazón...

En mi vida había visto resolver una cosa tan compleja de otra forma igual de
compleja, jajaja.

Quitando lo de que no se como has nombrado "cantones" a la matriz metida en
el BUSCARV, y que la función INDIRECTO no la conocía, ahora parece tan
sencillo que asusta.

Muchas gracias por todo Ismael. Intentaré reproducir yo mismo esto en el
archivo orinal, a ver si soy capaz. Una pregunta antes. ¿Por qué la columna
auxiliar para el número del canton debe estar despues de la columna
"Vanos"?.

Un saludo :)

El 3 de marzo de 2009 15:45, Ismael Fanlo <[email protected]> escribió:

> Solucionado!
>
> Va adjunto.
>
> Aunque no tengo ni puta idea de lo que estás calculando ahí, he
> intentado descomponer la lógica de la cosa.
>
> El fundamento de mi solución ha sido usar la tabla de los datos de los
> apoyos, a la que he nombrado "cantones" (quizás debía ser "apoyos",
> pero comencé buscando a que cantón correspondía cada apoyo y por eso
> lo nombré así).
>
> A esta tabla le he añadido una columna que me permita ubicar a qué
> cantón corresponde cada apoyo.
>
> Entonces la solución, para que las fórmulas te sirvan para _todas_ las
> filas, se ha basado en trocear  "los chorizos" en porciones, para
> ensamblar todo al final.  Las columnas auxiliares, las tripas de los
> cálculos, las puedes ocultar a conveniencia.
>
> Primero mediante un BUSCARV() debemos calcular a que cantón
> corresponde el apoyo actual y el apoyo anterior, pues los datos sólo
> deben calcularse para apoyos dentro del mismo cantón.  Por eso todo el
> resto de fórmulas están dentro de un SI() que verifica tal cosa y, si
> no se cumple, le mete la etiqueta "- - -".
>
> En plan de prueba, he verificado las primeras medidas angulares, con
> la misma fórmula que tú, pero dentro de ese SI() que comentaba.  Y he
> visto que la cosa funcionaba.
>
> Luego, un cálculo tonto para saber en que fila están los datos que tú
> tenías en fórmulas fijas, esos que a veces son fijos y a veces
> cambian.  Si hubo cambio de cantón se pone la etiqueta "- - -", de lo
> contrario se toma el número de cantón incrementado en 2 (por la
> posición de las celdas en el modelo).
>
> Eso es lo que permite en la siguiente columna determinar un rótulo con
> la referencia al rango que habrá que sumar de la fila de datos fijos
> correspondiente al cantón.  Ahí, he usado la función SUMA(), mucho
> mejor que el operador de suma para este caso.
>
> Este rótulo es el que paso a una función INDIRECTO() en la fórmula
> final para que me efectúe el cálculo del numerador.
>
> El denominador suma las longitudes del cantón actual y el anterior,
> que las obtengo también  mediante funciones BUSCARV()
>
> Se podría meter en un "chorizo" alucinante, pero encuentro que la
> lógica queda más clara así.  Luego te basta con ocultar las columnas
> para que la cosa quede limpia.
>
> No está todo resuelto, pues la última fila funciona mal, provocando
> una división por cero, pero algo tenía que dejar para ti ¿no?  :-)
>
> Bastará con meter estas fórmulas dentro de otro SI() que compruebe si
> estamos en el apoyo 131.
>
> La verdad, me ha encantado ese problema, que era de examen superior.
> Creo que hasta he tenido una erección y todo.  :-D
>
> Un abrazo,
>
>
>
>
> --
> Ismael Fanlo
> El mejor buscador de alojamiento web: http://hosthostings.com
> Ofimática y software libre: http://superalumnos.net
> ¡Locos por Drupal!: http://drupalmania.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>



-- 

Un saludo,

Guillermo Viciana.

Responder a