¿Cómo poner pesos relativos y ranking de los mismos para distintos elementos y distintas fechas en un tabla extensa de datos?
La imagen muestra una base de datos bastante simplificada a la que realmente tengo pero debería de operar igual cualquier macro:
Sólo trabajo en la hoja "Ranking".
En la columna "A" están los nombres de los elementos.
En cada nombre aparece la fecha de ese elemento en el extremo derecho (son pocos porque son para cada fin de mes y empezaron el 31 de enero de 2014 y normalmente se repiten para varios fondos) y el fondo del que provienen aparece en el lado izquierdo.
Los que dicen en el intermedio "PEN" indican los montos de cada fondo para cada código ( "i_#", que aparece en la fila "1" pero esos códigos no importan) y para cada fecha (fin de mes). Los que dicen "W" en el intermedio indican el peso de cada uno pero no tiene relevancia porque es un peso con ponderación distinta a la que quiero.
EL OBJETIVO:
Después de cada fecha debe insertarse filas que muestre el peso relativo de cada código (i_#) con respecto a cada fondo por cada fecha. En cada etiqueta debe decir "W_RV" en lugar de "PEN"
Luego de eso, debe insertarse filas que hagan un ranking del peso relativo calculado previamente. En cada etiqueta debe decir "RANK" en lugar de "PEN".
Ejemplo de solución:
Lo sombreado sería las nuevas filas que se insertan entre cada fecha.
Lo de azul es el nuevo peso relativo que sería su monto "PEN" entre la suma de todos los montos "PEN" de esa fila.
Lo de naranja muestra el ranking que hace por fila de los pesos relativos previamente calculados.
Mi base tiene 288 filas útiles (desde enero de 2014 a agosto de 2014 y va creciendo) y 824 columnas útiles ("i_#" y va creciendo). A veces hay celdas vacías porque determinada etiqueta no tenía determinado código para determinada fecha, así que el comando ".End(xlToRight)" no es la mejor opción. Lo mejor sería encontrar la última celda llena por cada fila, hacer un rango que vaya de la primera celda llena a la última celda llena y sume valores.
Alguna ayuda por favor! Siempre pongo la mejor calificación. Tal vez podrían guiarme.
Si la hacen, podrían ponerle comentarios a la programación. Me gusta programar pero no soy tan bueno y quiero aprender.