Содержимое

# Ссылка на таблицу базы данных

LibreOffice Calc позволяет ссылаться на данные в таблицах базы данных с помощью специальной записи, “database table reference”, для ссылки на ячейку внутри таблицы. Эта специализированная нотация нацелена на улучшение читаемости формул со ссылками на ячейки в таблице базы данных.

## Таблицы базы данных

«Таблицы» в электронной таблице определяются по диапазонам базы данных (Данные - Задать диапазон). В дополнение к имени базы данных, для использования ссылок на таблицы базы данных необходимо следующее:

- Таблицы должны иметь вертикальную ориентацию.

- Заголовки столбцов должны соответствовать правилам именованного диапазона.

- При необходимости сохранить совместимость с Microsoft Excel таблицы должны иметь заголовки столбцов.

### Пример

Таблица внизу содержит значения, использующиеся позднее в примерах этого документа.

| A | B | C | D
1 | Имя | Регион | Продажи | Стаж
2 | Smith | Запад | 21 | 5
3 | Jones | Восток | 23 | 11
4 | Johnson | Восток | 9 | 7
5 | Taylor | Запад | 34 | 11
6 | Brown | Восток | 23 | 15
7 | Walker | Восток | 12 | 4
8 | Edwards | East | 15 | 12
9 | Thomas | Запад | 17 | 10
10 | Wilson | Запад | 31 | 3
11 | Итого | 2 | 185 | 8.67

Диапазон ячеекA1:D11 был определён в качестве диапазона базы данных «myData». Параметры Содержит подписи столбцов и Содержит строку итогов были включены при определении диапазона базы данных.

## Создание ссылок на данные в таблицах

Ссылка на таблицу базы данных имеет форму имени диапазона базы данных database_range[…]. Часть внутри квадратных скобок может быть зарезервированным ключевым словом для ссылки, именем поля в квадратных скобках, либо комбинацией того и другого.

В случаях использования одного ключевого слова или одного имени поля, используйте одиночные скобки вместо двойных.

#### Пример

myData[#Headers] вместо myData[[#Headers]] или myData[Регион] вместо myData[[Регион]].

### Зарезервированные ключевые слова для ссылки

Ключевое слово | Применение | Пример
--- | --- | ---
[#Headers] | Ключевое слово [#Headers] ссылается на строку имён полей (заголовков столбцов). Это первая строка диапазона базы данных. Если в диапазоне базы данных не определена строка заголовка (содержит строку столбцов), генерируется ошибка #ССЫЛ! | Выражение myData[#Headers] ссылается на ячейки A1:D1.
[#Data] | The keyword [#Data] references the data records of the database range, excluding the column label row and the totals row. Также можно использовать короткую форму myData[]. | Выражение myData[#Data] ссылается на прямоугольную область ячеек A2:D10.
[#Totals] | The keyword [#Totals] references the row of totals. It is the last row of the database range. Если в диапазоне базы данных не определена строка итогов (Содержит строку итогов), генерируется ошибка #ССЫЛ! | Выражение myData[#Totals] ссылается на ячейки A11:D11.
[#All] | Ключевое слово [#All] ссылается на весь диапазон базы данных, включая заголовки столбцов и итоги. | Выражение myData[#All] ссылается на ячейки A1:D11.
[#This Row] | Это ключевое слово описывает неявное пересечение. | Если выражение myData[#This Row] используется в формуле в ячейке F2, то оно ссылается на A2:D2. Если то же самое выражение используется в формуле в ячейке F5, то оно ссылается на A5:D5.

### Имя поля в квадратных скобках

Для создания ссылки на массив всех значений в записи, принадлежащей одному полю, используйте форму [имя поля]. Диапазон ячеек, на который указывает ссылка не включает заголовки и итоги.

#### Пример

Выражение myData[[Диапазон]] или его упрощённая форма myData[Диапазон] ссылается на ячейки B2:B10. Если в диапазоне базы данных отсутствует строка заголовков, то можно использовать общие заголовки Column1, Column2.

В Microsoft Excel, если формула ячейки принадлежит таблице, то имя таблицы можно опустить. Например, формула =SUM(myData[Продажи]) в ячейке C11 может быть представлена в виде =SUM([Продажи]). Однако в Calc пропускать имя таблицы пока нельзя.

## Комбинации

### Столбцы и записи данных

Для создания ссылки на комбинацию из заголовков столбцов и записей данных можно использовать формат [#Headers];[#Data] или [#Headers],[#Data], где применяется такой же разделитель, как и для параметров функции, определяемый в Сервис - Параметры - Calc - Формула - Разделители.

### Записи данных и строка итогов

Для создания ссылки на комбинацию из записей данных и строки итогов используйте формат [#Data];[#Totals]. Например, myData[[#Data];[#Totals]] ссылается на ячейки A2:D11.

Комбинацию в виде [#Headers];[#Totals] применять нельзя, так как это приведёт к результату в виде двух разрозненных прямоугольных областей ячеек.

### Соседние столбцы

Для создания ссылки на несколько соседних столбцов используйте оператор диапазона “:”. Например, формула myData[[Имя]:[Продажи]] ссылается на ячейки A2:C10.

### Несмежные столбцы

Ссылаться на несмежные столбцы невозможно, поскольку такая ссылка будет адресовать две разрозненные прямоугольные области ячеек.

### Имя поля и ключевое слово

При создании ссылки имя поля можно комбинировать с ключевыми словами. Сначала задаются ключевые слова, затем разделитель функции, и в последнюю очередь имя поля в скобках. Например, myData[[#Totals];[Продажи]] ссылается на ячейку C11.

См. также

Определение диапазона базы данных

Функции базы данных

Задать диапазон

Неявное пересечение в формулах