2013-09-23 3 views
0

У меня есть две вкладки - вкладка ALL и вкладка CATA.Найдите слово в столбце, а затем скопируйте строку

Вкладка ALL содержит все данные (источник)
Вкладка CATA является целевой вкладкой, в которой должны быть вставлены конкретные строки.

Вопрос:

  • Я хочу найти все строки, один на один,
  • затем скопировать строки из вкладки источника, где столбец I имеет CATA слово в нем
  • , а затем вставить эту строку в целевой вкладке.

Пример данных для столбца I:

"USTA;#CATA;#INTA;#Non-TA" 
"USTA;#INTA;#Non-TA" 

ответ

0

Если количество строк, которые соответствуют неизвестно, и вы не хотите, пустые строки между ними, это произведет подмножество строк, которые содержат фраза «CATA» в колонке А.

Это формула для ячейки А2, которая может быть замедлен, насколько необходимо:

=IFERROR(
    INDEX(ALL!A:A, 
    SMALL(
     IF(
     NOT(ISERROR(FIND("CATA",ALL!A:A))), 
     ROW(ALL!A:A)), 
     ROW()-ROW($A$1))),"") 

It необходимо ввести с помощью CTRL + SHIFT + ENTER.

Он отобразит пустую строку после того, как будут найдены все возможные строки CATA.

Для столбца В, он изменяет только две ссылки (A: B становится: B):

=IFERROR(
    INDEX(ALL!B:B, 
    SMALL(
     IF(
     NOT(ISERROR(FIND("CATA",ALL!A:A))), 
     ROW(ALL!B:B)), 
     ROW()-ROW($A$1))),"") 

Вы можете повторить это столько столбцов, нужно перенести. Не забудьте начать вводить его в строке 2 и не забудьте ввести первый с помощью CTRL + SHIFT + ENTER, прежде чем перетаскивать его по столбцу.

+0

Ни один из thesolution выше не работает, я вставил код, который я использую, вы можете мне помочь, чтобы вставить логику «искать CATA в Col I», и если он находит то «копировать строку», а затем вставьте его в лист CATA. – user2805208

+0

код, который я использую в настоящее время обряда: Sub Entity() Dim г Как диапазон, с как диапазон Worksheets ("Кат") Cells.Clear С Таблицами ("все") Set г = Range (. .Range ("К2"), .Range ("К2"). Конец (xlDown)) Для каждого С в г Если WorksheetFunction.IsNumber (с) Тогда Диапазон (.Cells (c.Row, «A»), .Cells (c.Row, «O»)).Копирование Else GoTo nextc End If С Таблицами ("Кат") .Cells (Rows.Count, "A"). End (xlUp) .offset (1, 0) .PasteSpecial конца с nextc: Следующая с End With Application.CutCopyMode = False End Sub – user2805208

+0

@ user2805208 вы должны изменить свой вопрос, чтобы включить этот код. Кроме того, код ищет номера только в столбце K. Вы хотите заменить этот поиск поиском '* CATA *' в столбце I? Или вы хотите скорректировать код в соответствии с обоими условиями (номера в столбце K AND '* CATA *' в столбце I)? В любом случае, пожалуйста, обновите и уточните свой вопрос. – tigeravatar

1

Я хотел бы предложить, используя подход, как описано ниже:

  1. Вставьте фильтр на общую таблицу, и фильтр на колонке I на Text>Contains и типа «CATA» в поле ввода.

  2. Скопируйте все, кроме колонки A, затем вставьте вкладку CATA.

+1

Не является ли ключевое слово 'CATA' только в столбце I? В этом случае вы не могли бы просто фильтровать по столбцу I для '* CATA *', а затем делать копию/вставку? – tigeravatar

+0

@tigeravatar По какой-то причине, я думаю, что я вообще не видел «я» в вопросе и думал, что ключевое слово может быть в любом столбце таблицы ......... – Jerry

Смежные вопросы