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?
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.
| Canal | (Tudo) ⏷ | |||||
| Soma de Valor | Rótulos de Coluna ⏷ | |||||
|---|---|---|---|---|---|---|
| Rótulos de Linha ⏷ | África | América do Norte | América do Sul | Ásia | Europa | Total Geral |
| Abacate | 522 108 € | 893 135 € | 414 329 € | 245 024 € | 3 363 543 € | 5 438 139 € |
| Alface | 142 575 € | 201 382 € | 40 352 € | 54 882 € | 960 491 € | 1 399 683 € |
| Ananás | 328 054 € | 476 420 € | 218 638 € | 178 272 € | 1 982 329 € | 3 183 712 € |
| Banana | 432 771 € | 618 982 € | 346 702 € | 182 542 € | 3 015 661 € | 4 596 658 € |
| Batata | 105 041 € | 141 430 € | 69 430 € | 37 692 € | 658 049 € | 1 011 642 € |
| Brócolos | 215 274 € | 365 416 € | 159 623 € | 80 412 € | 1 709 545 € | 2 530 271 € |
| Cebola | 67 988 € | 104 700 € | 74 237 € | 22 947 € | 489 111 € | 758 984 € |
| Cenoura | 92 406 € | 122 352 € | 71 641 € | 35 161 € | 709 795 € | 1 031 354 € |
| Feijão Verde | 183 384 € | 309 718 € | 169 876 € | 46 838 € | 1 368 621 € | 2 078 438 € |
| Laranja | 214 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 € |
| Manga | 283 856 € | 512 902 € | 218 621 € | 133 257 € | 2 165 235 € | 3 313 871 € |
| Pera Rocha | 263 343 € | 358 152 € | 169 085 € | 96 120 € | 1 670 413 € | 2 557 113 € |
| Tomate | 189 318 € | 329 650 € | 193 812 € | 97 468 € | 1 565 101 € | 2 375 349 € |
| Uva | 280 304 € | 372 503 € | 233 927 € | 112 458 € | 2 011 424 € | 3 010 617 € |
| Total Geral | 3 646 321 € | 5 521 166 € | 2 791 198 € | 1 507 981 € | 24 595 725 € | 38 062 391 € |
Montei um quadro-resumo com =B7. Quando mudei um filtro, o valor passou a ser de outro produto. Porquê?
- Numa célula fora da tabela escreva
=B7(em vez de clicar). Obtém a Banana em África. - Agora ordene os produtos do maior para o menor, ou filtre um canal.
- A célula B7 passa a mostrar outro produto — e o seu quadro-resumo fica errado sem dar qualquer aviso.
=B7) serve para comparar.Como faço um indicador fixo: 'vendas de Banana na Europa' que está sempre certo?
- Numa célula fora da tabela escreva = e clique na célula da Banana/Europa.
- O Excel escreve sozinho a fórmula:
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.
| Indicador | Fórmula | Resultado |
|---|---|---|
| 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 € |
"Produto";J20) para criar um quadro interativo.O que acontece à fórmula se esse produto deixar de estar visível?
- Na tabela, oculte a região Europa (filtro de Rótulos de Coluna).
- A fórmula da Banana/Europa passa a mostrar #REF!.
SE.ERRO(OBTERDADOSDIN(…);0) para esconder o erro.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).