Contenu

# Référence de table de base de données

LibreOffice Calc vous permet de référencer des données dans des tables de base de données en utilisant une notation spéciale, une « référence de table de base de données », pour les références de cellules à l'intérieur de la table. Cette notation spéciale vise à améliorer la lisibilité des formules qui référencent des cellules à l'intérieur d'une table de base de données.

La norme ODF ne prend actuellement pas en charge les références structurées. Lors de l'enregistrement d'un fichier au format .ods, les références structurées sont converties en références directes, ne conservant que les valeurs au moment de l'enregistrement. Des travaux sont en cours pour intégrer les références structurées à la norme ODF.

## Tables de base de données

Les « tables » de feuille de calcul sont définies par des plages de base de données (Données - Définir la plage). Outre le nom de la base de données, les éléments suivants sont obligatoires pour utiliser les références de table de base de données :

- Les tables doivent être orientées verticalement.

- Les noms des étiquettes de colonnes doivent suivre les règles de plage nommée.

- Les tables doivent avoir des étiquettes de colonnes, si l'interopérabilité avec Microsoft Excel est requise.

### Exemple

La table ci-dessous contient des valeurs utilisées dans des exemples plus loin dans ce document.

| A | B | C | D
1 | Nom | Région | Ventes | Ancienneté
2 | Smith | Ouest | 21 | 5
3 | Jones | Est | 23 | 11
4 | Johnson | Est | 9 | 7
5 | Taylor | Ouest | 34 | 11
6 | Brown | Est | 23 | 15
7 | Walker | Est | 12 | 4
8 | Edwards | East | 15 | 12
9 | Thomas | Ouest | 17 | 10
10 | Wilson | Ouest | 31 | 3
11 | Totaux | 2 | 185 | 8.67

La plage de cellules A1:D11 a été définie comme la plage de base de données « mesDonnées ». Les options Contient les étiquettes de colonne et Contient la ligne des totaux ont été cochées lors de la définition de la plage de base de données.

## Référencement des données dans les tables

Une référence de table de base de données a pour nom la forme database_range[…]. La partie entre crochets peut être un mot-clé de référence réservé, un nom de champ ou une combinaison des deux.

Dans les cas où un seul mot-clé ou un seul nom de champ est utilisé, utilisez des crochets simples au lieu de crochets doubles.

#### Exemple

mesDonnées[#En-tête] au lieu de mesDonnées[[#En-tête]] ou mesDonnées[Région] au lieu de mesDonnées[[Région]].

### Mots-clés de référence réservés

Mot-clé | Utilisation | Exemple
--- | --- | ---
[#Headers] | Le mot-clé [#Headers] fait référence à la ligne de noms de champs (étiquettes de colonnes). Il s'agit de la première ligne de la plage de la base de données. Si la plage de la base de données ne contient aucune ligne d'étiquettes définie (contient des étiquettes de colonne), une erreur #REF! est générée. | L'expression mesDonnées[#Headers] fait référence aux cellules A1:D1.
[#Data] | Le mot-clé [#Data] fait référence aux enregistrements de données de la plage de la base de données, à l'exclusion de la ligne d'étiquette de colonne et de la ligne des totaux. La forme courte mesDonnées[] peut également être utilisée. | L'expression mesDonnées[#Data] fait référence au rectangle de cellule A2:D10.
[#Totals] | Le mot-clé [#Totals] fait référence à la ligne des totaux. Il s'agit de la dernière ligne de la plage de la base de données. Si la plage de base de données n'a aucune ligne de totaux définie (Contient la ligne des totaux), une erreur #REF! est générée. | L'expression mesDonnées[#Totals] fait référence aux cellules A11:D11.
[#All] | Le mot clé [#All] fait référence à l'ensemble de la plage de bases de données, y compris les étiquettes de colonnes et les totaux. | L'expression mesDonnées[#All] fait référence aux cellules A1:D11.
[#This Row] | Ce mot clé décrit une intersection implicite. | Si l'expression mesDonnées[#This Row] est utilisée dans une formule de la cellule F2, elle fait référence à A2:D2. Si la même expression est utilisée dans une formule de la cellule F5, elle fait référence à A5:D5.

### Nom du champ entre crochets

Pour référencer la matrice de toutes les valeurs des enregistrements appartenant au même champ, utilisez le format [nom du champ]. La plage de cellules référencée n'inclut pas l'étiquette et les totaux.

#### Exemple

L'expression mesDonnées[[Region]] ou sa forme simplifiée mesDonnées[Region] fait référence aux cellules B2:B10. Si la plage de base de données ne comporte aucune ligne d'étiquette, des étiquettes génériques telles que Column1, Column2 peuvent être utilisées.

Dans Microsoft Excel, si la cellule de formule appartient à la table, le nom de la table peut être omis. Par exemple, la formule =SOMME(mesDonnées[Ventes]) dans la cellule C11 pourrait être écrite comme =SOMME([Ventes]). L'omission du nom de la table n'est pas encore possible dans Calc.

## Combinaisons

### Colonnes et enregistrements de données

Pour référencer une combinaison d'étiquettes de colonnes et d'enregistrements de données, utilisez le format [#En-têtes];[#Données] ou [#En-têtes],[#Données], où le séparateur est le même que pour les paramètres de fonction défini dans Outils - Options - Calc - Formule - Séparateurs.

### Enregistrements de données et ligne de total

Pour référencer une combinaison d'enregistrements de données et de lignes de totaux, utilisez [#Données];[#Totaux]. Par exemple, mesDonnées[[#Data];[#Totals]] fait référence aux cellules A2:D11.

Une combinaison comme [#En-têtes];[#Totaux] n'est pas possible car cela donnerait deux rectangles de cellules disjoints.

### Colonnes adjacentes

Pour référencer plusieurs colonnes adjacentes, utilisez l'opérateur de plage « : ». Par exemple, la formule mesDonnées[[Nom]:[Ventes]] s'applique aux cellules A2:C10.

### Colonnes non adjacentes

L'utilisation de colonnes non adjacentes n'est pas possible car elle ferait référence à deux rectangles de cellules distincts.

### Nom de champ et mot-clé

La référence via le nom de champ et l'utilisation d'un mot-clé de référence peuvent être combinées. Indiquez d'abord le mot-clé, puis le séparateur de fonction et enfin le nom du champ entre parenthèses. Par exemple, mesDonnées[[#Totaux];[Ventes]] fait référence à la cellule C11.

Rubriques connexes

Définition d'une plage de base de données

Fonctions de base de données

Définir une plage

Intersection implicite dans les formules

Aidez-nous !