La irradiación es la energía aportada por el sol sobre una superficie horizontal. El factor K es una constante que multiplica esa energía en función de la la inclinación del plano y de la latitud. Tanto la irradiación como el factor K vienen tabulados. En este caso la tabla de irradiación se refiere a la irradiación media mensual de las provincias españolas y las tablas del factor k incluyen las latitudes 28º y 29º (Canarias) y de la 35º a 45º (península y Baleares).
El trabajo consiste en conocer para una población determinada, seleccionada mediante un desplegable para seleccionar la provincia y otro para seleccionar la población, la inclinación con la que debemos colocar un panel solar para optimizar la instalación.
La selección de población es la misma que la explicada en las entradas anteriores dedicadas a las zonas climáticas de España.
Funciones Excel utilizadas:
Texto()
Indice()
Max()
Coincidir()
Suma()
Si()
Utilización de nombres.
Algunas hojas, algunas columnas y algunas filas están ocultas pero no protegidas.
Las tablas originales estaban ordenadas por orden alfabético. Siguiendo el criterio de que es mucho mejor ordenar por el código postal, como primera medida así lo hice. Incluí el C.P. y ordene las tablas según el C.P. para aquellas tablas que lo necesitaban.
En las tablas del factor K arrastré la latitud para todas las líneas (columna B de la hoja factor K) mediante la función:
=SI(C8="";B7;C8)
La latitud aparece en este caso como parte de las cabeceras, en la columna C (pero solo en la cabecera).El algoritmo de la fórmula se interpreta como “si en Cx no hay nada toma el valor de la celda anterior de la columna B y si tiene algo toma el valor de Cx”. Como en primer lugar pensé en localizar, mediante la función Coincidir, la concatenación inclinación-latitud, necesitaba que todas las líneas tuvieran la latitud correspondiente. Esta manera de hacerlo es mejorable (de hecho en la hoja tablaK lo mejoro) para este caso, pero es muy útil si queremos, por ejemplo, pasar los datos de una hoja excel (como la que tenemos, con datos solo en la cabecera) a una tabla debase de datos.
Concatené la latitud y la inclinación en la columna A.
Como en la tabla K la latitud viene en grados enteros redondeo la latitud de la población mediante la función Texto (TEXTO(B7;"0") & "º" ), en la hoja MaxIrrad celda D7. Esta función, así utilizada, redondea, si los decimales son menores que 0,5 al entero anterior y si son mayor o igual al entero superior. En esta misma hoja, en columna A (de A4 a A21) utilizo la función Coincidir ( =COINCIDIR($E4 & $D$7;Incl;0) ) , en donde la concatenación $E4 y $D$7 es inclinación-latitud e Incl es el nombre de la columna A de FactorK. En A3 está el código provincial.
Al buscar la concatenación inclinación-latitud encuentro la línea de la hoja factorK en donde están los datos que necesito para esa inclinación.
La optimización se supone que se produce cuando se obtiene el máximo de energía (sumatorio de irradiación*factorK), por lo que necesitamos obtener los datos de irradiación de la provincia seleccionada y multiplicarlos por el factor k (para cada mes y cada inclinación). Los valores de irradiación los obtengo con la función:
INDICE(Irrad;$A$3;I$1), en donde Irrad es el nombre de =Irradiación_H!$E$7:$Q$58, $a$3 es el código provincial (debí ponerle nombre) e I$1 es el número de mes. los datos sobre el factor k los obtengo mediante la formula =INDICE(TVal;$A4;I$1), donde Tval es el nombre de =FactorK!$E:$S (area de datos de factor K) y $A4 es el número de la línea donde están los datos.
En la columna obtengo la suma de la energía anual, en las columnas S y T la energía de invierno y de verano.
Mediante la función Max encuentro el máximo para cada mes o periodo de tiempo. A su vez busco ese máximo, con la función Coincidir en su columna. Con el número de línea obtenido, mediante la función Indice, coloco la primera inclinación, en grados, que nos da ese valor máximo. La formula es (para la columna R, anual):
=INDICE(Inclinaciones;COINCIDIR(R22;R4:R21;0))
El resalte, de color azul, de los máximos lo hago utilizando el formato condicional, para cada columna (valor de la celda = máximo de la columna)