Uma maneira seria usar uma função VBA que você pode chamar em uma fórmula. A função abaixo retornará o conteúdo de um endereço de célula (isso não funcionará para intervalos em seu formulário atual) em todas as planilhas que não sejam a planilha ativa.
Public Function AcrossSheets(rngAddress As String, Optional includeThisSheet As Boolean = False, Optional wText As String) As Variant
Application.Volatile
Dim tmpResults As String, ws As Worksheet
If includeThisSheet Then
For Each ws In Worksheets
If wText <> "" Then
If InStr(ws.Name, wText) <> 0 Then
tmpResults = tmpResults & ws.Range(rngAddress).Value & ", "
End If
Else
tmpResults = tmpResults & ws.Range(rngAddress).Value & ", "
End If
Next ws
Else
For Each ws In Worksheets
If ws.Name <> ActiveSheet.Name Then
If wText <> "" Then
If InStr(ws.Name, wText) <> 0 Then
tmpResults = tmpResults & ws.Range(rngAddress).Value & ", "
End If
Else
tmpResults = tmpResults & ws.Range(rngAddress).Value & ", "
End If
End If
Next ws
End If
tmpResults = Left(tmpResults, Len(tmpResults) - 2)
AcrossSheets = Split(tmpResults, ", ")
End Function
Para usar esse código, pressione Alt+ F11no Excel, insira um novo módulo e cole o código.
Portanto, se, por exemplo, você quiser somar os valores de B2
cada planilha que não seja a planilha ativa, você usaria a seguinte fórmula de matriz (inserida pressionando Ctrl+ Shift+ Enter):
=SUM(VALUE(AcrossSheets("B2")))
Para incluir o valor de B2
na planilha ativa, use a fórmula da matriz:
=SUM(VALUE(AcrossSheets("B2",TRUE)))
Para somar apenas os valores das B2
planilhas que incluem "Mensal" no nome da planilha (não incluindo a planilha ativa), use a fórmula da matriz:
=SUM(VALUE(AcrossSheets("B2",FALSE,"Monthly")))
Observe duas coisas:
AcrossSheets
retorna uma matriz de valores. Por isso, ele deve ser usado apenas em fórmulas de matriz.
- A matriz retornada por
AcrossSheets
contém valores como seqüências de caracteres (texto). Se você espera de dados numéricos a ser retornado pela função (como nos exemplos acima), você deve envolver a chamada de função no VALUE()
. Isso converterá os dados da string em dados numéricos.