2013-11-16 5 views
0

Мне нужно присвоить статус строке на основе запроса VLOOKUP между двумя рабочими листами. Проблема в том, что идентификатор не всегда уникален. Однако идентификатор + значение даты должно быть уникальным. Я хотел бы использовать:Согласование двух столбцов в одном листе с двумя столбцами в другом

=VLOOKUP(A3&H3,'OtherSheet'!D:E,1,FALSE) 

с А3, являющимся идентификатором, а Н3 - соответствующей датой. D на другом листе - это идентификатор, а E - столбец даты. Тем не менее, я продолжаю получать # N/A.

Означает ли это, что нет совпадений с «идентификатором + датой» или Excel ищет «идентификатор + дату» в столбце D или E? Если последнее верно, как я могу позволить Excel объединить D и E при сопоставлении с шаблоном поиска?

+1

В качестве обходного пути я создал столбец на обоих листах, чтобы объединить столбцы, чтобы создать уникальный идентификатор. Было бы неплохо, если бы я смог достичь того же результата с помощью «вспомогательных столбцов» – Chielt

+1

Вы можете использовать Index/Match или Index/Sumproduct для выполнения поиска по нескольким критериям. [Этот пост] (http://yoursumbuddy.com/index-sumproduct-or-index-match-for-multiple-criteria-lookups/) может представлять интерес. –

ответ

0

Эта формула ищет, чтобы найти A3, объединенную с H3 (идентификатор & date) в OtherSheet Столбец D, который содержит только идентификаторы, поэтому неизбежно провалится. Да, Excel ищет «идентификатор + дату» в столбце D.

Excel с радостью объединяет A3 с H3 «на лету» (в пределах формулы), но не так счастливо объединяется OtherSheet Значения ColumnD и ColumnE в том же путь. Обычное решение, так как обычно проще в таком случае, заключается в подготовке к VLOOKUP путем добавления вспомогательного столбца, который объединяет значения D и E, сохраняя их в той же строке, что и искомое.

Поскольку VLOOKUP будет смотреть только вправо, это, как правило, столбец, который добавляется слева от искомого значения, поэтому скажите либо в C, либо путем вставки столбца сразу справа от C. Однако, поскольку вы проверяете только один столбец, местоположение не является критическим. Вы можете добавить это (в OtherSheet), как ColumnZ, с формулой, такие как:

скопирована вниз, чтобы удовлетворить *. Опять же, потому что вы только проверяете один столбец не имеет значения, какая строка такая формула помещается в

Однако, поскольку только проверка, существует ли A3 & H3 в OtherSheet простой альтернативой может стать применение COUNTIFS:.

=COUNTIFS(OtherSheet!D:D,A3,OtherSheet!E:E,H3) 

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

* В зависимости от формата ваших идентификаторов вполне возможно, что конкатенация может ввести двусмысленность. Например, ID90, объединенный с 11/1/15, может не отличаться от ID901, связанного с 1/1/15, поэтому может быть целесообразно, если бы этот подход вводил разделитель в формуле VLOOKUP (например, A3&"|"&H3, а не только A3&H3) и, следовательно, также в вспомогательной колонке, скажем =D2&"|"&E2.

0

Возможно, вам захочется использовать Index/Match. Vlookup является сложным, когда дело доходит до поиска нескольких вещей. Вот так, как вы бы использовать индекс/Match:

Не зная, как ваша таблица создана, вот как вы можете это сделать:

Если я правильно понимаю, вы хотите использовать A3 найти матч в OtherSheet!D , и матч H3 в OtherSheet!E. Соответствие индексов идеально подходит для этого.Вместо vLookup используйте

=Index(OtherSheet!D:D&","&Text(OtherSheet!E:E,"mm-dd-yyyy"),Match(A3&H3,OtherSheet!D&OtherSheet!E,0)) и введите CTRL+SHIFT+ENTER.

Что возвращает Index() - это объединенный идентификатор и дата, разделенные запятой. Если, тем не менее, у вас есть таблица вроде этого:

enter image description here

Эта формула индекса/матч возвращает «Бэтмена». Возвращаемый индекс - это именованный диапазон G2: G5. Вы ищете совпадение на A1 (идентификатор) и B1 (дата), затем вы ищете (в том порядке, в котором вы только что положили), что идентификатор находится в диапазоне E2: E5, а Date - в F2: F5. Когда есть совпадение для обоих, оно возвращает имя в G2: G5.

Вот ссылка на a site on с использованием Index/Match и another и его преимуществ перед vlookup.

0

Работает без использования CTRL + Shift + Enter.

Используйте эту формулу, которая будет соответствовать столбцу A3 в D других таблиц и H3 с датой в столбце E другой таблицы.

=INDEX(OtherSheet!F:F,MATCH(1,INDEX((OtherSheet!D:D=A3)*(OtherSheet!E:E=H3),),0)) 

Формула вернет данные из столбца F в OtherSheet. Вы можете изменить диапазон OtherSheet!F:F, если необходимо.