- Вопрос или проблема
- Ответ или решение
- Как автоматически обновлять формулы при добавлении новых столбцов в Excel
- 1. Использование пустых столбцов для динамического диапазона
- 2. Использование динамических диапазонов через функции
- 3. Использование именованных диапазонов
- 4. Автоматизация с помощью VBA
- 5. Запись формулы с избыточным диапазоном
- Заключение
Вопрос или проблема
У меня есть набор данных, а на другом листе я провожу расчёты для минимальных и максимальных значений целых строк.
Данные начинаются с D4, и каждая строка представляет собой другой набор данных. Проблема в том, что когда я добавляю новый столбец для новых данных, Excel не обновляет формулы, чтобы автоматически расширить диапазон. Мне приходится вручную проходить через каждое сообщение об ошибке и “Обновить, чтобы включить ячейки”.
Пример формулы:
=MIN(Historian!$D4:$AR4)
Я предполагаю, что вы имеете в виду, что начинаете использовать столбец справа от ранее использованных столбцов, “AS” в случае вашей формулы, потому что вставка в ваш диапазон достигла бы желаемого результата.
Существуют несколько традиционных подходов:
-
Вы можете использовать то, что один интернет-сайт называет “подходом серой полосы”. Это, возможно, самая старая идея (из идей для систематического решения проблемы… смотрите #5 для, вероятно, самой старой идеи). У вас есть пустой столбец (в вашем случае, но можно сказать “строка”, если вверх и вниз) слева от ваших ячеек формул и один справа от них. Так что, если вы хотите суммировать, скажем, диапазон, как
D4:AR4
, вам следует использовать диапазонC4:AS4
и всегда ВСТАВЛЯТЬ столбец справа, а не просто начинать использовать столбец AS. Это заставит Excel автоматически корректировать вашу формулу. Единственный реальный недостаток обычно заключается в том, что это ощущается как что-то устаревшее и неуклюжее. Тем не менее, это работает как часы. -
Используйте формулу, которая генерирует
динамический
диапазон. Это диапазон, который автоматически расширяется, когда вы начинаете использовать строку или столбец больше. Как? Ну, вот в чём загвоздка, да? Вам нужно найти какой-то хитрый способ сказать Excel, как это реализовать. На практике это обычно не требует супер-умного решения, но может привести к трудно заметным ошибкам. Я также могу упомянуть, что когда у вас мало опыта с функциями Excel, вы можете даже не представить, каким образом некоторые функции могут быть использованы для достижения этой цели. Но существует множество сайтов, которые дают вам много идей здесь, и это действительно очень легко, предлагая отличный набор уроков, которые помогут вам в Excel. -
Используйте вышеупомянутую идею, но примените формулу к именованному диапазону. Как предлагает Раджеш С. Конечно, возникают некоторые трудности. Как только вы найдете хороший способ сделать это для каждой строки, вы можете начать создавать каждый именованный диапазон, который вам нужен… у вас 42,000 строк? Ну, начните создавать эти 42,000 именованных диапазонов, потому что они сами себя не создадут… Но обучение, а также многие сайты, которые это предлагают, на вашей стороне, и вы можете изменить вашу формулу динамического диапазона, основывая её на адресах ячеек, которые она использует, либо на строке (или столбце), в которой она находится, либо на относительном расположении ячейки по сравнению с исходными данными, или и том, и другом, а также на других идеях. У вас есть второй уровень “динамичности”, который вы применяете к формуле, а затем вам просто нужен один именованный диапазон для всех этих ячеек, если вы можете увидеть способ надежно связать его с местом, где находится формула для суммирования или другого. Это также доступно на множестве сайтов и довольно легко, как только вы получите правильный настрой.
-
Используйте VBA. VBA является золотым стандартом для многих вещей и представляет собой золотую жилу для легко характеризуемых, повторяющихся задач. Простые вещи не действительно сложны для изучения, потому что вы обычно можете сделать их с помощью записывающего макроса, а затем посмотреть на сгенерированный VBA и сказать “А-га!” и просто расширить его по мере необходимости. Хотя VBA обычно не преподавать БЕСПЛАТНО в интернете, вы все равно можете найти много простых вещей. VBA занимает время для “выполнения своей задачи”, но ему просто все равно, если вам нужно, чтобы он проверял 1,000 ячеек в строке, отбрасывал все пустые ячейки и находил минимум для ячеек с фактическими записями. И есть и другие простые способы игнорировать те неиспользуемые ячейки справа в каждой строке. В этом плане время выполнения не сопоставимо с тем, что было на старых компьютерах. Больше нет правил “не сортируйте базу данных до ухода в 17:00” (потому что это займёт 4-10 часов), потому что компьютеры СТЕРЕЖНЫЕ. (Кроме того, использование VBA может помочь вам преодолеть трудности, так сказать, и позволить вам быть более готовым узнать о нём больше, а не оставлять этот ужасный момент на “когда-нибудь”… просто мысль.)
-
Самый простой вариант, если это не приведет к другим проблемам: просто напишите формулу, чтобы включить, скажем, 50 дополнительных столбцов. Или 52:
D4:CR4
, и раз в год или когда угодно, вернитесь к этому и расширьте их, если вы добавляете много столбцов, или раз в десять лет, если вы не добавляете их так быстро.
Ответ или решение
Как автоматически обновлять формулы при добавлении новых столбцов в Excel
Если вам необходимо, чтобы формулы в Excel автоматически обновляли диапазон, когда вы добавляете новые столбцы, существует несколько подходов к этой задаче. В этой статье мы рассмотрим основные методы, а также предоставим рекомендации по их реализации, чтобы спростить вашу работу с данными.
1. Использование пустых столбцов для динамического диапазона
Подход: Создайте пустой столбец слева и справа от столбцов с формулами. Например, ваш диапазон формулы может быть изменён с =MIN(Historian!$D4:$AR4)
на =MIN(Historian!$C4:$AS4)
. Это позволит Excel автоматически корректировать диапазон при добавлении новых данных.
Преимущества: Не требует сложных настроек и может быть быстро реализован.
Недостатки: Может показаться менее элегантным и требует некоторого времени на привыкание к структуре данных.
2. Использование динамических диапазонов через функции
Подход: Используйте функции, такие как OFFSET
или INDIRECT
, для создания динамических диапазонов. Например, с помощью функции OFFSET
вы можете задать диапазон, который будет автоматически изменяться при добавлении данных:
=MIN(OFFSET(Historian!$D4, 0, 0, 1, COUNT(Historian!$D4:$Z4)))
Этот подход позволяет создавать диапазон, который будет учитывать только те столбцы, которые содержат данные.
Преимущества: Высокая гибкость и отсутствие необходимости в пустых столбцах.
Недостатки: Более сложные формулы могут быть труднее читать и добавлять новые данные требуются дополнительные усилия.
3. Использование именованных диапазонов
Подход: Создайте именованный диапазон для ваших данных с использованием функций для динамического обновления. Например, создайте именованный диапазон MyData
через VBA или просто используя инструмент «Определить имя» в Excel. Затем вы можете использовать MIN(MyData)
в ваших формулах.
Преимущества: Упрощает работу с формулами и позволяет обеспечить чистоту и ясность в структуре ваших вычислений.
Недостатки: Нужна дополнительная работа для создания именованных диапазонов.
4. Автоматизация с помощью VBA
Подход: Напишите макрос на VBA, который будет автоматически обновлять диапазоны при изменении вашей таблицы. Простой пример может выглядеть так:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Columns(4).Resize(, 100)) Is Nothing Then
Dim LastRow As Long
LastRow = Me.Cells(Rows.Count, "D").End(xlUp).Row
For i = 4 To LastRow
Me.Cells(i, "AS").Formula = "=MIN(Historian!D" & i & ":AR" & i & ")"
Next i
End If
End Sub
Этот код обновит формулы в одной колонке, когда будут внесены изменения в другие заданные колонки.
Преимущества: Высокая степень автоматизации, обеспечивающая минимальные требования к ручному труду.
Недостатки: Требует знаний программирования на VBA и дополнительных настроек безопасности в Excel.
5. Запись формулы с избыточным диапазоном
Подход: Укажите избыточный диапазон, такой как D4:CR4
, чтобы учесть возможность добавления новых столбцов в будущем. Это позволит не изменять формулу при добавлении новых данных.
Преимущества: Простота реализации и минимальные изменения после начальной настройки.
Недостатки: Возможность использования более чем актуальных данных, что может привести к неправильным результатам, если столбцы не содержат актуальных данных.
Заключение
Автоматизация обновления формул в Excel при добавлении новых столбцов не является тривиальной задачей, но с использованием вышеописанных подходов она становится более управляемой. Выбор метода зависит от ваших предпочтений и специфики работы с данными. Рассмотренные варианты помогут вам оптимизировать рабочий процесс и избежать ручного вмешательства в формулы при изменениях данных.