Formuła programu Excel: wyszukaj najnowszą cenę -

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.

Interesujące artykuły...