Эксель, пожалуй, лучший офисный продукт Майкрософт. Но это не реляционная база данных, как бы вы ни пытались её сделать с помощью функции VLOOKUP (ВПР в русской версии). Подобные действия сродни попытке подстригать траву на садовом участке с помощью обычных канцелярских ножниц.

Теоретически это возможно, но экстремально трудоёмко и неэффективно. Для этих задач существуют другие инструменты, например, триммер или газонокосилка. «Газонокосилкой» в данном контексте является сервер баз данных.
Преимущество использования сервера баз данных в сравнении с таблицами в Экселе особо заметно при иерархической структуре исходных данных. Например, когда мы имеем отдельно заголовок заказа. Он содержит сведения о том, кто является покупателем, кто плательщиком, кто получателем товара, информацию о дате и месте отгрузки, об итоговой сумме заказа, сумме НДС, сумме уже отгруженного товара, сумме товара, который ещё не был отгружен и т.п. (обычно соответствует заголовочной части счёта или счёта-фактуры). Отдельную таблицу, которая содержит строки заказа (то, что мы закупаем или продаём). И отдельную таблицу строк поставки, где каждой строке заказа может соответствовать одна или несколько строк поставки, включая информацию о номерах партий, себестоимости каждой отдельной партии и т.п. В этом случае реализовать связь между такими таблицами в Экселе достаточно сложная задача, а если просто объединить все эти данные в одной таблице, информация становится абсолютно «нечитабельной». Иное дело реляционная база данных, когда мы можем в каждом конкретном случае объединять только те данные, которые необходимы для определённого типа анализа. Если нас интересуют только суммарная информация по покупателям, нам будет достаточно таблицы заголовка заказа/истории заказов. Если нужен анализ о продажах конкретного продукта или товарной группы – только строки заказа. Если конкретного продукта в разрезе покупателей – объединённая информация из заголовка и строк заказов. А если мы захотим иметь аналитику по себестоимости в разрезе продуктов и покупателей, то не обойтись без информации из всех трёх таблиц. Аналогично в других похожих случаях. Разумеется, это лишь упрощённый пример, иллюстрирующий разницу между Экселем и БД.
Если в вашей компании есть какая-то бухгалтерская программа, то и сервер баз данных у вас, скорее всего, имеется. И это тоже лучший продукт Майкрософт, только иного уровня, чем Эксель. Просто загрузите данные, которые вы сейчас храните в Экселе в базу данных и пользуйтесь всеми преимуществами этого продукта. Вы можете обращаться к нему непосредственно из Экселя, но лучше всего, если воспользуетесь встроенной функциональностью Reporting Services (Службы отчетности) сервера баз данных MS SQL Server. Она позволит иметь:
- Удобную единую технологию управления созданием, размещением, распределением прав доступа, доставкой отчётов и, как следствие, отсутствие необходимости поддерживать различные технологии в случае использования отчетов, реализованных в разных системах их создания
- Возможность запуска отчета по расписанию. Результат может складываться в виде «слепка» на момент запуска в отдельную папку, либо присылаться в виде сообщения в ваш почтовый ящик. И даже автоматически отправлять письма вашим клиентам при возникновении просроченной задолженности
- Современную технологию создания отчетов, позволяющую использовать весь набор средств, таких, как условное форматирование, возможность из одного отчета «проваливаться» или, наоборот, «подниматься» на другой уровень подробности (так называемые drill down и drill up), скрывать или раскрывать подробности и многое другое
- Отчётность любого уровня сложности с выбором конкретных параметров из списка или многозначных параметров, когда из списка выбирается несколько значений
- Использование зависимых или независимых параметров, когда параметры могут быть или не быть иерархическими и другие заранее оговорённые возможности параметризации
- Возможность использования отчетов как средства, позволяющего не только просмотреть информацию, но и запустить какой-нибудь механизм, например, инициировать процесс передачи данных в другую систему
- И даже возможность анализа востребованности отчетов (отчёт по использованию отчётов)
Службы отчётности сервера баз данных также лучший продукт Майкрософт среди встроенных средств отчётности. Мы с ним работаем уже более 20 лет и создали тысячи разнообразных отчётов: табличных, матричных, в форме документа, drill down, drill up, drill through, отчёты, выполняющие действие, отчёты, запускаемые по расписанию.
Пишите, звоните, приезжайте. Мы придём и всё сделаем. Совместно с вами составим список необходимых отчётов, определим минимально необходимую подробность данных, их источники, обсудим права доступа различных групп пользователей к различным категориям отчётов, подготовим план проекта. Установим сервер отчётности, если он у вас ещё не установлен (покупать отдельно не надо, это служба сервера баз данных) и настроим его, если понадобится. Создадим согласованные отчёты любой сложности, опубликуем их на сервере отчётности, запустим в работу, научим пользователей использованию отчётов, а технических специалистов управлению правами доступа, созданию и публикации новых отчётов на сервере, настроим процедуры загрузки данных из Экселя и т.д. и т.п. В результате вы получите работающий корпоративный сервер отчётности с размещёнными на нём отчётами в соответствии с согласованным списком. Всё в одном месте, всегда последняя версия, а не непонятный набор разрозненных файлов в разных местах и с неясной датой годности. Вы останетесь довольны 🙂
#Excel #SSRS #ReportingServices #РеляционнаяБазаДанных #DrillDown #DrillUp #VLOOKUP


