Tutaj mam wymownie nazwany stół Table4
.
Zdefiniowałem zakres nazwany na podstawie kolumny ID Table4
.
Tutaj mam kilka identycznych menu obok pól, które używają VLOOKUP
:
Lista rozwijana jest zatwierdzana przy użyciu list
powyższego zakresu nazwanego (PatientIds). A oto kod formuł wyszukiwania:
=VLOOKUP(C9,Table4[[#All],[ID]:[Full Name]],4)
Przy powyższych danych wszystko wygląda i działa świetnie. Mogę zmienić listy rozwijane i wartość obok nich się zmienia. Oto przykład:
JEDNAK , jeśli spróbuję się zmienić Z1
na NA
, co jest bardziej sensowne dla użytkownika, rozpęta się piekło!
Oto wyniki z kilkoma zduplikowanymi polami:
A jeśli nie zrobię nic innego niż NA
powrót do Z1
:
microsoft-excel
microsoft-excel-2013
Scott Beeson
źródło
źródło
Z1
międzyP8
iP9
teraz wszystko, aż P9 działało poprawnie ...Odpowiedzi:
Vlookup przyjmuje cztery argumenty
Ostatni argument można pominąć i domyślnie ma on wartość 1 lub PRAWDA. Pominąłeś czwarty argument, więc domyślnie jest ustawiony na PRAWDA. Oznacza to, że wyszukiwanie zwróci następny najmniejszy element, jeśli nie zostanie znalezione dokładne dopasowanie.
Aby to działało poprawnie, tablica_tablicy musi być posortowana rosnąco według pierwszej kolumny. Jeśli tak nie jest, wyniki będą wszędzie, a poprawny wynik będzie bardziej przypadkowy niż projektowy.
Aby uzyskać więcej informacji o Vlookup i dyskusję na temat czwartego parametru, zobacz Vlookup - dlaczego potrzebuję PRAWDA lub FAŁSZ?
źródło
the table_array has to be sorted ascending by the first column
Tej części mi brakowało. Jak frustrujące! Dzięki.