Excel копирование строки на другой лист по условию

Здравствуйте, уважаемые форумчане.
Не прошло и полгода, и я опять прошу Вашей помощи.
Отписываюсь в этой теме, т.к. сложности плавно вытекли из неё, суть вопроса осталась та же, так как предложенное AlexM решение проблемы теперь не помогает. Проблема была такая:

«Есть файл (во вложении), в котором существует огромный список адресов (каждая строка это отдельный адрес с кучей нужной информации по нему).
Каждая строка (т.е. каждый адрес) имеет 2 состояния (столбец «H») «Закрыт» и «В работе».
Задача у меня такая: скопировать на другой лист, который «ОТК», все строки, имеющие статус «В работе».»

Теперь же появилось третье состояние этого столбца (в примере P) — «На выплату» (дополнительно меня нагрузили теперь бухгалтерскими вопросами) и данная формула не помогает:

Код

=ИНДЕКС(Адреса!$A$1:$A$175;НАИМЕНЬШИЙ(ЕСЛИ(Адреса!$H$5:$H$175<>"Закрыт";СТРОКА($A$5:$A$175));СТРОКА(A1)))

, т.к. в листе ОТК теперь выводятся и объекты в работе и на выплату.

Попытка заменить «<> «Закрыт» на «= «В работе» приводит у тому, что пустые клетки выдают ошибку «!#ЧИСЛО».
Собственно 1 вопрос в том, как грамотно поменять формулу, чтобы сохранить функционал.

Есть 2 вопрос, уже бухгалтерский: в том же примере есть окно «Бухгалтерия», в котором я пытался автоматизировать подсчет зарплаты. Т.е. мне надо, чтобы все объекты со статусом «На выплату» автоматически забивались в ведомость, соответственно если одна фамилия встречается более 1 раза, зарплата суммировалась.

Буду благодарен, если кто поможет решить задачу или подскажет, как её победить.
Заранее спасибо.

 

Миха73

Пользователь

Сообщений: 6
Регистрация: 11.11.2011

Доброе время суток, уважаемые форумчане! Столкнулся с проблемой, которая, откровенно говоря, привела меня в некий ступор.    
Есть таблица на Листе1, которая ежедневно заполняется, необходимо из нее скопировать строки по условию значения в ячейке столбца C (он же 3)и вставить (добавлял) удовлетворяющую условию строку на Лист3. условием является шестизначное число (от 000000 до 999999).  
Заранее Спасибо всем за интерес и ответы!  
Поиск ничего не дал

 

KuklP

Пользователь

Сообщений: 14868
Регистрация: 21.12.2012

E-mail и реквизиты в профиле.

Чем автофильтр не устраивает?

Я сам — дурнее всякого примера! …

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

Если сломан автофильтр…

 

Миха73

Пользователь

Сообщений: 6
Регистрация: 11.11.2011

огромное спасибо!  
то, что надо!

 

а нельзя сделать, чтобы при заполнении Листа3 данные добавлялись, а не заполнялись по новой?

 

Миха73

Пользователь

Сообщений: 6
Регистрация: 11.11.2011

а нельзя сделать, чтобы при заполнении Листа3 данные добавлялись, а не заполнялись по новой?

 

Hugo

Пользователь

Сообщений: 23249
Регистрация: 22.12.2012

Как такой вариант — ставите вызов кода Юрия на событие активации листа (отключив обновление экрана на время работы).  
Только нужно Cells первого листа указать, чьи они, а третьего тогда не надо.  
И можно код на одну строку сократить:  

  If .Cells(i, 3) Like «######» Then

 

Миха73

Пользователь

Сообщений: 6
Регистрация: 11.11.2011

попробую с этим разобраться

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

{quote}{login=}{date=11.11.2011 10:38}{thema=}{post}а нельзя сделать, чтобы при заполнении Листа3 данные добавлялись, а не заполнялись по новой?{/post}{/quote}А смысл? Результат будет тот же самый. Берите что дают, а то скачаю обратно.

 

Миха73

Пользователь

Сообщений: 6
Регистрация: 11.11.2011

Смысл есть, при изменении уже скопированных строк на Листе3 и последующем выполнении макроса измененные данные, на Листе3, будут переписаны и нужно будет  либо по новой вносить изменения или дублировать полученные данные на другом листе.

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

Изменяют строки обычно в исходных данных, а по ним уже строится отчёт. Если Вы планируете изменять сам отчёт — делайте это на копии листа 3.

 

Миха73

Пользователь

Сообщений: 6
Регистрация: 11.11.2011

да, обычно так и происходит, в смысле изменение данных в исходном документе, работать с копией полученного отчета, не проблема, вот только при создании нового отчета нужно будет учитывать, ранее полученный отчет…

 

Просматривая ответ на интересующий меня вопрос, нашел данную тему. Очень помогла. Скажите, а как можно было бы ограничить число копируемых ячеек в строке, например если исходная таблица имеет 10 ячеек в строке, а на том листе, куда переноситься (лист2 например) необходимы только 4 первых ячейки в строке (4 столбца)?

 

Hugo

Пользователь

Сообщений: 23249
Регистрация: 22.12.2012

Range(Cells(i, 1), Cells(i, 4)).Copy

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

Если правильно понял вопрос:  
Range(Cells(i, 1), Cells(i, 4)).Copy .Cells(LastRow + 1, 1)

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

#16

21.08.2012 16:02:45

{quote}{login=}{date=21.08.2012 03:52}{thema=}{post}Просматривая ответ на интересующий меня вопрос{/post}{/quote}Просматривая Ваш вопрос, обнаружил, что Вы не подписываетесь. Анонимно легче? Наоборот: многие их тут не любят

Автоматическое копирование строки на другой лист по условию

Lihomanych

Дата: Понедельник, 24.06.2013, 21:34 |
Сообщение № 1

Группа: Пользователи

Ранг: Прохожий

Сообщений: 3


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Доброго всем дня. Необходимо чтобы при заполнении графика на первом листе (График заказов), при переходе на другую (следующую) строку (в общем при полном заполнении строки), строки с данными автоматически копировались в другие листы, соответствующие виду заказа. Проблема в том, что я мало того что не знаю как написать макрос, я даже не знаю как его в документ внедрить. Всем спасибо. Пример прилагается.

К сообщению приложен файл:

7864091.xlsx
(61.5 Kb)

 

Ответить

Lihomanych

Дата: Понедельник, 24.06.2013, 21:46 |
Сообщение № 2

Группа: Пользователи

Ранг: Прохожий

Сообщений: 3


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Напишу своё предложение.
Колонка «Вид заказа» это выплывающий список основанный на группе ячеек AB3-AB9, можно написать следующее условие: если данные на строке в колонке G (вид заказа) = данным в AB3 то в лист2, если = данным в AB4 то в лист3 и т.д.

 

Ответить

Rustem

Дата: Понедельник, 24.06.2013, 23:09 |
Сообщение № 3

Группа: Проверенные

Ранг: Обитатель

Сообщений: 281


Репутация:

48

±

Замечаний:
0% ±


Excel 2013

Можно так. Для остальных заказов создаем аналогичные листы, меняя ссылку на вспомог. столбец.

К сообщению приложен файл:

6685374.xlsx
(68.3 Kb)


WMR: R183220163895

 

Ответить

Lihomanych

Дата: Понедельник, 24.06.2013, 23:26 |
Сообщение № 4

Группа: Пользователи

Ранг: Прохожий

Сообщений: 3


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Rustem, Спасибо, попробую в деле.

 

Ответить

Grachev_Oleg

Дата: Вторник, 09.07.2013, 08:08 |
Сообщение № 5

Группа: Пользователи

Ранг: Новичок

Сообщений: 15


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Здравствуйте! Очень понравилось ваше решение. Подскажите пожалуйста, как то можно сделать точно так же но только копированием, что б если в спомогательной таблице удалить строку то она уже в других листах останется без изменений. Спасибо

 

Ответить

Pelena

Дата: Вторник, 09.07.2013, 08:51 |
Сообщение № 6

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Цитата (Grachev_Oleg)

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

В предложенном варианте решения — нет, т.к. эти ячейки задействованы в формулах, и если Вы их удаляете, то формулы пересчитываются.

Если вопрос актуален, создавайте свою тему, прилагайте файл с примером, предварительно прочитав Правила форума


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

timurkin

Дата: Среда, 03.06.2015, 12:24 |
Сообщение № 7

Группа: Пользователи

Ранг: Новичок

Сообщений: 14


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

ПОМОГИТЕЕЕ! срочно надо в экселе решить аналогичный вопрос. как так можно сделать чтобы из выпадающего списка определенная фраза сразу копировала всю строку на другой лист((( Вся надежда только на Вас, я все перерыл и догнать не могу, думал что разбираюсь, а оказалось(((
[moder]Если срочно надо решить, то срочно читайте Правила форума и создавайте свою тему.
А эта закрыта.

К сообщению приложен файл:

2860336.xlsx
(83.3 Kb)

Сообщение отредактировал _Boroda_Среда, 03.06.2015, 12:45

 

Ответить

Например, есть таблица покупки фруктов, и теперь вам нужно скопировать записи на новый лист на основе указанных фруктов, как это легко сделать в Excel? Здесь я расскажу о нескольких методах копирования строк на новый лист на основе критериев столбца в Excel.

  • Копировать строки на новый лист на основе критериев столбца путем фильтрации и копирования
  • Скопируйте строки на новый лист на основе критериев столбца, Kutools for Excel

Копировать строки на новый лист на основе критериев столбца путем фильтрации и копирования

Вы можете фильтровать данные по указанному значению столбца, а затем вручную копировать отфильтрованные строки на новый лист в Excel. Пожалуйста, сделайте следующее:

1. Выберите столбец, на основе которого вы будете копировать строки, в нашем примере выберите столбец Fruit. А затем щелкните Данные > Фильтр.

doc копировать строки по значению столбца 2

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

В нашем примере щелкните стрелку рядом с заголовком столбца Fruit, а затем отметьте Apple только в раскрывающемся списке. См. Снимок экрана ниже:

3. Теперь отфильтровываются только записи указанных фруктов. Скопируйте эти записи.

4. Создайте новый лист, щелкнув значок  or  на панели вкладок листа.

5. Затем вставьте скопированные записи в новый лист.

И тогда вы увидите, что все записи об Apple скопированы и сохранены на новом листе. См. Снимок экрана ниже:

doc копировать строки по значению столбца 6

6. Повторите шаги 2–5, чтобы скопировать другие записи фруктов на новые листы.

Если в таблице много видов фруктов, копирование каждого вида записей фруктов на новые листы будет пустой тратой времени.


Скопируйте строки на новый лист на основе критериев столбца, Kutools for Excel

Второй метод поможет вам пакетно копировать строки на новый лист на основе критериев столбца. Kutools for ExcelАвтора Разделить данные утилита.

1. Выберите диапазон, в который вы будете копировать строки на основе критериев столбца, и нажмите кнопку Кутулс Плюс > Разделить данные.

2. В открывшемся диалоговом окне «Разделить данные на несколько листов» вам необходимо:

(1) Проверьте Конкретный столбец вариант, щелкните раскрывающийся список ниже и укажите столбец, из которого вы будете копировать строки;

(2) Щелкните значок Правила поле и укажите Значения столбца из выпадающего списка;

3. Нажмите Ok кнопку.

Затем вы увидите, что каждый вид фруктовых записей копируется на отдельный новый лист новой созданной книги, как показано ниже:

doc копировать строки по значению столбца 9

Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now


Демонстрация: копирование строк на новый лист на основе критериев столбца в Excel


Простое копирование и вставка нескольких ячеек / диапазонов одновременно в Excel

Вы могли заметить, что Microsoft Excel не поддерживает одновременное копирование нескольких непоследовательных ячеек (оставающихся в разных столбцах). Но копирование этих ячеек/выборов по одной занимает много времени и утомительно! Kutools for ExcelАвтора Копировать диапазоны Утилита может помочь сделать это легко, как показано на скриншоте ниже.

объявление копировать несколько диапазонов 1


Статьи по теме:


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (0)


Оценок пока нет. Оцените первым!

Всем добра.

Задача:

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

Мысли:

Когда у меня первый раз спросили про такое, я ответил- фигушки, без макроса никак, по крайней мере для неопределенного количества найденных строк.

 Спустя время мне задали этот вопрос повторно и тут меня осенило — это не невозможно.

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

на деле это выглядит так:
Искать будем значение из ячейки $B$5 (в этой ячейке динамический выпадающий список) в другом листе:

=ПОИСКПОЗ($B$5;ЛИСТ2!B:B;0)

ПоискПоз — ищет вхождения в диапазоне
Результат формулы = 8, т.е. восьмая строчка

Проверяем, и вправду так.

Последующие ячейки при расчете будут учитывать предыдущую:

=ПОИСКПОЗ($B$5;ДВССЫЛ(«Карт.сч.!R»&$C16+1&»C2:R[1000]C2»;ЛОЖЬ);0)+C16)

Во втором аргументе формулы ПоискПоз ( ДВССЫЛ(«Карт.сч.!R»&$C16+1&»C2:R[1000]C2»;ЛОЖЬ); ) формируется диапазон $B$0+предыдущее положение+1 т.е. R9C2:R1000C2
Т.о. мы исключаем уже найденную строку из массива для поиска.

В итоге вот такой формулой

ДВССЫЛ(«Карт.сч.!R»&C16&»C5»;ЛОЖЬ)

Мы получаем значение из пятой колонки строки номер 8, и так далее.

Это можно записать в одну ячейку, но в моем случае получается очень громоздкая конструкция:

=ЕСЛИОШИБКА(ЕСЛИ(ЕПУСТО(ДВССЫЛ(«Карт.сч.!R»&ЕСЛИОШИБКА(ПОИСКПОЗ(ДВССЫЛ(«$B»&СТРОКА()-B17-10;ИСТИНА);ДВССЫЛ(«Карт.сч.!R»&$C16+1&»C2:R[1000]C2″;ЛОЖЬ);0)+C16;»-«)&»C5″;ЛОЖЬ));»АВАНС «;»»)&ТЕКСТ(ДВССЫЛ(«Карт.сч.!R»&ЕСЛИОШИБКА(ПОИСКПОЗ(ДВССЫЛ(«$B»&СТРОКА()-B17-10;ИСТИНА);ДВССЫЛ(«Карт.сч.!R»&$C16+1&»C2:R[1000]C2″;ЛОЖЬ);0)+C16;»-«)&»C3″;ЛОЖЬ);»дд.ММ.гггг»);»»)

Для двойных/тройных условий в поиске предлагаю использовать доп колонку, в таблице поиска, с конкатенацией колонок.

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

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

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

Использование надстройки позволяет:

1. Одним кликом мыши вызывать диалоговое окно макроса прямо из панели инструментов Excel;

2. Задавать значение для поиска;

3. Задавать несколько значений для поиска через символ-разделитель «;» точку с запятой;

4. Учитывать либо не учитывать регистр при поиске заданных значений;

5. Выбирать диапазон ячеек для поиска заданных значений;

6. При необходимости устанавливать ограничения для выбранного диапазона;

7. Выбирать одно из восьми условий для выбранных ячеек:

    а) совпадает с искомым значением;

    б) не совпадает с искомым значением;

    в) содержит искомое значение;

    г) не содержит искомое значение;

    д) начинается с искомого значения;

    е) не начинается с искомого значения;

    ж) заканчивается искомым значением;

    з) не заканчивается искомым значением.

8. Выбирать в качестве места вставки для скопированных строк либо новый лист, либо новую рабочую книгу.

kopirovanie strok v excel po usloviyuCompleteSolutionмакрос (надстройка) для выборочного копирования строк по условию на новый лист

А знаете ли Вы, что все листы рабочей книги можно быстро превратить в отдельные файлы?

Другие материалы по теме:

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Excel копирование строки в строку
  • Excel копирование строк по значению
  • Excel копирование строк их других листов по условию
  • Excel копирование ссылок на листы
  • Excel копирование ссылка на одну ячейку

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии