Как отобразить на отдельном листе только строки данных на основе одного столбца этих данных, соответствующих определенным критериям в Excel? В исходной таблице данных есть как минимум 15 столбцов и 240 строк, и мне нужно отобразить все строки данных, если одна ячейка в этой строке соответствует критериям.
2 ответа
Я не понимаю, почему я не понимаю ответ DeltaHotel, поэтому я бы сказал, что в целевом листе есть заявление IF. Как только у меня заработала одна ячейка, я бы скопировал ее в каждую ячейку в строке и столбце.
Вы можете ссылаться на ячейки на листе оригинала и старательно использовать относительное / абсолютное форматирование, чтобы сделать это правильно.
VB более элегантный, если вы понимаете это.
Вы можете использовать параметр « Фильтр данных» (« Фильтровать из ленты данных» ), чтобы ограничить область действия исходного листа, а затем скопировать весь лист на целевой лист. Это может быть обернуто в небольшой модуль VBA, если вы хотите автоматизировать, и модуль может динамически создавать (или очищать) целевой лист.
Что-то вроде следующего кода:
' clear the target sheet Sheets("Target Sheet").Select Cells.Select Selection.ClearContents Range("A1").Select ' go to source sheet Sheets("Source Sheet").Select ' filter as needed ActiveSheet.Range("$A$1:$O$500").AutoFilter Field:=4, Criteria1:="=100", _ Operator:=xlOr, Criteria2:="=200" ' copy filtered rows to target Cells.Select Selection.Copy Sheets("Target Sheet").Select ActiveSheet.Paste Range("A1").Select Sheets("Source Sheet").Select Application.CutCopyMode = False Range("A1").Select ActiveSheet.Range("$A$1:$O$500").AutoFilter Field:=4
Поместите этот код в модуль, затем вы можете запустить код с ленты разработчика (макросы) или назначить кнопку на панели инструментов ленты или быстрого доступа, если это необходимо.