Mam arkusz kalkulacyjny, który ma tabelę o strukturze podobnej do tej:
| 1-2 | 3-4 | 5-6 | 7+
-------------------------------
18-20 | 7 | 2 | 9 | 4 |
21-25 | 1 | 0 | 6 | 3 |
26-30 | 1 | 4 | 6 | 9 |
31+ | 3 | 8 | 5 | 0 |
Powiedzmy na przykład, że dane wejściowe, które otrzymałem od użytkownika 2, 19
, powinny zostać zwrócone 7
. Lub jeśli dane wejściowe byłyby 9, 29
, wyszukiwanie powinno wrócić 9
.
Wiem, że możesz wykonywać wyszukiwanie dwuwymiarowe, gdy masz tylko pojedyncze wartości w nagłówkach wierszy i kolumn, łącząc VLOOKUP
i MATCH
. Ale jak mam sprawdzić, kiedy nagłówki mają zakres wartości?
Czy muszę po prostu napisać niestandardową funkcję VBA, czy Excel ma jakiś wbudowany sposób, aby to zrobić?
źródło
Ponieważ etykiety są dobrze uformowane, co w przypadku etykiet oznacza w zasadzie, że są uporządkowane tak, jakby zostały posortowane od najniższej do najwyższej według kodów znaków pierwszych znaków, można skorzystać z ostatniego argumentu w WYSZUKAJ.PIONOWO () i HLOOKUP (), wybierając opcję „dopasowanie przybliżone”.
Robisz to, aby utworzyć wartość wyszukiwania i kolumnę, aby wyszukać funkcję WYSZUKAJ.PIONOWO (), która wykona końcową pracę.
Na koniec masz prostą WYSZUKAJ.PIONOWO (). Co na to spojrzeć? Powiedzmy, że twoja tabela pokazuje A1: E5 z etykietami wierszy w A2: A5 (NIE dołączaj tego pierwszego wiersza!) I etykietami kolumn w B1: E1 (NIE dołączaj tej pierwszej kolumny!), A rzeczywistymi danymi w B2 : E5. Jeśli uwzględnisz te pierwsze wiersze i kolumny (A1), pojawi się błąd # Nie dotyczy. Załóżmy, że sam radzisz sobie z uzyskiwaniem wartości wejściowych, więc jednak tworzony jest materiał „2, 19”, ale jest on udostępniany (nazywam to „Kolumną do patrzenia” i „Wierszem do patrzenia”.) :
zwróci „18-20”, którego użyjemy bezpośrednio jako wartości wyszukiwania, oraz
zwróci „1-2” i tutaj pojawia się „drobna sztuczka”.
Jeśli zawiniemy tę ostatnią funkcję w funkcję MATCH (), użyje „1-2”, aby znaleźć numer kolumny do wyszukania, w której wymagana jest ostatnia funkcja WYSZUKAJ.PIONOWO (). (Anonimowa osoba w witrynie UserVoice programu Excel pokazała mi to.)
Musisz teraz użyć zakresu, którego właśnie unikaliśmy, A1: E1, aby uzyskać numer kolumny bezpośrednio. Jeśli zaczniesz od B1, musisz dodać „1” do wyniku, więc łatwiej jest to odczytać i zrozumieć:
która zwraca „2” dla kolumny (przypadkowo, nic więcej, to samo co nasze dane wejściowe, ale nie dopuszczaj do zamieszania w grze!). Wreszcie poskładasz to wszystko jako:
Użyj do tego „FAŁSZ”, ponieważ albo masz dokładne dopasowania, albo coś poszło nie tak.
(Jeśli tylko kolumny lub tylko rzędy są podatne, nadal możesz się tutaj dostosować. Masz tylko trudniejszy czas, ponieważ tylko połowa z tego jest rozwiązana, ale to wystarczy, znalazłem. Użyłem go może 6-8 razy, odkąd nauczyłem się MATCH (), aby odzyskać nagłówki wierszy / kolumn jako funkcję Etykiet, a połowa z nich była tylko „ruly”.)
źródło