Referência em tabelas de banco de dados

Sumário

# Referências a tabela de banco de dados

O LibreOfficeDev Calc permite que faça referência a dados em tabelas de banco de dados usando uma notação especial, uma “referência de tabela de banco de dados”, para referenciar células dentro da tabela. Essa notação especial visa melhorar a legibilidade de fórmulas que fazem referência a células dentro de uma tabela de banco de dados.

O padrão ODF atualmente não oferece suporte a referências estruturadas. Ao salvar um arquivo no formato .ods, as referências estruturadas são convertidas em referências diretas, preservando apenas os valores no momento da gravação. Esforços para introduzir referências estruturadas no padrão ODF estão em andamento.

## Tabelas de banco de dados

As "tabelas" da planilha são definidas por intervalos de banco de dados (Dados -Definir intervalo). Além do nome do banco de dados, o seguinte é obrigatório para usar referências de tabela de banco de dados:

- As tabelas deve estar orientadas verticalmente.

- Os rótulos de coluna devem seguir as regras de nomes de intervalo.

- As tabelas devem ter rótulos de colunas, caso seja necessário manter a interoperabilidade com o Microsoft Excel.

### Exemplo

A tabela abaixo contém valores usados em exemplos mais adiante neste documento.

| A | B | C | D
1 | Nome | Região | Vendas | Antiguidade
2 | Smith | Oeste | 21 | 5
3 | Jones | Leste | 23 | 11
4 | Johnson | Leste | 9 | 7
5 | Taylor | Oeste | 34 | 11
6 | Brown | Leste | 23 | 15
7 | Walker | Leste | 12 | 4
8 | Edwards | East | 15 | 12
9 | Thomas | Oeste | 17 | 10
10 | Wilson | Oeste | 31 | 3
11 | Totais | 2 | 185 | 8.67

O intervalo de células A1:D11 foi definido como o intervalo do banco de dados "meusDados". As opções Contém rótulos de coluna e Contém linha de totais foram marcadas ao definir o intervalo do banco de dados.

## Referenciar dados em tabelas

Uma referência de tabela de banco de dados tem o formato de nome intervalo_de_banco_de_dados[…]. A parte dentro dos colchetes pode ser uma palavra-chave de referência reservada, um nome de campo ou uma combinação dos dois.

Nos casos em que uma única palavra-chave ou um único nome de campo for usado, use colchetes simples em vez de colchetes duplos.

#### Exemplo

meusDados[#Headers] no lugar de meusDados[[#Headers]] ou meusDados[Region] no lugar de meusDados[[Region]].

### Palavras-chave reservadas

Palavra-chave | Utilização | Exemplo
--- | --- | ---
[#Headers] | A palavra-chave [#Headers] referencia a linha dos nomes de campo (rótulos de coluna). É a primeira linha do intervalo de banco de dados. Se o intervalo do banco de dados não tiver nenhuma linha de rótulos definida (Contém rótulos de coluna), será gerado um erro #REF!. | A expressão meusDados[#Headers] faz referência às células A1:D1.
[#Data] | A palavra-chave [#Dados] faz referência aos registros de dados do intervalo do banco de dados, excluindo a linha do rótulo da coluna e a linha dos totais. A escrita encurtada meusDados[] também pode ser usada. | A expressão meusDados[#Data] faz referência ao retângulo de células A2:D10.
[#Totals] | A palavra-chave [#Totais] faz referência à linha de totais. É a última linha do intervalo do banco de dados. Se o intervalo do banco de dados não tiver nenhuma linha de totais definida (Contém linha de totais), ocorre um erro #REF! . | A expressão meusDados[#Totals] faz referência às células A11:D11.
[#All] | A palavra-chave [#All] faz referência ao intervalo inteiro do banco de dados incluindo os rótulos de coluna e linha de totais. | A expressão meusDados[#All] faz referência às células A1:D11.
[#This Row] | Esta palavra-chave descreve uma interseção implícita. | Se a expressão mesDados[#This Row] for usada numa fórmula na célula F2, ela referencia A2:D2. Se a mesma expressão for usada numa fórmula na célula F5, ela referencia A5:D5.

### Nome de campo em colchetes

Para referenciar a matriz de todos os valores nos registros que pertencem ao mesmo campo, use o formato [nome do campo]. O intervalo de células referenciado não inclui rótulo e totais.

#### Exemplo

A expressão meusDados[[Region]] ou a sua forma simplificada meusDados[Region] faz referência às células B2:B10. Se o intervalo do banco de dados não tiver nenhuma linha de rótulo, rótulos genéricos como Coluna1, Coluna2 podem ser usados.

No Microsoft Excel, se a célula da fórmula pertencer à tabela, o nome da tabela pode ser omitido. Por exemplo, a fórmula =SOMA(meusDados[Vendas]) na célula C11 pode ser escrita como =SOMA([Vendas]). A omissão do nome da tabela ainda não é possível no Calc.

## Combinações

### Colunas e registros de dados

Para referenciar uma combinação de rótulos de coluna e registros de dados, use o formato [#Headers];[#Data] ou [#Header],[#Data], onde o separador é o mesmo separador dos parâmetros de função definidos em Ferramentas - Opções - Calc - Fórmula - Separadores.

### Registro de dados e linha de totais

Para referenciar uma combinação de registros de dados e linha de totais, use [#Data];[#Totals]. Por exemplo, meusDados[[#Data];[#Totals]] referencia as células A2:D11.

Uma combinação como [#Headers];[#Totals] não é possível, pois isso resultaria em dois retângulos de células disjuntos.

### Colunas adjacentes

Para referenciar várias colunas adjacentes, use o operador de intervalo “:”. Por exemplo, a fórmula meusDados[[Nome]:[Vendas]] aborda as células A2:C10.

### Colunas não adjacentes

O uso de colunas não adjacentes não é possível, pois isso faria referência a dois retângulos de células separados.

### Nome de campo e palavra-chave

A referência via nome de campo e o uso de uma palavra-chave de referência podem ser combinados. Primeiro informe a palavra-chave, depois o separador de função e, por último, o nome do campo entre colchetes. Por exemplo, meusDdos[[#Totals];[Vendas]] faz referência à célula C11.

Tópicos relacionados

Definir um intervalo de banco de dados

Funções de banco de dados

Definir intervalo

Interseção implícita em fórmulas

♥ Doe para nosso projeto! ♥