2015-11-19 3 views
0

У меня есть файл Excel с двумя листами и одинаковыми форматами на каждом. Мне нужно искать вертикально вниз по листу и найти совпадающую строку на другом листе и вернуть значение ячейки из этой строки, но только в том случае, если соответствует вся строка.найти соответствующие строки excel formula или vba

Я не смог найти точный ответ. Любая помощь приветствуется. благодаря!

+0

Вы хотите сопоставить 16 384 ячейки отдельно от соответствующих 16,384 ячеек на другом листе для каждого из нескольких строк? – pnuts

+0

Использование функции Vlookup – newjenn

+0

Ряд охватывает A - I и их около 100. – surprisedbadger

ответ

1

не очень, но это работает для ограниченного набора данных (в данном случае строка от 1 до 10): структура

=INDEX(B!$I$1:$I$10,MATCH(A!A1&A!B1&A!C1&A!D1&A!E1&A!F1&A!G1&A!H1&A!I1,INDEX(B!$A$1:$A$10&B!$B$1:$B$10&B!$C$1:$C$10&B!$D$1:$D$10&B!$E$1:$E$10&B!$F$1:$F$10&B!$G$1:$G$10&B!$H$1:$H$10&B!$I$1:$I$10,0),0)) 

данных в листах А и В идентична. Формула возвращает значение из листа B, столбец I из строк, где значения в столбцах A-I идентичны в обоих листах.

Это должно быть хорошо с 100 строками, но не делайте этого со ссылками на целые столбцы.

0

Простой способ, в третьем листе, заполнить диапазон A1: I ~ 100 с:

=IF(Sheet1!A1=Sheet2!A1,Sheet1!A1,"") 

и J1 вниз в соответствии с:

=COUNTBLANK(A1:I1) 

Фильтр ColumnJ выбрать 0 и выберите нужные значения из этих строк.

+0

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

0

Если предположить, что рабочие листы названы Sheet1 и Sheet2(изменить при необходимости), их структура данных идентична и диапазоны данных в каждом A1:I100 (изменения при необходимости).

В третьем листе введите этот FormulaArray в A1 и скопировать до последней записи (A100)

Введите FormulaArray нажав[Ctrl]+[Shift]+[Enter]одновременно, вы должны видеть{ .. . }по формуле, если введено правильно

=SUM((Sheet1!$A1:$I1 = Sheet2!$A$1:$I$100) * 1) = COLUMNS($A1:$I1) 

Затем в B1 ввести эту формулу копию до J1 затем до последней записи (B2:J100)

=IF($A1 , Sheet1!A1 ,"") 

Вы также можете ввести эту формулу в Sheet1!J1 и скопировать до последней записи:

=SUM(($A1:$I1 = Sheet2!$A$1:$I$100) * 1) = COLUMNS($A1:$I1) 

Или введите эту формулу в Sheet2!J1 и скопируйте до последней записи:

=SUM(($A1:$I1 = Sheet1!$A$1:$I$100) * 1) = COLUMNS($A1:$I1)