Теория урока
Скрипты надёжнее работают с умными таблицами, чем с адресами: таблица растёт вместе с данными, а столбцы ищутся по имени.
sheet.addTable("A1:D20", true)— превратить диапазон в таблицу (true — есть строка заголовков);table.setName("Продажи");workbook.getTable("Продажи")— найти таблицу по имени;sheet.getTables()— все таблицы листа;table.getColumnByName("Сумма").getRangeBetweenHeaderAndTotal()— данные столбца без заголовка и итогов;table.addRow(-1, ["12.05.2026", "Астана", 54000])— добавить строку в конец;table.getRowCount()— число строк данных;table.setShowTotals(true)— строка итогов;table.getSort().apply([{ key: 2, ascending: false }])— сортировка по третьему столбцу (отсчёт с 0);table.getColumnByName("Город").getFilter().applyValuesFilter(["Алматы"])— фильтр по значениям.
Диаграмма строится методом листа addChart(тип, данные); типы перечислены в ExcelScript.ChartType:
columnClustered (гистограмма), line, pie, barClustered.
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getWorksheet("Продажи");
const table = sheet.addTable(sheet.getUsedRange(), true);
table.setName("Продажи");
table.setShowTotals(true);
table.getSort().apply([{ key: 2, ascending: false }]);
const chart = sheet.addChart(ExcelScript.ChartType.columnClustered, table.getRange());
chart.getTitle().setText("Продажи по городам");
chart.setPosition("G2");
console.log("Строк в таблице: " + table.getRowCount());
}Скрипт выполняется синхронно: не нужно ни await, ни context.sync(), как в надстройках на Office.js.
console.log печатает в панель вывода редактора скриптов.
Повторный запуск: второй вызов addTable на тех же ячейках завершится ошибкой — таблица уже есть.
Поэтому скрипты, которые запускаются регулярно, сначала ищут таблицу через workbook.getTable("Продажи") и создают её, только если результат пустой (undefined).
Тренажёр не выполняет макросы и скрипты. Код из урока запускайте в настольном Excel (VBA) или в Excel для Интернета (Office Scripts). Здесь вы учитесь читать код и проверяете себя формулами и тестом.
Проверьте себя
Enter — ввести · F2 — изменить · F4 — $ в ссылке · Ctrl+C/Ctrl+V — копировать · Ctrl+Z — отменить
Esc или F6 — выйти из таблицы к кнопке «Проверить» · Shift+Tab в первой ячейке — к началу страницы