Содержимое

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

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

В текущей версии стандарта ODF поддержка структурированных ссылок отсутствует. При сохранении файла в формате .ods структурированные ссылки преобразуются в прямые с сохранением значений, актуальных на момент сохранения. В настоящее время ведутся работы по внедрению структурированных ссылок в стандарт ODF.

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

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

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

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

- При необходимости сохранить совместимость с 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[#Заголовки] вместо myData[[#Заголовки]] или myData[Регион] вместо myData[[Регион]].

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

Ключевое слово | Применение | Пример
--- | --- | ---
[#Заголовки] | Ключевое слово [#Заголовки] ссылается на строку имён полей (заголовков столбцов). Это первая строка диапазона базы данных. Если в диапазоне базы данных не определена строка заголовков (содержит заголовки столбцов), генерируется ошибка #ССЫЛ! | Выражение myData[#Заголовки] ссылается на ячейки A1:D1.
[#Данные] | Ключевое слово [#Данные] ссылается на записи данных в диапазоне базы данных, за исключением строки заголовков столбцов и строки итогов. Также можно использовать короткую форму myData[]. | Выражение myData[#Данные] ссылается на прямоугольную область ячеек A2:D10.
[#Итоги] | Ключевое слово [#Итоги] ссылается на строку итогов. Это последняя строка диапазона базы данных. Если в диапазоне базы данных не определена строка итогов (Содержит строку итогов), генерируется ошибка #ССЫЛ! | Выражение myData[#Итоги] ссылается на ячейки A11:D11.
[#Всё] | Ключевое слово [#Всё] ссылается на весь диапазон базы данных, включая заголовки столбцов и итоги. | Выражение myData[#Всё] ссылается на ячейки A1:D11.
[#Эта строка] | Это ключевое слово описывает неявное пересечение. | Если выражение myData[#Эта строка] используется в формуле в ячейке F2, то оно ссылается на A2:D2. Если то же самое выражение используется в формуле в ячейке F5, то оно ссылается на A5:D5.

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

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

#### Пример

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также

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

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

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

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

Пожалуйста, поддержите нас!