io sono riuscito a farlo solo con formule "sporchissime" data la mia cattiva tecnica, lunghe e macchinose, che vi posto in spoiler ma vi avviso che è solo per stomaci forti
quello che vorrei ottenere di per sè è semplice...
avendo io in colonna A una serie di anni (2021 ; 2022 ; 2023 e così via) e in colonna B associato ad ogni anno un indice (5% ; -0,5% ; 8,7% e così via)
in colonna C e D ho una serie di date, che per ogni riga corrispondono a l'inizio (colonna C) e la fine (colonna D) di un intervallo da prendere in considerazione, che può variare da pochi giorni all'interno di uno stesso anno, a date distanti tra loro per diversi anni
essenzialmente, in colonna E per ogni intervallo esce una media ponderata basata sugli indici annui
per fare alcuni esempi
02/02/2021 - 25/12/2021 e l'indice dell'anno 2021 tenendo conto degli esempi dati sopra è il 5% , avremo come risultato 4,47% (326/365 di 5%)
05/10/2021 - 04/04/2023 bisognerà ponderare in base ai giorni effettivi di ogni anno (87*5%+365*-0,5%+93*8,7%)/545 = 1,95%
io ho fatto questo obbrobio ma è chiaro che è roba da cestinare, peraltro non funziona se le due date non hanno un anno intero in mezzo (le colonne sono diverse dall'esempio di sopra: anni e indici sono da AB3 a AC21, le date inizio e fine da C4 a D14)
https://we.tl/t-s46zfxAQwe
=((((MEDIA.PIÙ.SE(AC$3:AC$21;AB$3:AB$21;">"&ANNO(C4);AB$3:AB$21;"<"&ANNO(D4)))*((((ANNO(D4)-ANNO(C4)-1)*365+DATA(ANNO(C4);12;31)-(C4)+(D4)-DATA(ANNO(D4);1;1))-(((D4)-DATA(ANNO(D4);1;1))+((DATA(ANNO(C4);12;31)-(C4))))))+(DATA(ANNO(C4);12;31)-(C4))*(CERCA.VERT(ANNO(C4);AB$3:AC$21;2;FALSO))+((D4)-DATA(ANNO(D4);1;1))*(CERCA.VERT(ANNO(D4);AB$3:AC$21;2;FALSO)))/((ANNO(D4)-ANNO(C4)-1)*365+DATA(ANNO(C4);12;31)-(C4)+(D4)-DATA(ANNO(D4);1;1))))