Na célula D2
, copie / cole esta fórmula: (Você pode ter que alterar vírgulas para ponto e vírgula dependendo das configurações regionais.)
=IF(AND(D$1>=DATE(YEAR($A2),MONTH($A2),1),D$1<=DATE(YEAR($A2),MONTH($A2)+$B2,1)),$C2/$B2,"")
Quebrando, a lógica é esta:
IF
(the date in row 1 is >= the first day of the contract start date month)
AND
(the date in row 1 is <= the first day of the month of the contract start date plus the duration in months)
THEN
calculate the total value divided by the number of months
ELSE
return blank (change "" to 0 or "-" or whatever fits your need)
O ponto chave disso é que os valores na primeira linha - os títulos das colunas - são datas reais e não texto. A forma como a fórmula é escrita, essas datas precisam ser o primeiro de cada mês. Isso não é difícil se você digitar os dois primeiros ou três e depois arrastar o resto; O Excel será incrementado automaticamente. Se isso é um problema, me avise e podemos encontrar outro meio.