Excel с использованием заполнения столбцов из строк
Я понятия не имею, как озаглавить это, чтобы другим было легче искать эту тему.
Допустим, у меня есть таблица в sheet1, содержащая: название, имя, фамилию, название улицы, город и почтовый индекс. В sheet2 я могу использовать CONCATENATE или ссылки на ячейки, чтобы создать комбинацию всех этих значений для создания метки адреса для конверта. На листе 2 я использую макет страницы, чтобы лучше понять, как они будут печататься, настроить размеры ячеек и поля.
Допустим, что страница sheet2 имеет 8 строк и 3 столбца. Я могу заполнить 1-й столбец, перетаскивая автозаполнение ячейки, но затем я попадаю в конец страницы, чтобы заполнить следующий столбец, мне нужно скопировать формулу из последней строки 1-го столбца и вручную изменить данные на +1 а затем перетащите снова. Подобно: =CONCATENATE(Sheet1!A9;" ";Sheet1!B9;" ";Sheet1!C9;CHAR(10);Sheet1!D9)
в =CONCATENATE(Sheet1!A10;" ";Sheet1!B10;" ";Sheet1!C10;CHAR(10);Sheet1!D10)
а затем перетащите его до конца столбца и снова измените формулу.
Есть ли способ автоматически заполнить все ячейки сверху вниз слева направо?
Я хотел бы избежать VBA, если это возможно.
1 ответ
Ссылаясь на:
"8 строк и 3 столбца"
Предполагая, что в 1-й строке ячейка 1-го столбца равна А1. Итак, последняя ячейка (3-й столбец, 8-й ряд) будет C8 .
Так что вместо Sheet1!A9
использовать indirect("Sheet1!A"&(9+(COLUMN(A1)-1)*8+ROW(A1)-1)
.. так что вы полная формула будет:
=CONCATENATE(Sheet1!Aindirect("Sheet1!A"&(9+(COLUMN(A1)-1)*8+ROW(A1)-1));" ";Sheet1!Bindirect("Sheet1!A"&(9+(COLUMN(A1)-1)*8+ROW(A1)-1));" ";Sheet1!Cindirect("Sheet1!A"&(9+(COLUMN(A1)-1)*8+ROW(A1)-1));CHAR(10);Sheet1!Dindirect("Sheet1!A"&(9+(COLUMN(A1)-1)*8+ROW(A1)-1)))