Когда вы вставляете пустые строки между существующими строками данных, формула не будет копироваться и вставляться в новую строку, вам следует перетащить или заполнить ее вручную. Но иногда вы хотите заполнить формулу, когда вы автоматически вставляете пустые строки между диапазоном данных, как показано на следующем снимке экрана, в этой статье я расскажу о некоторых быстрых приемах для решения этой задачи.
Формула автозаполнения при вставке пустых строк при создании таблицы
Формула автозаполнения при вставке пустых строк с кодом VBA
Формула автозаполнения при вставке пустых строк при создании таблицы
В Excel формат таблицы может помочь вам автоматически заполнить приведенную выше формулу в новые вставленные пустые строки, пожалуйста, сделайте следующее:
1. Выберите диапазон данных, в котором вы хотите автоматически заполнить формулу, а затем щелкните Вставить > Настольные, см. снимок экрана:
2. В Создать таблицу диалог, проверьте В моей таблице есть заголовки если в ваших данных есть заголовки, см. снимок экрана:
3. Затем нажмите OK и таблица была создана, и теперь, когда вы вставляете пустую строку, приведенная выше формула будет автоматически вставлена в новую строку, см. снимок экрана:
Формула автозаполнения при вставке пустых строк с кодом VBA
Если вам не нравится изменять данные в таблице, приведенный ниже код VBA также может помочь вам решить эту проблему.
1. Выберите вкладку рабочего листа, содержащую формулы, которые вы хотите автоматически заполнить, и щелкните правой кнопкой мыши, чтобы выбрать Просмотреть код из контекстного меню, чтобы перейти к Microsoft Visual Basic для приложений окно, а затем скопируйте и вставьте следующий код в модуль:
Код VBA: формула автозаполнения при вставке пустых строк
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'Updateby Extendoffice 20160725
Cancel = True
Target.Offset(1).EntireRow.Insert
Target.EntireRow.Copy Target.Offset(1).EntireRow
On Error Resume Next
Target.Offset(1).EntireRow.SpecialCells(xlConstants).ClearContents
End Sub
2. Затем сохраните и закройте этот код, вернитесь к рабочему листу, теперь, когда вы дважды щелкаете ячейку между данными, новая строка будет вставлена под активной ячейкой, и формула также будет автоматически заполнена.
Демонстрация: формула автозаполнения при вставке пустых строк
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Комментарии (13)
Оценок пока нет. Оцените первым!
Определяем положение последнего числа в столбце:
=СУММ(C3:ИНДЕКС(C:C;ПРОСМОТР(9E+307;C3:C1000;СТРОКА(C3:C1000))))
Сложно…
Один из недостатков суммирования в диапазоне, заданном с запасом — при удалении строк диапазон суммирования уменьшается и возможен случай, когда в сумму будут попадать не все значения.
Можно задать статичный диапазон, на который не влияет добавление/удаление строк:
=СУММ(C3:ИНДЕКС(C:C;1000)
Но такой вариант не избавляет от лишних вычислений в пустых строках.
Функция СУММЕСЛИ
умеет определять используемый диапазон, поэтому просматривать будет ровно столько строк, сколько нужно:
=СУММЕСЛИ(C:C;">0")
Или по значению другого столбца:
=СУММЕСЛИ(B:B;"модуль1";C:C)
Важно: такая формула должна быть записана не в столбце суммирования.
Если условия суммирования добавляются (например, значение других столбцов, диапазон дат…), можно использовать более продвнутую сестричку — СУММЕСЛИМН
Verba Пользователь Сообщений: 189 |
Как сделать так что бы при вставке новой строки, в колонке(в которой уже забита формула) автоматически добавлялась формула, а то постоянно приходится вбивать вручную |
Не знаю правильно ли я вас понял, но когда я добавляю новую строку в какой-нибудь большой таблице (внутри) и надо все все формулы скопировать с верхней строки, то я использую такой макрос Sub Макрос1() |
|
Скорее всего Вы правильно меня поняли и дали правильный код. Только что то у меня он не работает. Вроде все правильно делаю. Мне нужно чтобы при добавлении строк в столбце копировались формулы , а не получались пустые ячейки. http://i016.radikal.ru/0806/c9/8584c27fd9c1.jpg |
|
А почему человек куда-то должен идти смотреть вашу картинку? Здесь нельзя выложить? Впроочем, тут принято файлы Excel выкладывать. |
|
** ТУРБО-ЁЖ ** *ЕХСЕL@ХАКЕР.RU* ============== Гость |
{quote}{login=}{date=07.06.2008 09:57}{thema=}{post}Мне нужно, чтобы при добавлении строк в столбце, копировались формулы, а не получались пустые ячейки. Так и не добавляйте их, а копируйте: выделив строку с формулами, копировать -> в нужном месте ПКМ -> Добавить скопированные ячейки |
Sh_Alex Пользователь Сообщений: 732 |
{quote}{login=Verba}{date=07.06.2008 08:09}{thema=Автоматическое добавление формулы в колонку}{post}Как сделать так что бы при вставке новой строки, в колонке(в которой уже забита формула) автоматически добавлялась формула, а то постоянно приходится вбивать вручную{/post}{/quote} |
<А почему человек куда-то должен идти смотреть вашу картинку? Здесь нельзя выложить? Впроочем, тут принято файлы Excel выкладывать> спасибо учту. Вручную понятное дело можно скопировать формулу , хочется как то автоматизиовать, чтобы формулы сами копировались |
|
а вы попробуйте так 1) добавить новую строку (чтобы над этой строкой была строка с формулами) |
|
Посмотрел вашу картинку…. ужаснулся сколько формул вам надо копировать вручную…. 2? 3? Хотите я вас свою табличку покажу? ) Там несклько тысяч строк и 250 столбцов с формулами и таких 5 листов. И там при добавлении любой строки действительно замучаешься на каждом листе протягивать эти формулы ) P.S. надо проверить будет ли мой макрос работать с объединёнными ячейка… |
|
Конечно покажите , может быть Ваш макрос будет работать в моих таблицах.( Вы увидели одну и ужаснулись…. а у меня их сотни) |
|
Раз вы не хотите выкладывать свою таблицу (в Excel), придётся создавать свой пример. См. файл. Там 2 макроса. Используйте тот, который вам больше понравится (или который будет быстрее работать в ваших таблицах) |
|
а можно преобразовать столбцы в списки… там формулы и фрматы автоматически могут вставляться.. |
|
** ТУРБО-ЁЖ ** *ЕХСЕL@ХАКЕР.RU* ============== Гость |
{quote}{login=Pavel55}{date=08.06.2008 02:20}{thema=}{post}Используйте тот, который вам больше понравится{/post}{/quote} Мне бы понравился, если бы он ещё считал Rows.Count |
{quote}{login=Pavel55}{date=08.06.2008 02:20}{thema=}{post}Раз вы не хотите выкладывать свою таблицу (в Excel), придётся создавать свой пример. См. файл. Там 2 макроса. Используйте тот, который вам больше понравится (или который будет быстрее работать в ваших таблицах){/post}{/quote} |
|
{quote}{login=** ТУРБО-ЁЖ ** *ЕХСЕL@ХАКЕР.RU* ==============}{date=08.06.2008 05:18}{thema=Re: Автоматическое добавление формулы в колонку}{post}{quote} Эмм… не считает Rows.Count? хм. странно. Это он у всех должен считать. Видно какая-то библиотека Excel’я у вас упала. |
|
Не знаю, может вам какой-нибудь один из этих двух макросов подойдёт P.S. Жалко в Excel нет событие «добавление строки», тогда можно было бы отслеживать добавление строки и протягивать формулу автоматом, а так придётся всегда вручную запускать макрос |
|
** ТУРБО-ЁЖ ** *ЕХСЕL@ХАКЕР.RU* ============== Гость |
{quote}{login=Pavel55}{date=09.06.2008 12:03}{thema=}{post}Жалко, в Excel нет события «добавление строки», чтобы можно было отслеживать добавление строки и протягивать формулу автоматом, а так придётся всегда вручную запускать макрос{/post}{/quote} Зато можно на «Изменение» подвесить контроль диапазона на наличие пустот и, при необходимости, тянуть верхнюю. |
Verba Пользователь Сообщений: 189 |
|
Verba Пользователь Сообщений: 189 |
Спасибо Вам друзья за помощь. |
Verba Пользователь Сообщений: 189 |
Спасибо Вам друзья за помощь. |
Был очень верный совет от Слэна — таблица. |
|
{quote}{login=Z}{date=10.06.2008 10:43}{thema=}{post}Был очень верный совет от Слэна — таблица. Прицеп забыл, извините. |
|
{quote}{login=Z}{date=10.06.2008 10:52}{thema=Re: }{post}{quote}{login=Z}{date=10.06.2008 10:43}{thema=}{post}Был очень верный совет от Слэна — таблица. Прицеп забыл, извините. Большущее спасибо, самое то… я в шоке, как Вы так все быстро делаете.:) |
|
Покажите ка примере, как можно сделать чтоб при добавлении новой записи (в ячейку B73) автоматически копировались формулы из этой строки (73), а именно из ячеек A73 и H73, в следующую строку!? плюс к этому автоматически создавались списки в столбцах C и D по этому же принципу. Заранее благодарен! |
|
Verba Пользователь Сообщений: 189 |
Уважаемый «Z» еще раз спасибо Вам помощь. Можно сделать вашу работу как то пограмно, что бы нельзя было их удалить или ненароком испортить. |
Verba Пользователь Сообщений: 189 |
Только что заметил серьезный баг в своей таблице. Размеры в колонках даны в см. а толщина в колонке Е в мм. |
1)Уважаемый Verba! К великому сожалению я не силен в XL — обычный пользователь. Насколько смог поправил таблицу и формулу. См. ППУ(2). Далее, увы… |
|
Verba Пользователь Сообщений: 189 |
|
Vovan RU Пользователь Сообщений: 425 |
{quote}{login=Pavel55}{date=08.06.2008 02:20}{thema=}{post}Раз вы не хотите выкладывать свою таблицу (в Excel), придётся создавать свой пример. См. файл. Там 2 макроса. Используйте тот, который вам больше понравится (или который будет быстрее работать в ваших таблицах){/post}{/quote} …и года не прошло, как опять обращаюсь за помощью… :)))) Если не сложно, подправьте приведенные коды так, чтобы они выполнялись автоматически при добавлении новой строки с привязкой к листу, а не ко всей книге. |
Vovan RU Пользователь Сообщений: 425 |
#30 10.10.2009 16:08:07 Немного поспешил с вопросом. Подкорректировал сам, оказалось просто. Прикрепленные файлы
|
Как программно протянуть формулы при добавлении строк |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
0 / 0 / 0 Регистрация: 25.08.2015 Сообщений: 33 |
|
1 |
|
Автоматическое копирование формул при добавлении строки27.09.2016, 14:32. Показов 18943. Ответов 5
В таблицу часто вносятся данные путём добавления строк (зачастую в хаотичном порядке то в середину то выше то ниже, но главное что не в первую и не в последнюю строку) Если да то как??? Простой пример прилагаю.
0 |
5942 / 3154 / 698 Регистрация: 23.11.2010 Сообщений: 10,524 |
|
27.09.2016, 14:53 |
2 |
РешениеОтформатируйте таблицу как Таблицу и тогда все Ваши пожелания реализуются.
2 |
0 / 0 / 0 Регистрация: 25.08.2015 Сообщений: 33 |
|
27.09.2016, 15:01 [ТС] |
3 |
А как это сделать? ))))
0 |
5942 / 3154 / 698 Регистрация: 23.11.2010 Сообщений: 10,524 |
|
27.09.2016, 15:08 |
4 |
Kamekadze_rus, выделить таблицу — Главная — группа Стили — Форматировать как таблицу.
0 |
2640 / 1697 / 694 Регистрация: 04.09.2015 Сообщений: 3,367 |
|
27.09.2016, 15:11 |
5 |
Еще можно формулы немного поправить, чтобы при вставке строк не было ошибки деления на ноль и автоматически добавлялся номер строки.
0 |
0 / 0 / 0 Регистрация: 25.08.2015 Сообщений: 33 |
|
27.09.2016, 15:16 [ТС] |
6 |
Всем большое спасибо!
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
27.09.2016, 15:16 |
Помогаю со студенческими работами здесь Автоматическое копирование строки в другую таблицу по признаку содержания определенной ячейки QTextBrowser — автоматическое копирование текста при нажатии Как сделать автоматическое копирование данных при их изменении? Excel. Копирование столбца, при заполнении 22-й строки продолжить копирование в соседний столбец Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 6 |
I’ll show you how to make formulas and functions that automatically update when more data is added to a range in Excel.
A simple example is when you want to sum a range that will have more data added to it over time. You don’t want to have to continue to update your formulas and functions, so you want dynamically updating formulas and functions.
Here is our sample spreadsheet:
Now, let’s add a number to the list and see what happens:
The regular sum did not change but the dynamic sum updated to show the correct amount.
(Make sure to download the workbook for this tutorial so you can follow along).
Here is the regular SUM:
Here is the dynamically updating sum function:
=SUM(OFFSET(A2,0,0,COUNT(A:A)))
To make the above formula compatible with versions of Excel prior to Excel 2007, use this:
=SUM(OFFSET(A2,0,0,COUNT(A1:A100)))
This is just because you can’t reference an entire column in Excel 2003 and earlier and A:A references an entire column, column A.
Now, let’s break-up this formula.
Basically, I am just using the OFFSET() function to return a range that the SUM() function will then use instead of hard-coding a range into the SUM() function.
This is the portion of the above formula that makes it dynamic:
OFFSET(A2,0,0,COUNT(A:A))
All you need to do is to change these two parts of it to work for you:
OFFSET(A2,0,0,COUNT(A:A))
To use the OFFSET() function to return a dynamic range we simply need to put the first cell in the range as the first argument, A2 in this case.
Then, we need to use the COUNT() function as the 4th argument for the OFFSET() function in order to figure out how big our range should be. Change A:A to whatever column contains your list of data.
The COUNT() function counts all cells in the range that have a number. The range reference that you use for the COUNT() function should be large enough to hold any size list that you could have in the future so it does not need to be changed.
If you use Excel 2007 or later, just use A:A as the argument for the COUNT() function, as shown in the first dynamic example above. This way, the entire column will be referenced.
Dynamic Ranges that Include Text and More
If you are in Excel 2007 and later you can use the COUNTA() function instead of the COUNT() function. The COUNTA() function counts all cells that are NOT empty whereas the COUNT() function only counts the cells that have numbers in them.
Best Practices
If you make formulas and function dynamic by using the OFFSET() function as mentioned above, it will cause confusion and clutter very quickly when you make large formulas.
One commonly used way around this is to use Named Ranges that dynamically update when you add new values to a range. This uses the same method as we illustrated above except that the OFFSET() function and its contents are contained within a Named Range and this Named Range is then used in the formulas and functions in the spreadsheet whenever you need to reference a range that you want to update each time you add a value to the range or list.
Here is our Dynamic Named Range in Excel Tutorial that will show you how to do that.
The OFFSET() function is the key to creating dynamic formulas and functions in Excel. Make sure to check out our OFFSET Function Tutorial if you want a more in-depth explanation of how it works.
Similar Content on TeachExcel
Automatically Shade Every Other Row When You Add Data in Excel
Tutorial: How to make Excel automatically add row shading to every other row when you add data to th…
Convert Numbers into True and False in Excel
Tutorial: How to convert numbers into the TRUE and FALSE Boolean values in Excel. This is very impor…
MOD Function in Excel
Tutorial: The MOD function is very simple but it can be used to do wonderful things in Excel.
It ret…
OFFSET Function in Excel
Tutorial:
The OFFSET function in Excel returns a cell or range reference that is a specified number…
3D References — Formulas that Reference Multiple Sheets at Once in Excel
Tutorial:
Have one simple formula that will reference the same cell or range of cells on multiple w…
Dynamic Named Range in Excel
Tutorial:
How to create a named range that expands automatically when a new value is added to the r…
Subscribe for Weekly Tutorials
BONUS: subscribe now to download our Top Tutorials Ebook!
В процессе работы с Microsoft Excel у пользователей возникает необходимость внесения дополнительных данных. Для этого необходимо добавлять или копировать строки с формулами.
Кажется, это простая и понятная процедура. Но часто возникает вопрос о том, как добавить новую строку с формулами в Excel с определенными условиями. Например, без изменения адресов в формулах с относительными ссылками на ячейки и т.п. На готовых примерах рассмотрим оригинальные решения этих задач.
Как добавить новую строку с формулами в Excel?
Пускай мы добавили формулы в одну строку или в несколько. Теперь нам нужно скопировать все строки с формулами. Как это сделать при добавлении новой строки?
- Выделяем ту строку, которая содержит формулы. В нашей ситуации это строка под номером 3. Нам необходимо, чтобы остальные строки содержали в себе такие же формулы.
- Нажимаем на выделенную область правой кнопкой мышки. Из контекстного меню нужно выбрать опцию «Копировать» (или жмем CTRL+C).
- После этого следует выделить следующую одну (или несколько) нижнюю строку, куда будет вставлена новая с формулами.
- Щелкнуть по заголовку выделенной строки правой кнопкой мышки и выбрать опцию вставить скопированные ячейки (или нажать комбинацию клавиш CTRL+SHIFT+«=»).
Заметьте, значения ячеек не заменились а добавилась в середину таблицы новая строка со старыми значениями и формулами.
Как копировать без изменения формул в Excel?
Часто при копировании относительные формулы (т.е. те, в которых нет знака «$») «подставляют» другие значения. А что делать, если вы не хотите изменять значение формул?
Можно сделать все ссылки в формулах абсолютными. Такие формулы будут копироваться неизменно, без изменения данных. Чтобы сделать ссылки абсолютными, добавляем к ним знак «$».
Ставим перед буквами и перед числами знак доллара – и получаем абсолютные ссылки в формулы, значения в которых не будут изменяться при копировании.
На пример в такой таблице ссылка на наценку ($B$1) не будет изменятся при копировании на новых строках, так как она является абсолютной, а не относительной:
Но в некоторых больших и сложных таблицах слишком много формул, которые нужно скопировать и переместить. И чтобы во всех ссылках проставить знак «$» нужно потратить много времени.
Для решения данной задачи можно воспользоваться хитрым способом. До копирования заменить все знаки «=» на символ «#».
Для «активации» работы формул используется знак «равно» (или «=»). Чтобы деактивировать их на время копирования поменяем = на #. А после копирования вернем все на свои места. Это позволит нам обойти автоматическую смену адресов в относительных ссылках при копировании.
- Нажимаем Ctrl+H (вызываем окно «Главная»-«Найти и выделить»-«Заменить»).
- Необходимо в поле «Найти» указать символ =, а в поле «Заменить на» символ #. И жмем «Заменить все».
- После этого вы можете скопировать необходимую строку, а в ее формулах не изменятся адреса ссылок на ячейки, так как они временно деактивированные.
- Снова жмем комбинацию горячих клавиш «Ctrl+H», но теперь указываем в полях обратные значения: найти «#» и заменить на «=». Система вернет все на свои места
В результате при копировании во всех строках ссылки формул остались неизменными.