Sprawdź, czy wartość komórki istnieje w kolumnie, a następnie uzyskaj wartość NEXT Cell


89

Po sprawdzeniu, czy wartość komórki istnieje w kolumnie, muszę uzyskać wartość komórki obok pasującej komórki . Na przykład sprawdzam, czy wartość cell A1znajduje się w column B, i zakładając, że pasuje B5, chcę mieć wartość w cell C5.

Aby rozwiązać pierwszą połowę problemu, zrobiłem to ...

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

... i zadziałało. Następnie, dzięki wcześniejszej odpowiedzi na SO , udało mi się również uzyskać numer wiersza pasującej komórki:

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

Więc naturalnie, aby uzyskać wartość następnej komórki, próbowałem ...

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

... i to nie działa.

czego mi brakuje? Jak dołączyć numer kolumny do numeru wiersza zwracanego, aby uzyskać pożądany wynik?

Odpowiedzi:


99

Użyj innej funkcji, np. WYSZUKAJ.PIONOWO:

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

1
Dzięki! To też działa! I myślę, że lepiej byłoby użyć VLOOKUP(A1, B:C, 2, FALSE)zamiast używać stałego zakresu (aby pomieścić rosnącą tablicę wyszukiwania)?
SNag

1
Tak, właśnie użyłem tego ustalonego zakresu jako testu. Zredagowałem to w mojej odpowiedzi.
CustomX

Nie potrzebujesz IFERRORtutaj. Działa dobrze bez tego, ponieważ WYSZUKAJ.PIONOWO jest wykonywane tylko wtedy, gdy istnieje dopasowanie.
SNag

Ups! Wydaje mi się, że testowałem w złej kolumnie: P Rzeczywiście bez IFERROR to też działa idealnie: P
CustomX

3
To jest starsze niż stare, ale chciałem tylko powiedzieć, że używam tego od lat i naprawdę wkurza mnie, że nigdy nie otrzymałeś najlepszej odpowiedzi. Uwielbiam to, że sprawia, że ​​tabela jest skalowalna do porównywania wielu kolumn.
DuffDuff

37

Po odpowiedzi t.thielemansa po prostu nad tym pracowałem

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

działa dobrze i robi to, co chciałem, z wyjątkiem tego, że zwraca #N/Aw przypadku niedopasowań; jest więc odpowiedni w przypadku, gdy wiadomo, że wartość na pewno istnieje w kolumnie wyszukiwania.

Edytuj (na podstawie komentarza t.thielemansa):

Aby uniknąć #N/Aniezgodności, wykonaj:

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

3
Użyj tego zamiast tego IFERROR(VLOOKUP(A1, B:C, 2, FALSE),0). Dodałem to również do mojej odpowiedzi. 0 to dowolna wartość :) (użycie tego w kodzie spowoduje brak dopasowania, jeśli nie zostanie znalezione dopasowanie;)
CustomX

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.