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

Вот простое объяснение того, с чем у меня проблемы.

Столбец A: Список из 2300 номеров заказов
Столбец B: Адрес электронной почты, связанный с номером заказа
Столбец C: Список из 100 конкретных номеров заказов, для которых мне нужен адрес электронной почты

Итак, я ищу в столбце A значение, которое соответствует C, и возвращаю адрес электронной почты из столбца B в новом столбце (D).

Текущая формула почти работает, но вместо того, чтобы возвращать адрес электронной почты, где A соответствует C, она возвращает адрес электронной почты из той же строки.

=IF(ISERROR(MATCH(C2,A:A,0)),B2)    

По сути, мне просто нужно B2 в приведенной выше формуле, чтобы вернуть значение из той же строки, которая соответствует.


person mn8809    schedule 15.10.2014    source источник
comment
Связанный stackoverflow.com/questions/ 42492758 /   -  person Tung    schedule 13.09.2019


Ответы (3)


Я думаю, что вам нужно что-то вроде:

=INDEX(B:B,MATCH(C2,A:A,0))  

Я должен упомянуть, что MATCH проверяет позицию, в которой значение может быть найдено в A: A (с учетом параметра 0 или FALSE, он ищет только точное совпадение и, учитывая его характер, только первый найденный экземпляр), затем INDEX возвращает значение в эта позиция в B: B.

person pnuts    schedule 15.10.2014
comment
Бинго! Большое спасибо! - person mn8809; 15.10.2014
comment
В этом конкретном случае было бы проще использовать = VLOOKUP (C2, A: B, 2, FALSE), но, похоже, есть веские аргументы в пользу регулярного использования сопоставления / индекса mbaexcel.com/excel/why-index-match-is-better-than-vlookup - person Tom Sharpe; 15.10.2014
comment
Я согласен с вашими рассуждениями @pnuts - возможно, в будущем я перейду на использование индекса / сопоставления! - person Tom Sharpe; 15.10.2014
comment
@pnuts Можете ли вы на это ответить? stackoverflow.com/questions/48478990/ - person Umair; 28.01.2018
comment
Это здорово - именно то, что мне нужно :) Спасибо - person Abid; 06.07.2018

=IF(ISNA(INDEX(B:B,MATCH(C2,A:A,0))),"",INDEX(B:B,MATCH(C2,A:A,0)))

Вернет нужный ответ, а также удалит #N/A результат, который появился бы, если бы вы не смогли найти результат из-за того, что он не появился в вашем списке поиска.

Росс

person Ross    schedule 02.09.2015

Все, что вам нужно сделать, это написать условие IF в столбце d следующим образом:

=IF(A1=C1;B1;" ")

После этого просто примените эту формулу ко всем строкам выше этой.

person Alexey    schedule 15.10.2014
comment
Возможно, я плохо поработал в своем объяснении. Это было бы именно то, что мне нужно, если бы мне нужно было извлекать данные только из одной строки, но столбцы не выстраивались в линию. Однако, спасибо! - person mn8809; 15.10.2014