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



Представьте, что каждый месяц вам нужно собрать данные из трёх разных систем, собрать их в одну таблицу, посчитать итоги и отправить руководителю. Делая это вручную, вы тратите 30 минут на копирование‑вставку, 15 минут на проверку формул и ещё 10 минут на оформление. За год это ≈ 200 часов – почти одна рабочая неделя!
Автоматизация превращает эту цепочку в один клик. Вы задаёте правила один раз, а система каждый раз делает всё сама, проверяя корректность и уведомляя вас о проблемах.
| Инструмент | Что делает | Где применяется |
|---|---|---|
| Формулы (SUM, VLOOKUP, INDEX/MATCH) | Быстро вычисляют значения в ячейках | Любой отчёт |
| Таблицы (Excel Table, Google Sheets “Named Range”) | Автоматически расширяются при добавлении строк | Сводные таблицы, графики |
| Power Query (Excel) | Загружает, трансформирует и объединяет данные из разных источников без кода | Сборка данных из CSV, баз, веб‑страниц |
| VBA (Excel) | Записывает макросы и сценарии на Visual Basic | Сложные циклы, автоматическая отправка писем |
| Apps Script (Google Sheets) | JavaScript‑подобный язык для автоматизации в облаке | Обновление данных из Google Forms, отправка Email‑уведомлений |
| Conditional Formatting | Выделяет аномалии цветом | Быстрый визуальный контроль |
Все эти инструменты работают параллельно: вы можете начать с простых формул, а затем добавить Power Query или Apps Script, когда понадобится более глубокая автоматизация.
tblSales. Почему таблица? При добавлении новой строки Excel автоматически копирует формулы и стили, а функции типа
SUM(tblSales[Amount])сразу учитывают новые строки.
sales_jan.csv, sales_feb.csv). qrySales. Аналогия: Power Query – это «мульти‑швейцарский нож», который готовит ингредиенты (данные) перед тем, как вы начнёте готовить (анализировать).
qrySales. Region в строки, Amount в значения (сумма). Sub RefreshAllAndMail()
ThisWorkbook.RefreshAll 'Обновляем Power Query и Pivot
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Report")
ws.Range("A1").CopyPicture Appearance:=xlScreen, _
Format:=xlPicture
Dim outlookApp As Object, mail As Object
Set outlookApp = CreateObject("Outlook.Application")
Set mail = outlookApp.CreateItem(0)
With mail
.To = "boss@company.com"
.Subject = "Ежемесячный отчёт продаж"
.Body = "Добрый день! В приложении свежий отчёт."
.Attachments.Add ws.Range("A1").CopyPicture
.Send
End With
End Sub
=IMPORTRANGE("https://docs.google.com/spreadsheets/d/ABC123/edit", "Лист1!A:D")
A1:D100 → Данные → Именованные диапазоны → salesData. =QUERY(salesData, "SELECT C, SUM(D) WHERE B='2024' GROUP BY C LABEL SUM(D) 'Итого'")
QUERY работает как SQL‑запрос, но внутри таблицы. function refreshAndMail() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName('Report');
// Обновляем все формулы (IMPORTRANGE, QUERY)
sheet.getDataRange().setValues(sheet.getDataRange().getValues());
// Формируем PDF
const pdf = DriveApp.getFileById(ss.getId()).getAs('application/pdf');
// Отправляем письмо
MailApp.sendEmail({
to: 'boss@company.com',
subject: 'Ежемесячный отчёт продаж',
body: 'Добрый день! В приложении свежий отчёт.',
attachments: [pdf]
});
}
refreshAndMail будет запускаться автоматически каждый раз, когда меняются исходные данные. | Шаблон | Описание | Где применить |
|---|---|---|
| Шаблон «Краткий KPI» | Таблица с метриками (выручка, количество заказов) и цветовым условным форматированием | Еженедельный отчёт руководству |
| Шаблон «Сводка по регионам» | Power Query → Сводная таблица → Диаграмма | Месячный отчёт продаж |
| Шаблон «Авто‑отчёт из Google Forms» | Apps Script → Сбор ответов → Сводная таблица → Email | Опрос удовлетворённости сотрудников |
| Шаблон «Бюджет проекта» | Таблица с формулами SUMIF, VLOOKUP + VBA‑кнопка «Обновить» |
Финансовый контроль проекта |
Скачайте их из Google Drive (ссылка в конце урока) и адаптируйте под свои нужды.
| Ошибка | Как проявляется | Как исправить |
|---|---|---|
| Формулы «ломаются» после добавления строк | #REF! или неверные диапазоны |
Использовать таблицы (tblSales[Amount]) вместо фиксированных диапазонов |
| Power Query не обновляется автоматически | Данные остаются старыми | Включить «Обновлять при открытии» в свойствах запроса |
| Apps Script не имеет доступа к файлам | Ошибка «Permission denied» | Включить OAuth‑разрешения в меню «Resources → Cloud Platform project» |
| Выполняется слишком медленно | Ожидание > 30 секунд | Уменьшить диапазон, использовать ArrayFormula вместо копий формул |
Запишите эти показатели в таблицу «Эффективность» и обновляйте её каждый месяц. Это будет ваш личный KPI автоматизации.
tblExpenses в Excel, импортируйте данные из двух CSV‑файлов (январь и февраль) через Power Query, объедините их и построьте сводную таблицу с итогами расходов по категориям. IMPORTRANGE для подключения к публичному файлу с данными о продажах, затем напишите QUERY, который покажет только те строки, где сумма превышает 10 000 USD. A1:D20 в новый лист Archive и сохраняет его как отдельный файл Report_yyyymmdd.xlsx. Dashboard. Добавьте триггер «Time‑driven». Готово! Теперь у вас есть полностью рабочий план автоматизации рутинных отчётов в Excel и Google Sheets. Применяйте полученные навыки в реальных проектах, и каждый клик будет экономить вам часы и силы. 🚀