mail mail
Нужен макрос для Excel?
Сделайте заказ прямо сейчас!
Ищете готовое решение?
Выбирайте и покупайте!
У вас есть интернет-магазин?
Настроим парсер под любой сайт!

Создание нескольких таблиц Excel по шаблону из сводной таблицы

В статье рассказывается, как выполнить создание файлов Excel по шаблону (с помощью программы заполнения документов),
если исходные данные для файлов находятся в одной таблице Excel.

 

Основной режим использования программы заполнения документов — это заполнение файлов (по шаблонам),
когда для КАЖДОЙ строки исходной таблицы создаётся отдельный файл

(или несколько файлов, в зависимости от количества шаблонов).

Мы сейчас рассмотрим второй вариант использования программы (точнее, её режима «Multirow»),
когда в шаблоны Excel подставляются данные сразу из нескольких строк,
причем группировку строк для подстановки в каждый шаблон выполняет сама программа.

<позже здесь будет видеоинструкция по использованию этой возможности программы>

 

Предположим, что у нас есть исходная таблица Excel, где в первом столбце располагаются фамилии
(которые повторяются — каждая фамилия фигурирует сразу в нескольких строках таблицы),
а в остальных столбцах — данные для формирования акта (или товарного чека)

исходная таблица для формирования актов и товарных чеков
(щелкните на картинке для увеличения)

 

Наша задача — одним нажатием кнопки, для каждой фамилии из списка,
создать товарный чек и акт
, примерно следующего вида:

Товарный чек, созданный по шаблону при помощи программы заполнения документов
(щелкните на картинке для просмотра нескольких итоговых файлов)

 

Что нам надо сделать, чтобы сформировать такие документы:

  1. в настройках программы FillDocumentsна вкладке «Дополнительно»,
    включить функцию «Multirow», включить режим автоматической группировки строк,
    и указать, по какому столбцу выполнять группировку
    (в нашем случае, это столбец 1 (
    «A»), где содержатся фамилии)
    скриншот окна настроек
  2. там же (в настройках программы), на вкладке «Исходная таблица», поставить галочку 
    «Формировать документы по всем заполненным строкам таблицы»
    (чтобы нам не приходилось каждый раз выделять нужные строки перед запуском)
    скриншот окна настроек
  3. там же (в настройках программы), на вкладке «Создание файлов»,
    настроить маску имени файла (например, {ФИО} - {%filename%}.{%ext%}),
    и поставить галочку «В создаваемых файлах Excel, заменять формулы значениями»
    (если мы намерены отправлять куда-нибудь созданные файлы, т.к. в шаблоне используется формула СуммаПрописью)
    скриншот окна настроек
  4. Настроить (создать) шаблоны акта и товарного чека, поместить их в папку «Шаблоны»
    (о порядке их настройки — ниже)
  5. Открыть в Excel исходную таблицу, и запустить создание файлов по шаблонам,
    нажав на панели инструментов кнопку «Сформировать документы»

 

В шаблоне создаём таблицу с кодами полей и формулами:

 

  ТОВАРНЫЙ ЧЕК № {номер чека} от {дата чека}  
           
          {ФИО}
Наименование товара Ед. изм. Кол-во Цена Сумма
{%index%} {Наименование товара#} {Ед. изм.#} {Кол-во#} {Цена#} =E6*F6
           
  Общий итог       =СУММ(G$6:G7)
           
  Всего наименований: =СЧЁТЗ($B$6:$B7)      
  На сумму: =Пропись_РублиТекстом_КопейкиЧислами(G8)      

 

Обратите внимание: коды полей внутри таблицы ({Наименование товара#}, {Ед. изм.#}, {Кол-во#}, {Цена#})
содержат в конце символ #, что означает вставку из очередной строки блока строк.

Если мы забудем поставить после имени поля символ #, то вся таблица будет заполнена данными из первой строки блока данных
(во всех созданных строках таблицы, данные будут один и те же)

Специальный код поля {%index%} проставляет в таблицу номера строк - целые числа от 1 до количества строк в блоке данных.

 

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

Например, формула =СУММ(G$6:G7) после вставки в шаблон 20 строк автоматически преобразуется в =СУММ(G$6:G26)

Формулы типа =E6*F6, после вставки в шаблон, скорее всего, выдадут ошибку #ЗНАЧ,
но по этому поводу переживать не стоит, — после вставки данных в шаблон, они начнут работать.

Формула =Пропись_РублиТекстом_КопейкиЧислами() — это пользовательская функция,
одна из списка доступных функций в программе заполнения документов.

 

Самое важное в настройке шаблона:

Чтобы строка, содержащая коды {Наименование товара#}, {Ед. изм.#}, {Кол-во#}, {Цена#} и т.п.,
перед вставкой данных была скопирована ниже нужное количество раз,
нам надо её пометить специальным образом.

Это делается присвоением имени Multirow диапазону ячеек
(выделяем строку целиком, и слева от строки формул, вводим слово Multirow, и жмём Enter)

присвоение имени диапазону ячеек - задаём копируемую строку

 

Вот, собственно, настройка шаблона и завершена.

Осталось его сохранить в папку «Шаблоны» (путь к папке указывается в настройках программы),
и попробовать сформировать документы.
Если вы все правильно настроили, — результат будет полностью соответствовать вашим ожиданиям )

Комментарии

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Multirow работает без нареканий. Возникла вот какая проблема: в конечный файл Excel ЧИСЛОВЫЕ данные (стоимости) проставляются в текстовом формате, а следовательно =СУММ(G$6:G7) не работает. (0,00). Ни как не пойму как исправить.

Александр, вместо обычной формулы =СУММ(G$6:G7) используйте формулу массива =СУММ(ЗНАЧЕН(G$6:G7))
(формула массива вводится нажатием Ctrl + Shift + Enter)

Добрый день. у меня вопрос по накладным. Заполняю бланк наклданых. и чтобы они сохранялись в отдельном листе по номеру. Возможно ли такая функция в эксель. спасибо.

СУММ(ЗНАЧЕН(G$6:G7))
Подскажите пжт, к этой формуле, что добавить, чтобы сумма была с разделителям, а то у меня вот так 12111,11 а хотелось бы 12 111,11, заранее спасибо

Это делается форматом ячейки, а не формулой

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
CAPTCHA
Подтвердите, пожалуйста, что вы - человек:
         _  __ __  __  _       ____    ____  
___ | |/ / \ \/ / | | | _ \ |___ \
/ __| | ' / \ / | | | |_) | __) |
| (__ | . \ / \ | |___ | __/ / __/
\___| |_|\_\ /_/\_\ |_____| |_| |_____|
Введите код, изображенный в стиле ASCII-арт.