Возврат Excel vlookup недоступен

я хочу заполнить столбец имени с помощью vlookup, вот моя таблица транзакций введите здесь описание изображения

а вот мой основной файл

введите здесь описание изображения

да, это одно и то же число, но почему мой vlookup не возвращает соответствующее имя на основе искомого значения?

vlookup соответствует типу данных? как текст, или число, или вообще?

я меняю тип данных снова и снова и возвращаю одно и то же «Недоступно»

Что-то не так с моим Excel 2007?


person Cignitor    schedule 27.03.2014    source источник


Ответы (2)


Что неправильно, так это то, что VLOOKUP ищет номер телефона в первом столбце, то есть в столбце A. Для «обратного поиска» вам нужно будет использовать INDEX и MATCH:

=INDEX(Phonebook!$A$2:$A$45,MATCH(B2,Phonebook!$B$2:$B$45,0))

INDEX выглядит следующим образом:

=INDEX(Range, Row Number, [Column Number])

Он вернет значение ячейки из диапазона Range, который находится в строке с номером Row Number и столбце Column Number. Я поместил Column Number в квадратные скобки, потому что это необязательно (у вас есть только 1 столбец, если у вас есть диапазон, который находится, например, в пределах A: A)

Чтобы получить номер строки, вы можете использовать MATCH, как указано выше. Он немного похож на VLOOKUP, но вместо возврата значения соответствующей ячейки он возвращает номер строки соответствующей ячейки (или номер столбца, если вы используете его для горизонтального диапазона).

Таким образом, MATCH(B2,Phonebook!$B$2:$B$45,0) ищет B2 в диапазоне B2:B45 рабочего листа Phonebook (0 означает точное совпадение) и дает номер строки.

Затем вы указываете Excel вернуть значение ячейки из диапазона Phonebook!$A$2:$A$45 и номер строки, полученный из MATCH.

person Jerry    schedule 27.03.2014
comment
почему моя формула недоступна =INDEX(Phonebook!$A$2:$A$542,MATCH(Transaksi!B2,Phonebook!$A$2:$B$752,0)) - person Cignitor; 27.03.2014
comment
@Cignitor Ну, во-первых, MATCH работает с одной строкой или с одним столбцом. Таким образом, Phonebook!$A$2:$B$752 на самом деле должно быть Phonebook!$A$2:$A$752 или Phonebook!$B$2:$B$752, в зависимости от того, в каком столбце вы можете получить совпадение. - person Jerry; 27.03.2014

Вы должны использовать Index/Match следующим образом:

=INDEX(Phonebook!$A$2:$A$45,MATCH(B2,Phonebook!$B$2:$B$45,0))

Ваш Vlookup не работает, потому что он пытался найти значение из B2 в первом столбце диапазона Phonebook!$A$2:$B$45, то есть Phonebook!$A$2:$A$45

person Dmitry Pavliv    schedule 27.03.2014
comment
что делает index/match? update: Итак, вы пытаетесь сказать, что мне нужно переместить столбец «Имя телефонной книги» в правую часть столбца «Номер_телефонного справочника»? - person Cignitor; 27.03.2014
comment
он очень похож на VLOOKUP, но более гибкий: Match возвращает относительную позицию B2 в диапазоне Phonebook!$B$2:$B$45, а Index получает эту позицию и возвращает соответствующее значение из Phonebook!$A$2:$A$45: - person Dmitry Pavliv; 27.03.2014
comment
@Cignitor, are you trying to say that i have to move the Phonebook-name column to the right side of the Phonebook-phone_number column - да, vlookup всегда ищет в первом столбце целевого диапазона, поэтому подход Index/Match более гибкий - вы можете искать в любом столбце - person Dmitry Pavliv; 27.03.2014