Как сделать так, чтобы Excel 2010 автоматически заполнял новую строку формулами?

11

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

Я знаю, что это может быть сделано с некоторыми VBA, но если возможно, я бы хотел найти, что вызывает это, чтобы произойти изначально (если я не мечтал). Кто-нибудь знает, как это делается?

RipperDoc
источник

Ответы:

6

Это не мечта, и вы правы: ИИ Excel вызывает эти вещи, и не только для таблиц. Просто небольшой пример для демонстрации:

  • Откройте новую книгу и заполните столбец Aс увеличивающимися числами, например:
1
2
3
4
5
  • Далее, в столбце B добавьте любую простую формулу, например, =A1*10и заполните автоматически список чисел, чтобы получить это:
1      10
2      20
3      30
4      40
5      50
  • Теперь, чтобы увидеть, как работает ИИ, введите 6(или любое число) в следующем ряду 5(это должно быть A6в контексте) и нажмите либо TABИЛИ ENTER- как обычно.
  • Наслаждайся магией! (:

Это не должно происходить только для формул - форматирование также может применяться автоматически, например, когда вы добавляете новый столбец прямо к набору данных, а ваш «Заголовок» (1-я строка) имеет специальное форматирование (черная заливка / белый текст) и начинает вводить текст значения там - скорее всего, он будет окрашен таким же образом.

Я не могу предоставить полный список дел, но я думаю, что вы поняли!)

Питер Л.
источник
Интересно, что я могу заставить это работать только в столбцах, а не в строках (например, если вы перенесете свой пример, я не смогу заставить его работать).
RipperDoc
Я понятия не имею, почему так ... Возможно, потому что данные обычно хранятся в режиме столбцов с уменьшением - это более естественно))
Питер Л.
Их должно быть как минимум четыре.
Люк
@PeterL., Хорошая интерпретация +10 ☺
Раджеш С.
2

Вы можете полностью отказаться от функции автозаполнения с помощью формул массива . Просто введите формулу, как обычно, но добавьте :columnв конце каждой ссылки на ячейку, а затем нажмите Ctrl+ Shift+Enter . Формула будет применена сразу ко всем ячейкам в столбце, не перетаскивая ничего


Редактировать:

Более новые версии Excel будут автоматически использовать формулы массива для заполнения при появлении новой строки данных

Начиная с обновления для Office 365, выпущенного в сентябре 2018 года, любая формула, которая может возвращать несколько результатов, будет автоматически перетекать в соседние ячейки. Это изменение в поведении также сопровождается несколькими новыми функциями динамического массива. Формулы динамического массива, независимо от того, используют ли они существующие функции или функции динамического массива, нужно вводить только в одну ячейку, а затем подтверждать нажатием клавиши Enter. Ранее устаревшие формулы массива требовали сначала выбрать весь выходной диапазон, а затем подтвердить формулу с помощью Ctrl+ Shift+ Enter. Их обычно называют формулами CSE.

Рекомендации и примеры формул массива

Если вы используете старую версию Excel или хотите узнать больше о формулах массива, продолжайте чтение


Например, ввод =B3:B + 2*C3:CD3 и Ctrl+ Shift+ Enterравносилен вводу =B3 + 2*C3и перетаскиванию вниз в таблице, начиная со строки 3

Это быстро печатать, но имеет недостаток в том, что неиспользуемые ячейки в конце (вне текущей таблицы) все еще рассчитываются и показывают 0. Есть простой способ скрыть 0 . Однако еще лучший способ - ограничить вычисление последним столбцом таблицы. Зная, что в формуле массива вы можете использовать, X3:X101чтобы применить только к ячейкам от X3 до X101, мы можем использовать INDIRECTфункцию для достижения того же эффекта

  • Войдите =LOOKUP(2, 1/(A:A <> ""), A:A)в какую-нибудь ячейку за пределами таблицы, чтобы найти последнюю непустую ячейку в таблице и назовите ее LastRow. В качестве альтернативы используйте, =COUNTA(A3:A) + 2когда первая строка таблицы равна 3
  • Тогда вместо B3:Bиспользования=INDIRECT("B3:B" & LastRow)

Например, если вы хотите, чтобы ячейки в столбце D содержали продукты ячеек B и C, а столбец E содержит суммы B и C, вместо использования D3 = B3*C3и E3 = B3 + C3и перетаскивания вниз вы просто помещаете приведенные ниже формулы в D3 и E3 соответственно и нажимаете Ctrl+ Shift+Enter

=INDIRECT("B3:B" & LastRow) * INDIRECT("C3:C" & LastRow)
=INDIRECT("B3:B" & LastRow) + INDIRECT("C3:C" & LastRow)

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


Формула массива очень быстрая, поскольку схема доступа к данным уже известна. Теперь вместо 100001 различных вычислений по отдельности их можно векторизовать и выполнять параллельно , используя несколько ядер и SIMD-модуль в ЦП. Он также имеет следующие преимущества:

  • Согласованность: если вы щелкнете по любой ячейке от E2 вниз, вы увидите ту же формулу. Эта последовательность может помочь обеспечить большую точность.
  • Безопасность: Вы не можете перезаписать компонент формулы массива из нескольких ячеек. Например, щелкните ячейку E3 и нажмите «Удалить». Вы должны либо выбрать весь диапазон ячеек (от E2 до E11) и изменить формулу для всего массива, либо оставить массив как есть. В качестве дополнительной меры безопасности вы должны нажать Ctrl+ Shift+, Enterчтобы подтвердить изменение формулы.
  • Меньшие размеры файлов: часто вы можете использовать формулу одного массива вместо нескольких промежуточных формул. Например, книга использует одну формулу массива для вычисления результатов в колонке E. Если вы использовали стандартные формулы (такие как =C2*D2, C3*D3, C4*D4...), вы бы использовали 11 различных формул для расчета одни и те же результаты.

Рекомендации и примеры формул массива

Для получения дополнительной информации читайте

phuclv
источник
0

Это стандартное поведение Excel, если вы вводите формулу в пустой столбец таблицы . Чтобы получить это, вам нужно вставить таблицу :

введите описание изображения здесь

Питер Альберт
источник
Спасибо, это работает, но без использования таблицы раньше, я видел этот эффект на отдельных клетках. Я считаю, что это должна быть какая-то настройка автозаполнения.
RipperDoc
Есть два способа сделать это очень быстро: 1. введите формулу, а затем дважды щелкните на маленьком «+» при наведении курсора на правый нижний угол ячейки. 2. Выберите полный диапазон и введите формулу с помощью Ctrl-Enter. , Но ни один из вариантов не является «настоящим автозаполнением», как в таблицах. Уверен, что его не существует (если он не создан специально для VBA)
Питер Альберт,
0

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

user300038
источник
0

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

Деннис
источник
0

Для меня это работало для двух столбцов формул и вдруг остановилось только для одной из них. Я думаю, что я, должно быть, скопировал и вставил другую ячейку по ней и испортил ссылку. Чтобы исправить это, я выбрал ячейку и пошел в Home> Editing> Fill> Series и подтвердил детали. Надеюсь, это поможет.

Oli
источник
Это ответ на другую проблему, и он не отвечает на поставленный вопрос.
DavidPostill
0

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

  • Добавьте формулу в соответствующий столбец в последнем ряду таблицы и нажмите enter
  • Нажмите на маленькое квадратное всплывающее окно с надписью fx и выберитеOverwrite all cells in this column with this formula
  • Добавьте новую строку в вашу таблицу, которая теперь должна иметь формулу автозаполнения

Это сработало блестяще для меня, надеюсь, это поможет кому-то еще.

S3DEV
источник
0

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

Натали
источник
Прочтите «Почему мне нужно 50 репутации, чтобы комментировать», чтобы понять, как вы можете начать комментировать.
Сок Pimp IT
Чтобы написать что-то на бумаге, чтобы сделать правильный поворот, и братья Райт, которые якобы летали на первом самолете.
Сок Pimp IT
Изучение этого материала - обряд .
Скотт
-2

Вы можете сделать это, используя функцию Justify под выпадающим меню Fill. Он находится на вкладке «Главная» в функциях редактирования. По моему это далеко правая сторона панели инструментов.

XLRookie
источник
Хотите добавить детали, как это происходит? Исходя из этого, он не делает то, что просил ОП.
Загримсан
Я создал таблицу с заполнением в формате заголовков, формулами и т. Д. Для каждой ячейки под моими заголовками. Затем в крайнем левом столбце я выбрал диапазон, который еще не отформатирован, перешел в выпадающий список и выбрал выравнивание. Теперь, когда я начинаю вводить информацию в этом диапазоне ячеек, все строки автоматически форматируются в формулы, заливки и т. Д., Которые я установил в своей таблице. Извините, я не очень разбираюсь в технологиях, поэтому не знаю, как разместить фотографии в этом комментарии, чтобы лучше понять.
XLRookie
Этот метод заставляет строку, в которую вы в настоящее время вводите данные, форматировать так же, как и строку, расположенную непосредственно над ней.
XLRookie
Вы не можете вставлять фотографии в комментарии, но вы можете в ответ. Тем не менее, я проверил это, и мне кажется, что Fill-> Justify не нужен для того, чтобы произошло автоматическое заполнение (попробуйте сами, просто оставив шаг оправдания от шагов, которые вы описали). Функциональность автозаполнения в Excel, которая обсуждается здесь, является причиной результата, а не оправданием.
Загримсан
Хаха, это правда. Ну, это показывает мой уровень знаний в этой области.
XLRookie