Eu tenho um documento grande de planilha e quero ter uma planilha mestre que calcule os campos de todas as planilhas. Eu sei que posso selecionar uma célula de uma planilha nomeando explicitamente a planilha e a linha em que estou interessado. No entanto, existe uma maneira de selecionar recursivamente uma célula para que, à medida que adiciono mais planilhas, elas sejam automaticamente incluído no campo calculado na planilha mestre?
microsoft-excel
recursion
Walter Cecil Worsley IV
fonte
fonte
Respostas:
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.
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):Para incluir o valor de
B2
na planilha ativa, use a fórmula da matriz: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:Observe duas coisas:
AcrossSheets
retorna uma matriz de valores. Por isso, ele deve ser usado apenas em fórmulas de matriz.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 noVALUE()
. Isso converterá os dados da string em dados numéricos.fonte