Применить формулу ко всему столбцу


100

Я пытаюсь перекодировать весь почтовый индекс из столбца A в столбец B по формуле:

=TEXT(A1,"00000")

Как это:

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

Я хочу, чтобы каждая ячейка в столбце B была преобразована с использованием приведенной выше формулы. Но у меня более 40000 строк, поэтому невозможно перетащить формулу и применить ее ко всему столбцу B.

Есть ли формула, которую я мог бы использовать для решения этой проблемы?

Ответы:


93

Я думаю, что это более новая функция, но она работает для меня:

Двойной щелчок по квадрату в правом нижнем углу выделенной ячейки копирует формулу выделенной ячейки.

Надеюсь, это поможет.


20
Это правильный ответ на вопрос. Двойной щелчок по «индикатору перетаскивания» (нижний правый угол) скопирует формулу во все ячейки. Убедитесь, что вы ОЧИСТИТЕ данные столбца и примените формулу только к одному. Приведенный выше ответ с «ArrayFormula», похоже, может применить несколько ячеек к одной формуле, что не было тем, что хотел OP.
Танасис Капелонис

3
Спасибо, что поделился. Он отлично работает для меня, но я предпочитаю использовать функцию ArrayFormula просто потому, что в отличие от вашего метода, который в основном копирует одну и ту же формулу в каждую ячейку, ArrayFormula будет более динамичным и его будет легче программировать.
Шахаб Ярмохаммади

3
@ThanasisKapelonis, вам не нужно очищать данные, просто дважды щелкните индикатор перетаскивания, и он применит формулу ко всем последующим строкам, где данные в каждом заполнителе доступны в соответствующих столбцах для этой строки. Он остановится там, где отсутствуют данные. как показано Бреттом Саттоном
dresh

2
У меня слишком много данных для этого ответа, он не работает, и мне нужно перезагрузить страницу.
Дэниел Райан

2
Кажется, что этот двойной щелчок работает только тогда, когда есть данные в столбце, непосредственно рядом с тем, который вы заполняете ... если между ними, например, есть пустой столбец «разделитель», он просто не работает, молча.
Kilo

58

Я думаю, тебе повезло. Попробуйте ввести B1:

=text(A1:A,"00000")

(очень похоже!), но перед ударом Enterнажмите Ctrl+ Shift+ Enter.


33
Когда я пробую Ctrl + Shift + Enter, моя формула просто окружается ArrayFormula(…).
binki

2
@pnuts, что значит должно? у меня это тоже не работает. продолжайте получать ArrayFormula (
JayPex 02

4
@pnuts, возможно, это изменилось за последний год, но ArrayFormula не расширяет формулу до столбца B как изображение из OP. Для меня он просто заполняет значение выбранной ячейки.
Assimilater

12
Спасибо, что поделился. Мне очень понравилось. Я думаю, что кое-что, что может не хватать людям, - это часть B1: B, с которой я боролся с собой несколько секунд. Вы должны заменить свой единственный столбец, скажем, B1, массивом столбцов B1: B в своей формуле, чтобы он работал. Безусловно, это лучший и самый динамичный метод.
Шахаб Ярмохаммади

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

58

Похоже, что некоторые другие ответы устарели, но для меня это сработало:

  1. Щелкните ячейку с текстом / формулой, чтобы скопировать
  2. Shift + щелкните последнюю ячейку, в которую нужно скопировать
  3. Ctrl + Enter

(Обратите внимание, что это заменяет текст, если целевые ячейки не пусты)


9
Работает с CMD + Enter на Mac.
StapleGun

4
Это лучший ответ в 2019 году.
Happy Bird

1
Этот ответ работает для гораздо более широкого круга формул и должен быть принятым ответом
phlare

1
Работает только с одним столбцом за раз, но работает хорошо. Если вы хотите сделать это быстро для большого количества вещей, Ctrl+Shift+Downвы выберете полностью до конца текущего столбца, Ctrl+Enterкак вы сказали, затем Up, Right, [Down](последний не понадобится, если вы находитесь в строке 1), чтобы добраться до следующий столбец.
Адам Барнс

Прекрасно работает в 2020 году. Спасибо!
nxmohamad

9

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

Возьмем это для примера:

  • Строковый массив в столбце "A": {яблоко, банан, апельсин, ..., авокадо}
  • Вы хотите заменить символ "a" на "x", чтобы получить: {xpple, bxnxnx, orxnge, ..., xvocado}

Чтобы применить эту формулу ко всему столбцу (массиву) чистым и элегантным способом, вы можете сделать:

=ARRAYFORMULA(SUBSTITUE(A:A, "a", "x"))

Это работает и для 2D-массивов, скажем:

=ARRAYFORMULA(SUBSTITUE(A2:D83, "a", "x"))

8

Нашел другое решение:

  • Примените формулу к первым 3 или 4 ячейкам столбца
  • Ctrl+ Cформула в одной из последних строк (если скопировать первую строку, работать не будет)
  • Щелкните заголовок столбца, чтобы выбрать весь столбец
  • Нажмите Ctrl+, Vчтобы вставить его во все ячейки ниже

2
Для меня это работает более надежно, чем двойной щелчок. Благодарность!
Иван

6

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

  1. Выберите ячейку столбца, которую вы хотите скопировать вниз
  2. Нажмите Ctrl+ Shift+, чтобы выбрать ячейки ниже
  3. Нажмите Ctrl+, Enterчтобы скопировать содержимое первой ячейки в ячейки ниже

БОНУС:

Ярлык для перехода к самому нижнему содержимому (чтобы дважды проверить копию) - Ctrl+ . Чтобы вернуться назад, вы можете использовать Ctrl+, но если ваши верхние строки заморожены, вам также придется нажать Enterнесколько раз.


1
Это самый прямой взлом. Благодарность!
Сопия Альфред

2

Просто чтобы не потерять свой работающий ответ:

  1. Выберите ячейку для копирования
  2. Выберите последнюю ячейку в столбце
  3. Нажмите CTRL + D

1

Вы также можете использовать Ctrl + Shift + Down + D, чтобы добавить формулу в каждую ячейку столбца.

Просто щелкните / выделите ячейку с уравнением / формулой, которую вы хотите скопировать, а затем удерживайте Ctrl + Shift + Down + D, и ваша формула будет добавлена ​​в каждую ячейку.


0

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

.например

1,a,b
2,a
3,
4,a

Если это электронная таблица, то использование индикатора двойного щелчка мышью на ячейке «b» заполнит строку 2, но не строку три или четыре.


1
Если вы пытаетесь применить формулу к строкам в отфильтрованном наборе в Excel, используя «Двойной щелчок по индикатору перетаскивания», она будет останавливаться каждый раз при переходе серийного номера строки, т.е. 1, 2, 3, если они отображаются по порядку, будут применены с формулой, однако если строка № 5 появляется после строки №. 3 (из-за фильтрации), то номер строки. 5 не будет применена формула. В этом случае вам нужно скопировать из ячейки в строке № 3 и вставьте его в ряд № 5, а затем используйте тот же двойной щелчок. Да, excel - отстой.
dresh

Хотя это может быть ценным советом для решения проблемы, хороший ответ также демонстрирует решение. Пожалуйста, отредактируйте, чтобы предоставить пример кода, чтобы показать, что вы имеете в виду. В качестве альтернативы можно написать это как комментарий.
Тоби Спейт

-2

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

NB: это не сработает, если к вам применен фильтр или если что-то уже есть в ячейках ниже.


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

Хотя это может быть ценным советом для решения проблемы, хороший ответ также демонстрирует решение. Пожалуйста, отредактируйте, чтобы предоставить пример кода, чтобы показать, что вы имеете в виду. В качестве альтернативы можно написать это как комментарий.
Тоби Спейт
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.