Como usar um campo selecionável para alterar uma referência de planilha em uma fórmula?

0

Eu tenho uma fórmula que se parece com isso

=B2 - IF((B2 - Single!$D$1) < Single!$A$3, (B2 - Single!$A$2 - Single!$D$1) * Single!$B$2 + Single!$C$2, ...

Estou usando uma espécie de tabela de pesquisa em uma planilha chamada "Único" para uma análise. Gostaria de ter um campo selecionável pelo usuário (idealmente algo como um menu suspenso, digamos na célula S1) para que eu possa alternar entre diferentes planilhas.

Por exemplo, se minhas opções de planilha fossem "Plan1", "Plan2" e "Plan3", eu teria um menu suspenso na célula S1 com essas opções e a fórmula seria atualizada para refletir a escolha. Se "Folha1" fosse selecionada, seria

B2 - IF((B2 - Sheet1!$D$1) < Sheet1!$A$3, (B2 - Sheet1!$A$2 - Sheet1!$D$1) * Sheet1!$B$2 + Sheet1!$C$2, ...

se "Sheet2" fosse selecionado, seria

B2 - IF((B2 - Sheet2!$D$1) < Sheet2!$A$3, (B2 - Sheet2!$A$2 - Sheet2!$D$1) * Sheet2!$B$2 + Sheet2!$C$2, ...

e assim por diante.

Hari Ganti
fonte

Respostas:

3

Você precisa usar a INDIRECTfunção para criar suas fórmulas e uma lista suspensa para que o usuário possa escolher a planilha.

Ambos são bastante fáceis de usar:

(1) Lista suspensa:

  • Crie um intervalo com os valores que você deseja que o usuário selecione; no seu caso, esta é uma lista com as planilhas. Vamos supor que eles sejam significativos o suficiente para o usuário, para que você possa usar a ortografia exata na lista (mas vamos com "Plan1" etc. para este exemplo).
  • Escolha a célula (suponha A1) onde deseja ter a caixa suspensa, vá para Dados> "Validação de dados", Lista e selecione a lista de valores (ou intervalo) que você criou.

(2) Use agora a INDIRECTfunção na sua fórmula (para simplificar, apenas tomo uma pequena parte da fórmula, mas é claro que você deve usá-la sempre que a fórmula usar a Planilha1! Na fórmula):

em vez de B2 - Sheet1!$D$1, você usa B2 - INDIRECT(CONCATENATE(A1;"!$D$1")).
(a CONCATENATEfunção pega a string "Sheet1" da célula A1 e a combina com o texto codificado para fornecer uma referência de célula válida, que é avaliada com a INDIRECTfunção; em vez de CONCATENATEvocê também pode usar o &operador abreviado e comercial ; por favor, também Observe que a função é renomeada CONCATno Excel 2016, mas CONCATENATEainda funcionará no futuro previsível para manter a compatibilidade com versões anteriores).

Peter K.
fonte