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 A1
znajduje 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?
VLOOKUP(A1, B:C, 2, FALSE)
zamiast używać stałego zakresu (aby pomieścić rosnącą tablicę wyszukiwania)?IFERROR
tutaj. Działa dobrze bez tego, ponieważ WYSZUKAJ.PIONOWO jest wykonywane tylko wtedy, gdy istnieje dopasowanie.Po odpowiedzi t.thielemansa po prostu nad tym pracowałem
działa dobrze i robi to, co chciałem, z wyjątkiem tego, że zwraca
#N/A
w 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/A
niezgodności, wykonaj:źródło
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;)Co powiesz na to?
„3” na końcu oznacza kolumnę C.
źródło