Как сделать заполнение ячейки excel. Создание автоматически заполняемых списков в Excel. Возможности надстроек для заполнения договоров

На одном из листов рабочей книги Excel, находиться база информации регистрационных данных служебных автомобилей. На втором листе ведется регистр делегации, где вводятся личные данные сотрудников и автомобилей. Один из автомобилей многократно используют сотрудники и каждый раз вводит данные в реестр – это требует лишних временных затрат для оператора. Лучше автоматизировать этот процесс. Для этого нужно создать такую формулу, которая будет автоматически подтягивать информацию об служебном автомобиле из базы данных.

Автозаполнение ячеек данными в Excel

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

Как описано выше регистр находится на отдельном листе Excel и выглядит следующим образом:


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

Теперь рассмотрим, что нужно сделать чтобы после ввода регистрационного номера в регистр как значение для ячейки столбца A, остальные столбцы автоматически заполнились соответствующими значениями.

Как сделать автозаполнение ячеек в Excel:

  1. На листе «Регистр» введите в ячейку A2 любой регистрационный номер из столбца E на листе «База данных».
  2. Теперь в ячейку B2 на листе «Регистр» введите формулу автозаполнения ячеек в Excel:
  3. Скопируйте эту формулу во все остальные ячейки второй строки для столбцов C, D, E на листе «Регистр».

В результате таблица автоматически заполнилась соответствующими значениями ячеек.



Принцип действия формулы для автозаполнения ячеек

Главную роль в данной формуле играет функция ИНДЕКС. Ее первый аргумент определяет исходную таблицу, находящуюся в базе данных автомобилей. Второй аргумент – это номер строки, который вычисляется с помощью функции ПОИСПОЗ. Данная функция выполняет поиск в диапазоне E2:E9 (в данном случаи по вертикали) с целью определить позицию (в данном случаи номер строки) в таблице на листе «База данных» для ячейки, которая содержит тоже значение, что введено на листе «Регистр» в A2.

Третий аргумент для функции ИНДЕКС – номер столбца. Он так же вычисляется формулой ПОИСКПОЗ с уже другими ее аргументами. Теперь функция ПОИСКПОЗ должна возвращать номер столбца таблицы с листа «База данных», который содержит название заголовка, соответствующего исходному заголовку столбца листа «Регистр». Он указывается ссылкой в первом аргументе функции ПОИСКПОЗ – B$1. Поэтому на этот раз выполняется поиск значения только по первой строке A$1:E$1 (на этот раз по горизонтали) базы регистрационных данных автомобилей. Определяется номер позиции исходного значения (на этот раз номер столбца исходной таблицы) и возвращается в качестве номера столбца для третьего аргумента функции ИНДЕКС.

Благодаря этому формула будет работать даже если порядок столбцов будет перетасован в таблице регистра и базы данных. Естественно формула не будет работать если не будут совпадать названия столбцов в обеих таблицах, по понятным причинам.

В лицее хотели учиться 200 детей. Но школа набирала только 75 учеников. На указанном сайте шёл обратный отсчёт. В назначенное время открывалась форма и родители начинали её заполнять. Форма появлялась частями — какая-то информация подгружалась с другой страницы.

Те, кто не уложился в 1,5 минуты, оказались за бортом. Подробнее о том, .

Первое, что пришло на ум: [инструмент сделала, чтобы любой мог воспользоваться — не нужно уметь программировать].

Редактор JavaScript Mozilla Firefox

Если нажать одновременно Shift F4 , появится окошко, куда можно написать любой JavaScript и выполнить его, нажав кнопку "Запустить". Например, вот так можно вывести на экране сообщение

Alert("Моё сообщение");

Скрипт автоматического заполнения полей формы

Второго шанса у меня не было, я не знала что могли изменить разработчики, какие данные будут передаваться, поэтому перестраховалась. В редакторе запускала такой JS.

// данные заявителя requestAnimationFrame(step00); var razstart = null; function step00(timestamp) { var raz = Array.prototype.slice.call(document.querySelectorAll("input, input:not()")).filter(function(a) {return a.offsetHeight > "5"}); // если текстовые поля больше 5px if (!razstart) razstart = timestamp; if (raz.length // пока таких полей не станет больше 5, повторять функцию (надёжнее чем задержка setTimeout и setInterval) requestAnimationFrame(step00); } else { // когда таких полей станет больше 5, заполнить их raz.value = "Иванова"; raz.value = "Наталья"; raz.value = "Ивановна"; raz.value = "0000"; raz.value = "000000"; raz.value = "ОТДЕЛОМ УФМС РОССИИ ПО..."; raz.value = "01.01.2009"; for (var i = 0; i // эмулировать (имитировать) действия посетителя raz[i].dispatchEvent(new Event("change")); raz[i].dispatchEvent(new Event("change")); raz[i].dispatchEvent(new Event("keydown")); raz[i].dispatchEvent(new Event("keyup")); } requestAnimationFrame(step01); // запустить следующую функцию } } // данные о ребёнке var razstart = null; function step01(timestamp) { var raz = Array.prototype.slice.call(document.querySelectorAll("input, input:not()")).filter(function(a) {return (a.offsetHeight > "5") && (a.value != "Наталья") && (a.value != "Ивановна") && (a.value != "0000") && (a.value != "000000") && (a.value != "ОТДЕЛОМ УФМС РОССИИ ПО...") && (a.value != "01.01.2009")}); // если текстовые поля больше 5px и в них не встречается ранее заполненный текст (искл. фамилия) if (!razstart) razstart = timestamp; if (raz.length // адрес регистрации var razstart = null; function step02(timestamp) { var raz = Array.prototype.slice.call(document.querySelectorAll("input, input:not()")).filter(function(a) {return (a.offsetHeight > "5") && (a.value != "Иванова") && (a.value != "Наталья") && (a.value != "Ивановна") && (a.value != "0000") && (a.value != "000000") && (a.value != "ОТДЕЛОМ УФМС РОССИИ ПО...") && (a.value != "01.01.2009") && (a.value != "Иванов") && (a.value != "Иван") && (a.value != "Иванович") && (a.value != "01.01.2009") && (a.value != "город Самара") && (a.value != "III-ЕР") && (a.value != "000000")}); if (!razstart) razstart = timestamp; if (raz.length "5") && (a.innerHTML.indexOf("егистрац") != -1)}).dispatchEvent(new Event("click")); // эмулировать нажатие на кнопку больше 5px и содержащую текст "егистрац" requestAnimationFrame(step03); requestAnimationFrame(step04); requestAnimationFrame(step05); } } // контактные данные var razstart = null; function step03(timestamp) { var raz = Array.prototype.slice.call(document.querySelectorAll("button")).filter(function(a) {return (a.offsetHeight > "5") && (a.innerHTML.indexOf("mail") != -1)}); if (!razstart) razstart = timestamp; if (raz.length == 0) { requestAnimationFrame(step03); } else { raz.dispatchEvent(new Event("click")); var razI = Array.prototype.slice.call(document.querySelectorAll("input")).filter(function(a) {return (a.offsetHeight > "5") && (a.value == "")}); razI.value = "[email protected]"; razI.dispatchEvent(new Event("change")); razI.dispatchEvent(new Event("change")); } } // кнопка "Загрузить данные по требуемым свойствам" var razstart = null; function step04(timestamp) { var raz = Array.prototype.slice.call(document.querySelectorAll("button")).filter(function(a) {return (a.offsetHeight > "5") && (a.innerHTML.indexOf("агруз") != -1)}); if (!razstart) razstart = timestamp; if (raz.length == 0) { requestAnimationFrame(step04); } else { raz.dispatchEvent(new Event("click")); } } // флажок "Я даю согласие на обработку персональных данных" var razstart = null; function step05(timestamp) { var raz = Array.prototype.slice.call(document.querySelectorAll("input")).filter(function(a) {return a.offsetHeight > "5"}); if (!razstart) razstart = timestamp; if (raz.length == 0) { requestAnimationFrame(step05); } else { raz.checked = true; // поставить галку raz.dispatchEvent(new Event("click")); // эмулировать клик raz.dispatchEvent(new Event("click")); } }

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

Итак, менеджеры или кураторы договоров, используя текстовый редактор, (например Microsoft Word) вносят изменения в типовые формы, шаблоны, корректируя определенные поля, такие как номер и дата договора, наименование контрагента, стоимость договора, паспортные данные, банковские реквизиты. При этом пересчитываются различные суммы, такие например как НДС, кстати суммы в договорах зачастую дублируются прописью. Для составления преамбулы договора, такие параметры как имена, фамилии и должности склоняются в различные падежи. Все это требует повышенного внимания и приводит к зрительным нагрузкам. Чем объемнее договор, чем больше в нем различных форм и приложений, тем сильнее желание автоматизировать его заполнение.

Надстройка для автоматизированного заполнения договоров в Word

Автоматическое заполнение договоров можно реализовать различными способами, но подробнее остановиться хотелось бы на наиболее удобном и доступном. И как ни странно такой способ заложен в самом текстовом редакторе Microsoft Word. Встроенный в редактор язык программирования Visual Basic for Application позволяет успешно автоматизировать рутинные задачи, к которым несомненно можно отнести и заполнение договоров. Видов договоров множество: договор подряда, договор поставки, договор аренды, договор купли-продажи, договор комиссии, кредитный договор и многое другое, но все они имеют приблизительно одинаковые поля для заполнения. Если эти поля разметить специальным образом в шаблоне договора, а необходимую информацию запросить у пользователя через диалоговое окно, то впоследствии можно программно заменить эти поля на необходимую информацию.

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

Использовать систему для ускоренного заполнения полей договора проще, чем кажется на первый взгляд. Для начала нужно определиться с теми параметрами, которые будут запрашиваться у пользователя надстройки и выбрать наиболее подходящую конфигурацию надстройки. Далее необходимо скачать и установить надстройку для Word по заполнению договоров. Предварительно разметить свой шаблон договора метками, описанными в документации к надстройке. Открыть шаблон договора и вызвать диалоговое окно надстройки. Затем заполнить поля диалогового окна (вручную заполняется только часть полей, другая часть формируется автоматически, например суммы, написанные прописью и даты) и запустить программу нажатием кнопки "OK".

Автоматическое заполнение договора между двумя юридическими лицами

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

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

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

видео по работе с надстройкой

Автоматическое заполнение договора между юридическим и физическим лицом

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

Возможности надстроек для заполнения договоров

Надстройки позволяют осуществлять:

1) выбор валюты;

3) автоматический подсчет НДС с округлением до двух знаков после запятой (при наличии этого налога);

4) автоматическое написание суммы договора и налога прописью;

5) автоматическое распознавание пола подписанта по имени и отчеству с последующим склонением в родительный падеж должности, фамилии, имени и отчества (для преамбулы);

*Если в данных подписантов вместо полных имен используются инициалы, то программе будет необходима подсказка пола подписанта при помощи опции М/Ж.

6) автоматическое формирование инициалов подписантов;

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

8) импорт данных из диалогового окна в файл Excel;

9) экспорт данных из файла Excel в диалоговое окно.

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

Универсальная надстройка для Word по заполнению любых документов Word данными из Excel

Договоры, соглашения, доверенности, заказы, заявки, акты, квитанции и многое другое можно автоматически заполнять данными из Excel при помощи универсальной надстройки. Количество изменяемых полей в документе не привязано к полям диалогового окна поэтому пользователь сам определяет их количество и названия для кодов, используемых в шаблонах документов. Для заполнения активного документа Word достаточно указать файл Excel с исходными данными. Помимо этого предусмотрено массовое заполнение документов Word.

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

1.1.1 Ввод чисел, текста, даты или времени суток. Для выполнения этих действий щелкните ячейку, в которую необходимо ввести данные, наберите данные, нажмите клавишу Enter или клавишу табуляции и выполните одно из следующих действий.

- Ввод чисел и текста в списке.

1) Введите данные в ячейку в первом столбце и нажмите клавишу табуляции для перемещения в соседнюю ячейку.

2) После ввода данных в первую строку нажмите клавишу Enter, чтобы перейти на начало следующей.

3) Если ячейка, расположенная в начале следующей строки, не становится активной, выберите команду меню Сервис Þ Параметры, а затем – вкладку Правка (рис. 1.1). В группе Параметры установите флажок Переход к другой ячейке после ввода, а затем из списка в направлении выберите значение Вниз.

- Ввод даты. При вводе даты используйте точку или дефис в качестве разделителя, например 09.05.2002 или Янв-2002. Чтобы ввести текущую дату, нажмите клавиши Ctrl+; (точка с запятой).

- Вод времени суток . Для отображения времени суток в 12-часовом формате введите букву a или p, отделенную пробелом от значения времени, например 9:00 p. В противном случае время будет интерпретировано на основе 24-часового формата. Чтобы ввести текущее время, нажмите клавиши Ctrl+Shift+: (двоеточие).

1.1.2 Ввод чисел с фиксированным количеством десятичных разрядов или конечных нулей. Для этого:

1) Выберите команду меню Сервис Þ Параметры, а затем откройте вкладку Правка (см. рис. 1.1).

2) Установите флажок Фиксированный десятичный формат при вводе.

3) В рамке разрядов введите положительное или отрицательное число, которое задает автоматическое умножение вводимого значения на десять в соответствующей степени.

Рисунок 1.1 – Вкладка Правка диалога Параметры

Например, если ввести 3 в рамке разрядов, а затем – 2834 в ячейке, то значение будет равно 2,834. Если ввести -3 в рамке разрядов, а затем – 283, то значение будет равно 283000.

Изменение параметра Фиксированный десятичный формат при вводе не оказывает влияния на введенные до этого данные. Чтобы для данного числа параметр Фиксированный десятичный формат при вводе не использовался, при наборе числа введите десятичную точку.

1.1.3 Ввод одного и того же значения в несколько ячеек одновременно. Для этого:

1) Выделите ячейки, в которые необходимо ввести данные. Они не обязательно должны быть смежными.

2) Введите данные и нажмите клавиши Ctrl+Enter.

1.1.4 Ввод и изменение одного и того же значения на нескольких листах. Если выбрана группа рабочих листов, то изменения в одном из них применяются ко всем выделенным листам. Данные могут быть изменены. Для выполнения этих действий:

1) Выберите листы, на которые необходимо ввести данные. Чтобы выделить:

- отдельный лист щелкните ярлычок листа. Если ярлычок нужного листа не виден, найдите этот ярлычок с помощью кнопок прокрутки листов, а затем щелкните его;

- два или более смежных листа щелкните ярлычок первого листа, а затем, удерживая нажатой клавишу Shift, щелкните ярлычок последнего листа;

- два или более несмежных листа щелкните ярлычок первого листа, а затем, удерживая нажатой клавишу Ctrl, последовательно щелкните ярлычки остальных листов;

- все листы книги щелкните правой кнопкой мыши ярлычок какого-либо листа, а затем выберите команду Выделить все листы в контекстном меню.

2) Укажите ячейку или выделите диапазон ячеек, в которые необходимо ввести данные.

3) Введите или измените данные в первой выделенной ячейке.

4) Нажмите клавишу Enter или клавишу табуляции.

1.1.5 Автоматическое заполнение повторяющихся записей в столбце. Если несколько первых знаков, вводимых в ячейку, совпадают со знаками записи, ранее введенной в этом столбце, то недостающая часть набора будет произведена автоматически. В Microsoft Excel автоматический ввод производится только для тех записей, которые содержат текст или текст в сочетании с числами. Записи, полностью состоящие из чисел, дат или времени, необходимо вводить самостоятельно.

Для подтверждения предлагаемого варианта, нажмите клавишу Enter. Законченная запись по формату полностью совпадает с существующей записью, включая знаки верхнего и нижнего регистра.

Для замены автоматически введенных знаков продолжите ввод самостоятельно.

Для удаления автоматически введенных знаков нажмите клавишу Backspace.

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

1.1.6 Заполнение серии ячеек числами, датами либо другими элементами. Для этого:

1) Выделите первую из заполняемых ячеек.

2) Введите начальное значение для ряда значений.

3) Введите значение в соседнюю ячейку, чтобы определить образец заполнения:

Если требуется получить ряд 2, 3, 4, 5…, введите 2 и 3 в первые две ячейки. Если требуется получить ряд 2, 4, 6, 8…, введите 2 и 4. Если требуется получить ряд 2, 2, 2, 2…, вторую ячейку можно оставить пустой;

Чтобы задать тип ряда значений, перетащите маркер заполнения правой кнопкой мыши, а затем выберите соответствующую команду в контекстном меню. Например, если начальное значение – дата «янв-2002», то для получения ряда «фев-2002», «мар-2002» и т.д. выберите команду Заполнить по месяцам, а для получения ряда «янв-2003», «янв-2004» и т. д. выберите команду Заполнить по годам;

Для того чтобы управлять созданием ряда вручную или использовать для заполнения ряда значений клавиатуру, используйте команду контекстного меню – Прогрессия.

4) Выделите ячейку или ячейки, содержащие начальные значения.

5) Перетащите маркер заполнения через заполняемые ячейки:

Для заполнения в возрастающем порядке перетащите маркер вниз или вправо;

Для заполнения в убывающем порядке перетащите маркер вверх или влево.

1.1.7 Ввод одинаковых данных в разные рабочие листы. Если данные были введены на одном листе, то их можно быстро скопировать в соответствующие ячейки других листов. Для этого:

1) Выберите лист, содержащий введенные данные, и листы, на которые их необходимо скопировать.

2) Выделите ячейки, содержащие данные, которые необходимо скопировать.

3) Выберите команду меню Правка Þ Заполнить Þ По листам.

Если вам необходимо заполнить диапазон набором значений, то можете воспользоваться одним из методов, который состоит во вводе первого значения, написании формулы для расчета следующего значения и копировании формулы.

Например, на рис. 35.1 показан ряд последовательных чисел в столбце А. Ячейка А1 содержит значение 1, а ячейка А2 содержит формулу, которая была скопирована вниз по столбцу: =А1+1

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

  1. Введите 1 в ячейку А1.
  2. Введите 2 в ячейку А2.
  3. Выберите А1:А2.
  4. Переместите указатель мыши в правый нижний угол ячейки А2 (так называемый маркер заполнения ячейки) и, когда указатель мыши превратится в черный знак «плюс», перетащите его вниз по столбцу, чтобы заполнить ячейки.

Вы можете включать и отключать это поведение. Если у ячеек нет маркера заполнения, выберите Файл Параметры , перейдите в раздел Дополнительно диалогового окна Параметры Excel. Здесь в области Параметры правки установите флажок Разрешить маркеры заполнения и перетаскивание ячеек .

Данные, введенные в шагах 1 и 2, обеспечивают Excel необходимой информацией для определения типа серии, которую надо использовать. Если бы вы ввели 3 в ячейку А2, то серия бы состояла из нечетных чисел: 1,3, 5, 7 и т. д.

Вот еще один трюк автозаполнения: если данные, с которых вы начинаете, являются беспорядочными, Excel завершает автозаполнение, выполняя линейную регрессию и заполняя диапазон спрогнозированными значениями. На рис. 35.2 приведен лист с ежемесячными значениями продаж за январь-июль. При использовании автозаполнения после выбора С2:С8 Excel продлевает наиболее вероятную линейную тенденцию продаж и заполняет недостающие значения. На рис. 35.3 показаны спрогнозированные значения, а также график.

Автоматическое заполнение, которое также используют автоматизированные системы учета электроэнергии , также работает с датами и даже некоторыми текстовыми элементами, а именно - названиями дней недели и названиями месяцев. В табл. 35.1 приведено несколько примеров типов данных, которые могут быть автоматически заполнены.

Таблица 35.1. Типы данных с возможностью автозаполнения

Вы также можете создавать собственные списки элементов для автоматического заполнения. Для этого откройте диалоговое окно Параметры Excel и перейдите в раздел Дополнительно . Затем прокрутите окно вниз и нажмите кнопку Изменить списки для отображения диалогового окна Списки . Введите ваши элементы в поле Элементы списка (каждый на новой строке). Затем нажмите кнопку Добавить , чтобы создать список. На рис. 35.4 показан пользовательский список названий регионов, которые используют римские цифры.

Для большего контроля над тем, что происходит при использовании автозаполнения, используйте правую кнопку мыши при перетаскивании маркера заполнения. Отпустив кнопку, вы увидите контекстное меню с некоторыми параметрами (рис. 35.5). Элементы, которые доступны в контекстном меню, зависят от типа выбранных данных. Например, если первая ячейка в серии содержит дату, то будут включены связанные с датой параметры.