
Formuła ogólna
=LOOKUP(2,1/(item="hat"),price)
Podsumowanie
Aby wyszukać najnowszą cenę produktu na liście, posortowaną tak, aby najnowsze pozycje pojawiały się jako ostatnie, możesz użyć formuły opartej na funkcji WYSZUKAJ. W pokazanym przykładzie formuła w G7 to:
=LOOKUP(2,1/(item=F7),price)
gdzie pozycja to nazwany zakres B5: B12, cena to nazwany zakres D5: D12, a dane są sortowane rosnąco według daty.
Wyjaśnienie
Funkcja WYSZUKAJ zakłada, że dane są posortowane i zawsze dopasowuje przybliżone. Jeśli wartość wyszukiwania jest większa niż wszystkie wartości w tablicy wyszukiwania, domyślnym zachowaniem jest „powrót” do poprzedniej wartości. Ta formuła wykorzystuje to zachowanie, tworząc tablicę zawierającą tylko jedynki i błędy, a następnie celowo wyszukując wartość 2, która nigdy nie zostanie znaleziona.
Najpierw oceniane jest to wyrażenie:
item=F7
Gdy F7 zawiera „sandały”, wynikiem jest tablica wartości PRAWDA i FAŁSZ w następujący sposób:
(FALSE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE)
Ta tablica jest udostępniana jako dzielnik 1:
1/(FALSE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE)
Operacja matematyczna automatycznie przekształca wartości PRAWDA i FAŁSZ na 1 i 0, więc wynikiem jest kolejna tablica, taka jak ta:
(#DIV/0!;1;#DIV/0!;1;#DIV/0!;#DIV/0!;1;#DIV/0!)
zwracany bezpośrednio do funkcji WYSZUKAJ jako argument wektora wyszukiwania.
Zwróć uwagę, że tablica zawiera tylko dwie unikalne wartości: błąd dzielenia przez zero (# DIV / 0!) I liczbę 1.
LOOKUP przeszukuje tablicę pod kątem wartości 2, ignorując wartości błędów. Nie znajdując 2, wraca do ostatniej 1, na pozycji 7 w wektorze wyszukiwania. WYSZUKAJ zwraca następnie 7. pozycję w wektorze wynikowym (nazwany zakres „cena”), wartość 15.
Aby dowiedzieć się więcej o koncepcji celowego szukania wartości, która nigdy się nie pojawi, przeczytaj o BigNum.