Meu primeiro palpite foi parcialmente correto, mas no sentido errado.
Problema 1
O valor de pesquisa
DATE(LEFT(A1,4),MID(A1,6,2),31)
é baseado no valor 2011-11 e é, portanto, equivalente a
DATE(2011,11,31)
Isso dará valores inconsistentes. Para outubro, dá 31Oct11. Para novembro é de 1Dec11. Para obter valores consistentes, como o último dia de qualquer mês, use:
DATE(LEFT(A1,4),MID(A1,6,2)+1,0)
Problema 2
Se você copiar sua fórmula inicial na coluna
=INDEX(GBP!$A$4:$BE$42,MATCH($B4,GBP!$A$4:$A$42,0),
MATCH(DATE(LEFT(A1,4),MID(A1,6,2),31),GBP!$A$3:$CE$3,1))
você recebe "#VALUE!" para todas as cópias porque A1 se torna B1, C1, etc.
Você precisa
=INDEX(GBP!$A$4:$BE$42,MATCH($B4,GBP!$A$4:$A$42,0),
MATCH(DATE(LEFT($A$1,4),MID($A$1,6,2),31),GBP!$A$3:$CE$3,1))
^ ^ ^ ^
Problema 3
Na sua fórmula de matriz
=SUM(C4:C13/INDEX(GBP!$A$4:$BE$42,MATCH($B4:$B13,GBP!$A$4:$A$42,0),
MATCH(DATE(LEFT(A1,4),MID(A1,6,2),31),GBP!$A$3:$CE$3,1)))}
você tem cinco intervalos dos quais deseja usar o Excel como dois arrays. Não consigo encontrar nada para sugerir o Excel se for inteligente o suficiente para adivinhar o que você quer.
O melhor que posso oferecer é definir D4 para:
=INDEX(GBP!$A$4:$BE$42,MATCH($B4,GBP!$A$4:$A$42,0),
MATCH(DATE(LEFT($A$1,4),MID($A$1,6,2)+1,0),GBP!$A$3:$CE$3,1))
Copie esta fórmula na coluna e calcule o total com:
{=SUM(C4:C13/D4:D13)}
No entanto, eu sou um bom programador VBA para Excel; Eu não sou um usuário avançado do Excel. Outros podem ser capazes de lhe dizer como conseguir o que você procura.