TDTabelas Dinâmicas no Excel
Dashboard › Tabelas Dinâmicas › Função OBTERDADOSDIN
Capítulo 9 de 9

Função OBTERDADOSDIN

Ir buscar valores a uma tabela dinâmica com uma fórmula que não se perde quando a tabela muda.

Perguntas de partida

Antes de ler, pense: como responderia a isto só com fórmulas, numa folha com 20 000 linhas?

  1. Montei um quadro-resumo com =B7. Quando mudei um filtro, o valor passou a ser de outro produto. Porquê?
  2. Como faço um indicador fixo: 'vendas de Banana na Europa' que está sempre certo?
  3. O que acontece à fórmula se esse produto deixar de estar visível?
XLS
Ficheiro deste capítulo09-obterdadosdin.xlsx · 2.6 MB · folhas Instruções, Colunas, Dados e Resolução
Descarregar

Muitas vezes queremos usar números de uma tabela dinâmica noutro sítio (um quadro-resumo, um relatório). Uma referência normal (=B7) aponta para uma célula; quando a tabela muda de forma, a célula passa a ter outro valor. A função OBTERDADOSDIN aponta para um dado (produto, região…), por isso continua certa.

Nome da função: no Excel em inglês a função chama-se GETPIVOTDATA e no Excel do Brasil INFODADOSTABELADINÂMICA. Os argumentos são separados por ponto e vírgula.
Resolução — Produto × Região (Canal em Filtros)
Canal(Tudo) ⏷
Soma de ValorRótulos de Coluna ⏷
Rótulos de Linha ⏷ÁfricaAmérica do NorteAmérica do SulÁsiaEuropaTotal Geral
Abacate522 108 €893 135 €414 329 €245 024 €3 363 543 €5 438 139 €
Alface142 575 €201 382 €40 352 €54 882 €960 491 €1 399 683 €
Ananás328 054 €476 420 €218 638 €178 272 €1 982 329 €3 183 712 €
Banana432 771 €618 982 €346 702 €182 542 €3 015 661 €4 596 658 €
Batata105 041 €141 430 €69 430 €37 692 €658 049 €1 011 642 €
Brócolos215 274 €365 416 €159 623 €80 412 €1 709 545 €2 530 271 €
Cebola67 988 €104 700 €74 237 €22 947 €489 111 €758 984 €
Cenoura92 406 €122 352 €71 641 €35 161 €709 795 €1 031 354 €
Feijão Verde183 384 €309 718 €169 876 €46 838 €1 368 621 €2 078 438 €
Laranja214 941 €293 123 €175 491 €66 995 €1 222 276 €1 972 826 €
Maçã324 959 €421 299 €235 434 €117 911 €1 704 130 €2 803 734 €
Manga283 856 €512 902 €218 621 €133 257 €2 165 235 €3 313 871 €
Pera Rocha263 343 €358 152 €169 085 €96 120 €1 670 413 €2 557 113 €
Tomate189 318 €329 650 €193 812 €97 468 €1 565 101 €2 375 349 €
Uva280 304 €372 503 €233 927 €112 458 €2 011 424 €3 010 617 €
Total Geral3 646 321 €5 521 166 €2 791 198 €1 507 981 €24 595 725 €38 062 391 €
Pergunta 1

Montei um quadro-resumo com =B7. Quando mudei um filtro, o valor passou a ser de outro produto. Porquê?

  1. Numa célula fora da tabela escreva =B7 (em vez de clicar). Obtém a Banana em África.
  2. Agora ordene os produtos do maior para o menor, ou filtre um canal.
  3. A célula B7 passa a mostrar outro produto — e o seu quadro-resumo fica errado sem dar qualquer aviso.
Resposta: uma referência normal só sabe a posição. Na folha Resolução do ficheiro, a célula K12 (=B7) serve para comparar.
Pergunta 2

Como faço um indicador fixo: 'vendas de Banana na Europa' que está sempre certo?

  1. Numa célula fora da tabela escreva = e clique na célula da Banana/Europa.
  2. O Excel escreve sozinho a fórmula:
=OBTERDADOSDIN("Soma de Valor";$A$5;"Produto";"Banana";"Região";"Europa")

A sintaxe é OBTERDADOSDIN(campo_de_dados; tabela; campo1; item1; campo2; item2; …):

  • campo_de_dados — o nome do campo de valores ("Soma de Valor");
  • tabela — qualquer célula da tabela dinâmica ($A$5);
  • pares campo/item — que linha e que coluna queremos. Sem pares, a função devolve o Total Geral.
IndicadorFórmulaResultado
Banana vendida na Europa=OBTERDADOSDIN("Soma de Valor";$A$5;"Produto";"Banana";"Região";"Europa")3 015 661 €
Abacate vendido na Ásia=OBTERDADOSDIN("Soma de Valor";$A$5;"Produto";"Abacate";"Região";"Ásia")245 024 €
Total de Uva (todas as regiões)=OBTERDADOSDIN("Soma de Valor";$A$5;"Produto";"Uva")3 010 617 €
Total da América do Sul=OBTERDADOSDIN("Soma de Valor";$A$5;"Região";"América do Sul")2 791 198 €
Total geral=OBTERDADOSDIN("Soma de Valor";$A$5)38 062 391 €
Resposta: ordene, filtre ou mude o esquema da tabela: estes resultados mantêm-se, porque a fórmula procura o dado pelo nome. Pode até trocar o texto por referências a células (ex.: "Produto";J20) para criar um quadro interativo.
Pergunta 3

O que acontece à fórmula se esse produto deixar de estar visível?

  1. Na tabela, oculte a região Europa (filtro de Rótulos de Coluna).
  2. A fórmula da Banana/Europa passa a mostrar #REF!.
Resposta: OBTERDADOSDIN só consegue devolver valores que estão visíveis na tabela dinâmica. Volte a mostrar a Europa e o valor regressa. Pode usar SE.ERRO(OBTERDADOSDIN(…);0) para esconder o erro.
Desligar: se preferir referências normais, clique na tabela › Analisar Tabela Dinâmica › seta de Opções › desmarque Gerar GetPivotData.

Desafio extra

Use o mesmo ficheiro e tente responder sozinho. Clique numa pergunta para ver uma pista.

Construa um quadro com os totais de cada região usando OBTERDADOSDIN e referências às células com os nomes das regiões.

Ex.: =OBTERDADOSDIN("Soma de Valor";$A$5;"Região";J20) e copie para baixo.

Filtre o Canal para Online. Os indicadores mudam? Porquê?

Sim: o filtro altera os valores da tabela, e OBTERDADOSDIN devolve o valor atual (o que está visível).