Перевірте, чи існує в колонці значення комірки, а потім отримайте значення НАСТУПНОЇ комірки


89

Перевіривши, чи існує в колонці значення комірки, мені потрібно отримати значення комірки поруч із відповідною коміркою . Наприклад, я перевіряю, чи cell A1існує значення в column B, і припускаючи, що воно збігається B5, тоді я хочу значення в cell C5.

Щоб вирішити першу половину проблеми, я зробив це ...

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", "Match")

... і це спрацювало. Потім, завдяки попередній відповіді на SO , я також зміг отримати номер рядка відповідної комірки:

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", "Match on Row " & MATCH(A1,B:B, 0))

Отже, природно, щоб отримати значення наступної комірки, я спробував ...

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", C&MATCH(A1,B:B, 0))

... і це не працює.

Чого мені не вистачає? Як додати номер стовпця до номера рядка, що повертається, для досягнення бажаного результату?

Відповіді:


99

Використовуйте іншу функцію, наприклад VLOOKUP:

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", VLOOKUP(A1,B:C,2,FALSE))

1
Дякую! Це теж працює! І я думаю, що було б краще використовувати VLOOKUP(A1, B:C, 2, FALSE)замість того, щоб використовувати фіксований діапазон (щоб вмістити зростаючий масив пошуку)?
SNag

1
Так, я просто використовував цей фіксований діапазон як тест. Відредагував у своїй відповіді.
CustomX

Тут вам не потрібно IFERROR. Він добре працює без нього, оскільки VLOOKUP виконується лише за наявності відповідності.
SNag

Ой! Здається, я тестував у неправильній колонці: P Справді, без IFERROR це теж прекрасно працює: P
CustomX

3
Це старше, ніж старе, але я просто хотів сказати, що я цим користуюся роками, і мене справді хвилює, що вам ніколи не дали найкращої відповіді. Мені подобається, що це робить таблицю масштабованою для порівняння кількох стовпців.
DuffDuff

36

Після відповіді t.ielemans я працював так справедливо

=VLOOKUP(A1, B:C, 2, FALSE) 

працює нормально і робить те, що я хотів, за винятком того, що він повертається #N/Aза не матчі; тому він підходить для випадку, коли відомо, що значення безумовно існує у стовпці пошуку.

Редагувати (на основі коментаря t.thielemans):

Щоб уникнути #N/Aневідповідностей, виконайте:

=IFERROR(VLOOKUP(A1, B:C, 2, FALSE), "No Match")

3
Використовуйте це замість цього IFERROR(VLOOKUP(A1, B:C, 2, FALSE),0). Я також додав це до своєї відповіді. 0 - будь-яке значення, яке ви хочете :) (використання цього в коді призведе до No Match, якщо збіг не знайдено;)
CustomX

7

Як щодо цього?

=IF(ISERROR(MATCH(A1,B:B, 0)), "No Match", INDIRECT(ADDRESS(MATCH(A1,B:B, 0), 3)))

"3" в кінці означає для стовпця C.


2
Фантастично! Я просто спробував саме це (на основі Excel: отримати вміст комірки з урахуванням номерів рядків і стовпців ) і збирався відповісти на власне запитання, але ви мене побили! Дякую, це чудово працює!
SNag
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.