Именованные диапазоны
Именованные диапазоны позволяют назначать пользовательские имена ячейкам, диапазонам ячеек и формулам. Такие имена делают ссылки на данные понятнее, упрощают формулы и повышают читаемость и удобство сопровождения листа.
- Повышение читаемости формул: именованные диапазоны делают формулы понятнее. Например,
AmountвместоA1 + A2 + A3яснее передаёт смысл формулы. - Упрощение сложных ссылок: именованные диапазоны упрощают ссылки на несколько ячеек и сложные диапазоны. Например, можно определить имя
SalesDataдля диапазонаA1:A10, а затем использоватьSalesDataнепосредственно в формулах. - Централизованное управление областями данных: именованные диапазоны помогают управлять областями данных. При изменении диапазона достаточно обновить ссылку в его определении, не изменяя каждую формулу по отдельности.
Использование
Кнопка диспетчера имён находится рядом с полем имени в левом верхнем углу листа. Там можно просмотреть список всех именованных диапазонов и открыть диспетчер, чтобы просматривать, изменять и удалять их.
Чтобы использовать именованный диапазон в формуле, просто введите его имя. Например, если задано имя TotalSales, ссылка на этот диапазон в формуле будет выглядеть как =TotalSales.
Примечания
- Уникальность имён: имена должны быть уникальными в пределах одного листа и не должны совпадать с другими именами или встроенными функциями.
- Допустимые имена: имя не может начинаться с цифры и содержать пробелы или специальные символы, например
!,@или#. Если имя не соответствует правилам, система выведет ошибку. - Изменение именованных диапазонов: откройте панель редактирования «Задать имя», выберите нужное имя и измените его. Затем нажмите «ОК», чтобы сохранить изменения.
- Удаление именованных диапазонов: выберите ненужное имя на панели «Задать имя» и нажмите «Удалить». После удаления связанные формулы станут недействительными.
- Использование на разных листах: именованные диапазоны можно использовать на разных листах одной книги, однако имена должны оставаться уникальными. Одинаковые имена на разных листах могут привести к неоднозначным ссылкам.
- Правила именования: используйте понятные имена и избегайте слишком коротких или расплывчатых названий, чтобы другим пользователям было проще понимать и сопровождать книгу.
- Отладка формул: если при использовании именованных диапазонов возникают проблемы, проверьте правильность имён и ссылок на диапазоны, а также возможные конфликты имён.
- Область действия: имя можно задать на уровне книги или листа. Имена уровня книги доступны во всей книге, а имена уровня листа — только на соответствующем листе.
Facade API
Полные определения типов Facade API доступны в справочнике Facade API.
Создание именованных диапазонов
Метод FWorkbook.newDefinedNameBuilder() создаёт построитель именованного диапазона и возвращает экземпляр FDefinedNameBuilder. С помощью цепочки методов можно сформировать объект ISetDefinedNameMutationParam для создания именованного диапазона.
Некоторые методы FDefinedNameBuilder:
| Метод | Описание |
|---|---|
| build | Создаёт объект именованного диапазона |
| setName | Задаёт имя |
| setFormula | Задаёт формулу именованного диапазона |
| setRef | Задаёт ссылку на диапазон |
| setComment | Задаёт комментарий |
| setScopeToWorksheet | Делает имя доступным на указанном листе |
| setScopeToWorkbook | Делает имя доступным во всей книге |
Метод FWorkbook.insertDefinedNameBuilder() создаёт именованный диапазон, доступный во всей книге.
const fWorkbook = univerAPI.getActiveWorkbook()const definedNameParam = fWorkbook.newDefinedNameBuilder() .setName('MyDefinedName') .setRef('Sheet1!$A$1') .setComment('A reference to A1 cell in Sheet1') .build()fWorkbook.insertDefinedNameBuilder(definedNameParam)Метод FWorkbook.insertDefinedName() позволяет быстро создать именованный диапазон.
const fWorkbook = univerAPI.getActiveWorkbook()fWorkbook.insertDefinedName('MyDefinedName', 'Sheet1!$A$1')Другие методы:
FWorksheet.insertDefinedName(): создаёт именованный диапазон, доступный на указанном листе.
Получение именованных диапазонов
Метод FWorkbook.getDefinedName() возвращает именованный диапазон книги в виде экземпляра FDefinedName.
const fWorkbook = univerAPI.getActiveWorkbook()const definedName = fWorkbook.getDefinedName('MyDefinedName')console.log(definedName?.getFormulaOrRefString())if (definedName) { definedName.setName('NewDefinedName')}Другие методы:
- Метод
FWorkbook.getDefinedNames()возвращает все именованные диапазоны книги в виде массиваFDefinedName[]. - Метод
FWorksheet.getDefinedNames()возвращает все именованные диапазоны, доступные на этом листе, в виде массиваFDefinedName[].
Изменение именованных диапазонов
Метод FWorkbook.updateDefinedNameBuilder() изменяет именованный диапазон книги.
const fWorkbook = univerAPI.getActiveWorkbook()const definedName = fWorkbook.getDefinedName('MyDefinedName')console.log(definedName?.getFormulaOrRefString())// Modify the defined nameif (definedName) { const newDefinedNameParam = definedName.toBuilder() .setName('NewDefinedName') .setRef('Sheet1!$A$2') .build() fWorkbook.updateDefinedNameBuilder(newDefinedNameParam)}Экземпляр FDefinedName также позволяет напрямую изменять конфигурацию именованного диапазона.
const fWorkbook = univerAPI.getActiveWorkbook()const definedName = fWorkbook.getDefinedName('MyDefinedName')console.log(definedName?.getFormulaOrRefString())// Modify the defined nameif (definedName) { definedName.setName('NewDefinedName') definedName.setRef('Sheet1!$A$2')}Удаление именованных диапазонов
Метод FWorkbook.deleteDefinedName() удаляет именованный диапазон из книги.
const fWorkbook = univerAPI.getActiveWorkbook()fWorkbook.deleteDefinedName('MyDefinedName')Именованный диапазон также можно удалить напрямую через возвращённый экземпляр FDefinedName.
const fWorkbook = univerAPI.getActiveWorkbook()const definedName = fWorkbook.getDefinedName('MyDefinedName')console.log(definedName?.getFormulaOrRefString())// Delete the defined nameif (definedName) { definedName.delete()}Насколько полезно это руководство?