Настройка шаблона Excel для режима Multirow

Шаблоны для режима MultiRow отличаются от обычных шаблонов наличием строки, которая перед заполнением шаблона размножается нужное количество раз, в зависимости от количества строк в исходных данных.

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

 

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

 

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

Есть 2 важных отличия такой размножаемой строки:

  1. Коды полей должны содержать символ # после названия поля
    Т.е. вместо {ФИО} мы пишем в ячейку {ФИО#}
    Это делается для указания программе, что после размножения этой строки шаблона, сюда нужно подставлять данные не из первой строки исходной таблицы, а из очередной строки с данными
     
  2. Этой строке листа назначается имя (метка) с названием MultiRow
    Для назначения метки:
  • выделяем строку целиком
  • слева от строки формул вводим Multirow
  • нажимаем Enter
     

 

В столбец «Номер» можно ввести подстановочный код {%index%}, который проставляет в таблицу номера строк: целые числа от 1 до количества строк в блоке данных.

 

Собственно, на этом шаблон почти готов, но нам нужно ещё вывести под таблицей сумму по столбцу «Сумма премии».

Обычная формула =СУММ() тут вряд ли сработает, — надстройка FillDocuments подставляет в шаблон не значения ячеек исходной таблицы, а отображаемый текст (с форматированием вроде символа рубля и пробелами в качестве десятичного разделителя).
Просуммировать такие значения можно формулой массива =СУММ(ЗНАЧЕН(диапазон_ячеек))

В нашем примере, проделаем следующее:

  1. Введем в ячейку для суммы формулу =СУММ(ЗНАЧЕН(E8:E9))
    Здесь диапазон E8:E9 захватывает ячейку размножаемой строки, и одну пустую ячейку под ней
    Захватывать пустую ячейку снизу нужно, чтобы при размножении строки, Excel корректно расширил диапазон суммирования
  2. Исправим диапазон суммирования на E$8:E9, дописав символ $ перед номером строки первой ячейки
    Это нужно, чтобы диапазон не сдвинулся вниз при добавлении строк
  3. Завершим ввод формулы массива нажатием Ctrl + Shift + Enter вместо Enter
    В строке формул будет отображаться введенная формула в фигурных скобках (вводить самому эти скобки НЕ нужно!)

 

Сейчас формула выдаёт ошибку #ЗНАЧ!, но это нормально, т.к. в указанном диапазоне ячеек чисел нет (а есть текст).
После того как шаблон будет заполнен, формула начнёт работать, выдавая сумму.

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

Если вы все правильно настроили, — результат будет полностью соответствовать вашим ожиданиям.

Описанный в статье файл шаблона, а также исходный файл с данными для подстановки, прикреплены ниже.

ВложениеРазмерЗагрузкиПоследняя загрузка
Шаблон приказа в Excel с меткой Multirow25.04 КБ0Ещё не загружался
Исходная таблица Excel со списком сотрудников10.12 КБ0Ещё не загружался

Комментарии

Предыдущий вопрос про MultiRow в txt снимается: нашёл в ответах на главной странице, что такой вариант невозможен.

Возникла потребность использовать режим MultiRow с выводом в текстовый документ. Мозгов, как сделать шаблон *.txt с этим режимом, не хватило.
Сейчас делаю так: создал шаблон в EXCEL, выгоняю в него, а потом "Сохранить как..." —> "Текстовый документ с разделителями табуляцией".
Есть возможность напрямую выгонять в txt с MultiRow?

Дмитрий, да, можно
Собственно, в инструкции о таком варианте и говорится.

Здравствуйте! Подскажите, пожалуйста, можно ли реализовать следующее.
В таблице Excel с данными выделено несколько строк для создания по ним выходного файла также в Excel. Есть xlsx-шаблон, в котором в ячейках указаны коды, по которым должны подгружаться данные из таблицы.
Как сделать так, чтобы результирующий файл был один и содержал столько строк, сколько я выделил в таблице с данными?

Во все места, куда нужно, вставляйте код поля, значение из которого должно там появиться. Хоть 100, хоть 300 раз по 100.

Добрый день! Планируем приобрести Ваш продукт, все очень нравится и устраивает.
После тестирование, есть вопрос, который сама не могу решить.
У меня есть таблица Exsel, я формирую договор на физическое лицо. Создание файла настроено на столбе "Исполнитель", но в ходе работы есть потребность на одного исполнителя создать несколько договоров, как быть?
Вторая проблема, есть повторяющийся предмет договора, например, чтение лекций и при формировании договора, данный предмет встает столько раз - сколько есть в таблице. Как быть в таком случае? при условии, что есть и другие виды деятельности, которые важны в этом договоре, например, разработка программы и проверка работ слушателей. Каждый вид деятельности может повторяться по 5 и более раз.

Алексей, такая возможность не предусмотрена
Сколько заполненных строк по заданному столбцу (или сколько выделенных строк всего), — на столько строк и размножится строка с меткой в шаблоне

Можно ли сделать определённое количество строк. Допустим ставило не больше 10 строк.

Можно использовать несколько закладок с названиями, начинающимися на Multirow
Например, Multirow1, Multirow2 и т.д.

Как мне на одном листе сделать несколько строк Multirow.
Смысл такой, у меня есть таблица, где в строке есть название и номер Акта и номер схемы соответствующий этому акту. Мне нужно создать реестр, в котором сначала иду строки с названиями и номерами актов потом строки с номерами схем.

Здравствуйте, Антон
Да, вроде, должно работать на разных листах шаблона Excel
Попробуйте

Если ли такая возможность чтоб режим Multirow заполнял несколько листов оной книги т.е. помеченные диапазоны ячеек на разных листах одной книги Multirow1, Multirow2 и тд.

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

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

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

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

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