Как переместить строки в Excel? Выборочное перемещение строк по условию
Разложить табличные данные в Excel на составляющие части и разнести их по разным листам рабочей книги можно при помощи перемещения строк. Проблемы начинаются при попытке перенести несколько строк одновременно, но обо всем попорядку.
Как переместить строку в Excel?
Для перемещения строки в Excel, можно подвести курсор мыши к границе маркера выделения до появления маленьких стрелок в четыре разные стороны, нажать левую кнопку мыши и удерживая её переместить строку вверх либо вниз. В этом случае содержимое конечных ячеек будет заменено. Осуществить такое перемещение можно только в пределах активного листа.
В общем же случае, чтобы переместить строку, необходимо её вырезать и вставить уже в нужном месте. Для этого необходимо:
1) выделить перемещаемую строку (подвести курсор мыши к номеру строки и кликнуть на нем левой кнопкой);
2) вырезать выделенную строку любым удобным способом (через главное меню, через контекстное меню, горячими клавишами Ctrl+X)
3) на нужном листе выделить строку, либо самую левую ячейку строки, в которую будет произведена вставка;
Здесь следует заметить, что в контекстном меню (по нажатию правой кнопки мыши) доступны два пункта, связанные со вставкой — «Вставить» и «Вставить вырезанные ячейки».
При выборе первого из этих пунктов вырезанная строка будет помещена поверх строки, выбранной для вставки, а при выборе пункта второго, строка будет помещена между строк, то есть без потери каких-либо данных.
В случае, если выделено несколько несмежных между собой строк, то граница маркера выделения исчезает и такой набор строк переместить уже не удастся. Кроме того, при попытке вырезать несколько несмежных строк одновременно, приложение выдает сообщение «Данная команда неприменима для несвязных диапазонов. Выберите один диапазон и снова выберите команду.»

Аналогичное сообщение появляется при попытке одновременно вырезать группу ячеек, не входящих в один диапазон.
После получения такого сообщения остается либо таскать строки по одной, либо искать другие инструменты.
Как быстро переместить строки на новый лист Excel?
Одним из таких инструментов является надстройка для Excel на основе Visual Basic for Application.
При использовании надстройки, однообразный ручной труд заменяется программной обработкой данных. Поиском нужных строк, проверкой на соответствие заданным условиям и перемещением строк на новый лист занимается уже сама вычислительная техника, что быстрее и удобнее.
С этой надстройкой Вы сможете:
1. Одним кликом мыши вызывать диалоговое окно макроса прямо из панели инструментов Excel;
2. Задавать значение для поиска;
3. Задавать несколько значений для поиска через символ-разделитель «;» точку с запятой;
4. Учитывать либо не учитывать регистр при поиске заданных значений;
5. Выбирать диапазон ячеек для поиска заданных значений;
6. Выбирать одно из восьми условий для выбранных ячеек:
а) совпадает с искомым значением;
б) не совпадает с искомым значением;
в) содержит искомое значение;
г) не содержит искомое значение;
д) начинается с искомого значения;
е) не начинается с искомого значения;
ж) заканчивается искомым значением;
з) не заканчивается искомым значением.
7. Устанавливать дополнительные ограничения для выбранного диапазона.
А знаете ли Вы, что все листы рабочей книги можно быстро превратить в отдельные файлы?
Другие материалы по теме:
- Как удалить скрытые строки? Программное удаление скрытых строк макросом VBA.
- Как удалить пустые строки? Программное удаление пустых строк макросом VBA
- Как вставить/добавить новые/пустые строки в Excel?
- Как переместить ячейки в Excel? Перемещение ячеек в пределах листа
- Как удалить строки в Excel по условию? Удаление и скрытие пустых строк и строк, содержащих заданное значение
Как поднять строки в excel вверх
Всем доброй пятницы!
Подскажите как автоматически подтянуть (переместить) строки вверх по листу по условию
в таблице нужно все строки, в которых значение ячейки столбца J равно «отгруз»
подтянуть к верху чтобы шли друг за другом. т.е. сверху должны идти все строки со значением «отгруз»
Прикрепленные файлы
- post_229387.xlsx (9.08 КБ)
Пользователь
Сообщений: 3102 Регистрация: 24.12.2012
20.05.2011 15:27:25
а чем сортировка не подходит ?
Редко но метко .
Пользователь
Сообщений: 112 Регистрация: 17.01.2013
20.05.2011 15:35:07
данные меняются несколько раз в день, строк более 5000, приходиться каждый раз менять условия
Пользователь
Сообщений: 3102 Регистрация: 24.12.2012
20.05.2011 15:42:17
На вашем примере записал сортировку макрорекордером.
Sub Макрос1()
‘
‘ Макрос1 Макрос
‘
‘
Range(«A1:J13»).Select
ActiveWorkbook.Worksheets(«Лист1»).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(«Лист1»).Sort.SortFields.Add Key:=Range(«J1:J13»), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(«Лист1»).Sort
.SetRange Range(«A1:J13»)
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
при необходимости несколько раз в день сортировать (если у вас не изменяется структура файла) сделайте кнопку и прицепите на нее єтот макрос c соответствующим диапазоном.
Редко но метко .
Пользователь
Сообщений: 23775 Регистрация: 22.12.2012
20.05.2011 15:43:26
Найдите 3 отличия 🙂
Sub Macro1()
‘
‘ Macro1 Macro
‘
Range(«A3:J13»).Select
Selection.Sort Key1:=Range(«J4»), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub
Sub Macro1()
‘
‘ Macro1 Macro
‘
With [a3].CurrentRegion
.Sort Key1:=Range(«J3»), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End With
End Sub
Как поднять строки в excel вверх
Подскажите, пожалуйста, как сделать в книге автоматическое перемещение всей строки вверх, при окрашивании ячейки в цвет.
К примеру, если какая-либо ячейка из столбца Т, окрашивается в голубой цвет, то вся строка перемещается в самый верх таблицы. Если же убрать статус СРОЧНО в какой либо ячейке столбца Т (соответсвенно и пропадает голубой цвет ячейки- *создал правило уже ранее), то вся строка:
а. возвращается на свое место
или
б. переносится в самый низ таблицы
***при этом столбец А, чтобы всегда оставался не тронутым, без изменений
Возможно ли такое осуществить?
Прикрепленные файлы
- по ресурсам — копия.xlsx (15.21 КБ)
Пользователь
Сообщений: 1171 Регистрация: 16.03.2016
02.11.2017 08:21:33
dassler56, Посмотрите вариант.
Прикрепленные файлы
- Копия по ресурсам — копия.xlsm (22.31 КБ)
Пользователь
Сообщений: 13 Регистрация: 02.11.2017
02.11.2017 09:09:11
Похоже на правду, да!
НО!
можно ли выложить расшифровку макросов!?
мне нужно их применить для подобной таблицы, которая весит больше 100кб(такого размера файл я не могу прикрепить)
«не то»:
1.после того как ставишь СРОЧНО едет вверх строчка, когда убираешь СРОЧНО, падает зачем то в самый низ, а нужно чтобы возвращалось на свое изначальное место, то есть если она была по столбцу А, изначально на 10 месте, то туда и должна вернуться! Строчка должна будет упасть в самый низ, при условии если столбец i больше или равен столбцу E.
2. столбец А должен оставаться неизменным (если это условие мешает первому, то «фиг с ним»)
Пользователь
Сообщений: 1171 Регистрация: 16.03.2016
02.11.2017 09:16:05
| Цитата |
|---|
| dassler56 написал: б. переносится в самый низ таблицы |
Вы ведь сами написали или — или.
| Цитата |
|---|
| dassler56 написал: столбец А должен оставаться неизменным |
Вы имеете в виду что если строка поднялась с 10ой позиции на первую, то в Ячейке А должно остаться 10 , или как в выложенном мною примере нумерация всегда начинается с 1 ?)
Пользователь
Сообщений: 13 Регистрация: 02.11.2017
02.11.2017 09:22:59
б. переносится в самый низ таблицы
Это я мысли свои опередил с прописью.
я извиняюсь, я имел ввиду если срочно убрать, то пусть бы возвращалось на свое место назад
| Цитата |
|---|
| Александр П. написал: Вы имеете в виду что если строка поднялась с 10ой позиции на первую, то в Ячейке А должно остаться 10 , или как в выложенном мною примере нумерация всегда начинается с 1 ?) |
Верно, да, что-то я ошибся с этим
Хотелось бы знать все же макрос, точнее его обозначение
и можно ли поправить документ с учтом моего второго сообщения в этой теме?
Как поднять строки в excel вверх
Отсортировать от А до Я никак. Там просто ссылки.
В общем 40 строк, нужно 40 строку сделать первой, 39 строку второй, 38 строку третий и так далее.. Как такое сделать? Заранее спасибо!
Отсортировать от А до Я никак. Там просто ссылки.
В общем 40 строк, нужно 40 строку сделать первой, 39 строку второй, 38 строку третий и так далее.. Как такое сделать? Заранее спасибо! voronova_gelya
К сообщению приложен файл: 2436686.xlsx (21.1 Kb)
Сообщение [Excel 2016]
Отсортировать от А до Я никак. Там просто ссылки.
В общем 40 строк, нужно 40 строку сделать первой, 39 строку второй, 38 строку третий и так далее.. Как такое сделать? Заранее спасибо! Автор — voronova_gelya
Дата добавления — 18.11.2015 в 00:46
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16620
Замечаний: 0% ±
2003; 2007; 2010; 2013 RUS
=ИНДЕКС(A$1:A$40;41-СТРОКА())
=ИНДЕКС(A$1:A$40;41-СТРОКА())
К сообщению приложен файл: 2436686_1.xlsx (22.6 Kb)
Сообщение Так нужно?
=ИНДЕКС(A$1:A$40;41-СТРОКА())
Автор — _Boroda_
Дата добавления — 18.11.2015 в 01:09
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Замечаний: 0% ±
Excel 2013
Цитата _Boroda_, 18.11.2015 в 01:09, в сообщении № 2
=ИНДЕКС(A$1:A$40;41-СТРОКА())
Цитата _Boroda_, 18.11.2015 в 01:09, в сообщении № 2
=ИНДЕКС(A$1:A$40;41-СТРОКА())
Цитата _Boroda_, 18.11.2015 в 01:09, в сообщении № 2
=ИНДЕКС(A$1:A$40;41-СТРОКА())
Огромное спасибо. Автор — voronova_gelya
Дата добавления — 18.11.2015 в 01:23
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Замечаний: 0% ±
Excel 2013
Жму ввод(галочку) напротив суммы и ничего. Что я не так делаю?
Жму ввод(галочку) напротив суммы и ничего. Что я не так делаю? voronova_gelya
К сообщению приложен файл: 7821122.png (74.0 Kb)
Сообщение Жму ввод(галочку) напротив суммы и ничего. Что я не так делаю? Автор — voronova_gelya
Дата добавления — 18.11.2015 в 02:10
Группа: Друзья
Ранг: Экселист
Сообщений: 8475
Замечаний: 0% ±
Excel 2010
Текстовый формат может установлен.
А так по картинке не понятно, что не так.
Текстовый формат может установлен.
А так по картинке не понятно, что не так. Nic70y
Сообщение Текстовый формат может установлен.
А так по картинке не понятно, что не так. Автор — Nic70y
Дата добавления — 18.11.2015 в 08:04
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Замечаний: 0% ±
Excel 2013
[moder]Излишнее цитирование — нарушение Правил форума. Удалил.[/moder]
Вот:
[moder]Излишнее цитирование — нарушение Правил форума. Удалил.[/moder]
Вот: voronova_gelya
К сообщению приложен файл: 4933697.xlsx (8.9 Kb)
Сообщение отредактировал _Boroda_ — Среда, 18.11.2015, 22:28
Сообщение [moder]Излишнее цитирование — нарушение Правил форума. Удалил.[/moder]
Вот: Автор — voronova_gelya
Дата добавления — 18.11.2015 в 19:12
Группа: Друзья
Ранг: Экселист
Сообщений: 8475
Замечаний: 0% ±
Excel 2010
ну прям не знаю, у меня норм
ну прям не знаю, у меня норм Nic70y
К сообщению приложен файл: 1-0.xlsx (9.5 Kb)
Сообщение отредактировал Nic70y — Среда, 18.11.2015, 19:22
Сообщение ну прям не знаю, у меня норм Автор — Nic70y
Дата добавления — 18.11.2015 в 19:21
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Замечаний: 0% ±
Excel 2013
Цитата Nic70y, 18.11.2015 в 19:21, в сообщении № 7
ну прям не знаю, у меня норм
То есть, вручную нужно прописывать? Я думала автоматом.
Цитата Nic70y, 18.11.2015 в 19:21, в сообщении № 7
ну прям не знаю, у меня норм
То есть, вручную нужно прописывать? Я думала автоматом. voronova_gelya
Цитата Nic70y, 18.11.2015 в 19:21, в сообщении № 7
ну прям не знаю, у меня норм
То есть, вручную нужно прописывать? Я думала автоматом. Автор — voronova_gelya
Дата добавления — 18.11.2015 в 23:47
Группа: Друзья
Ранг: Старожил
Сообщений: 2472
Замечаний: 0% ±
2010
Цитата
Я думала автоматом.
Можно и автоматом, только немного увеличить формулу
=ИНДЕКС($A$1:ИНДЕКС(A$1:A$10000;СЧЁТЗ(A$1:A$10000));СЧЁТЗ(A$1:A$10000)+1-СТРОКА())
На 10000 строк, если строк заполнено больше, измените до нужного.
Цитата
Я думала автоматом.
Можно и автоматом, только немного увеличить формулу
=ИНДЕКС($A$1:ИНДЕКС(A$1:A$10000;СЧЁТЗ(A$1:A$10000));СЧЁТЗ(A$1:A$10000)+1-СТРОКА())
На 10000 строк, если строк заполнено больше, измените до нужного. gling
Сообщение отредактировал gling — Четверг, 19.11.2015, 00:32
Цитата
Я думала автоматом.
Можно и автоматом, только немного увеличить формулу
=ИНДЕКС($A$1:ИНДЕКС(A$1:A$10000;СЧЁТЗ(A$1:A$10000));СЧЁТЗ(A$1:A$10000)+1-СТРОКА())
На 10000 строк, если строк заполнено больше, измените до нужного. Автор — gling
Дата добавления — 19.11.2015 в 00:23
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16620
Замечаний: 0% ±
2003; 2007; 2010; 2013 RUS
=ИНДЕКС(A:A;СЧЁТЗ(A:A)-СТРОКА()+1)
ИНДЕКС и СЧЁТ не тормозят при полном столбце
=ИНДЕКС(A:A;СЧЁТЗ(A:A)-СТРОКА()+1)
ИНДЕКС и СЧЁТ не тормозят при полном столбце _Boroda_
К сообщению приложен файл: 2436686_2.xlsx (22.6 Kb)
Сообщение или
=ИНДЕКС(A:A;СЧЁТЗ(A:A)-СТРОКА()+1)
ИНДЕКС и СЧЁТ не тормозят при полном столбце Автор — _Boroda_
Дата добавления — 19.11.2015 в 00:55
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Замечаний: 0% ±
Excel 2013
Как вы автоматом делаете??
Мои действия:
Я кликаю по колонке «B» ,затем кликаю по строке (на скрине написано =ИНДЕКС, по этой строке) и вставляю код
=ИНДЕКС($A$1:ИНДЕКС(A$1:A$72;СЧЁТЗ(A$1:A$72));СЧЁТЗ(A$1:A$72)+1-СТРОКА())
и жму галочку. В итоге только одна строка.
Как вы автоматом делаете??
Мои действия:
Я кликаю по колонке «B» ,затем кликаю по строке (на скрине написано =ИНДЕКС, по этой строке) и вставляю код
=ИНДЕКС($A$1:ИНДЕКС(A$1:A$72;СЧЁТЗ(A$1:A$72));СЧЁТЗ(A$1:A$72)+1-СТРОКА())
и жму галочку. В итоге только одна строка. voronova_gelya
К сообщению приложен файл: 0179411.png (55.4 Kb) · 2126862.xlsx (8.9 Kb)
Сообщение отредактировал voronova_gelya — Четверг, 19.11.2015, 02:32
Сообщение Как вы автоматом делаете??
Мои действия:
Я кликаю по колонке «B» ,затем кликаю по строке (на скрине написано =ИНДЕКС, по этой строке) и вставляю код
=ИНДЕКС($A$1:ИНДЕКС(A$1:A$72;СЧЁТЗ(A$1:A$72));СЧЁТЗ(A$1:A$72)+1-СТРОКА())
и жму галочку. В итоге только одна строка. Автор — voronova_gelya
Дата добавления — 19.11.2015 в 02:31
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16620
Замечаний: 0% ±
2003; 2007; 2010; 2013 RUS
Ах вот Вы про что!
В правом нижнем углу ячейки с формулой точку видите? Быстро нажмите 2 раза на нее левой мышой (даблклик) и формула размножится вниз на столько строк, сколько заполненных ячеек в соседнем столбце (бывают исключения, но о них мы сейчас говорить не будем, просто запомните, что правильность такого автозаполнения нужно потом проверить — опуститься до низа таблицы и убедиться, что формула размножилась правильно.)
Или схватите за эту точку в правом нижнем углу левой мышой и, не отпуская, протяните на столько вниз, на сколько нужно.
Или заранее выделите нужный диапазон для вставки формулы, введите формулу и нажмите Контрл Ентер (галочку нажимать не нужно).
Кстати, галочку вообще не нужно нажимать. В общем случае (за исключением ввода формул массива — но этим грузить Вас сейчас не буду) достаточно обычного Ентера.
Ах вот Вы про что!
В правом нижнем углу ячейки с формулой точку видите? Быстро нажмите 2 раза на нее левой мышой (даблклик) и формула размножится вниз на столько строк, сколько заполненных ячеек в соседнем столбце (бывают исключения, но о них мы сейчас говорить не будем, просто запомните, что правильность такого автозаполнения нужно потом проверить — опуститься до низа таблицы и убедиться, что формула размножилась правильно.)
Или схватите за эту точку в правом нижнем углу левой мышой и, не отпуская, протяните на столько вниз, на сколько нужно.
Или заранее выделите нужный диапазон для вставки формулы, введите формулу и нажмите Контрл Ентер (галочку нажимать не нужно).
Кстати, галочку вообще не нужно нажимать. В общем случае (за исключением ввода формул массива — но этим грузить Вас сейчас не буду) достаточно обычного Ентера. _Boroda_
Сообщение Ах вот Вы про что!
В правом нижнем углу ячейки с формулой точку видите? Быстро нажмите 2 раза на нее левой мышой (даблклик) и формула размножится вниз на столько строк, сколько заполненных ячеек в соседнем столбце (бывают исключения, но о них мы сейчас говорить не будем, просто запомните, что правильность такого автозаполнения нужно потом проверить — опуститься до низа таблицы и убедиться, что формула размножилась правильно.)
Или схватите за эту точку в правом нижнем углу левой мышой и, не отпуская, протяните на столько вниз, на сколько нужно.
Или заранее выделите нужный диапазон для вставки формулы, введите формулу и нажмите Контрл Ентер (галочку нажимать не нужно).
Кстати, галочку вообще не нужно нажимать. В общем случае (за исключением ввода формул массива — но этим грузить Вас сейчас не буду) достаточно обычного Ентера. Автор — _Boroda_
Дата добавления — 19.11.2015 в 05:05
