
Загальна формула
=LOOKUP(2,1/(item="hat"),price)
Резюме
Для пошуку останньої ціни на товар у списку, відсортованої таким чином, щоб останні товари з’явились останніми, ви можете скористатися формулою на основі функції ПЕРЕГЛЯД. У прикладі шоу формула G7 має вигляд:
=LOOKUP(2,1/(item=F7),price)
де товар - іменований діапазон B5: B12, ціна - іменований діапазон D5: D12, а дані сортуються за зростанням за датою.
Пояснення
Функція LOOKUP передбачає сортування даних і завжди виконує приблизний збіг. Якщо значення пошуку перевищує всі значення масиву пошуку, поведінка за замовчуванням "повертається" до попереднього значення. Ця формула використовує цю поведінку, створюючи масив, що містить лише 1 і помилки, а потім навмисно шукає значення 2, яке ніколи не буде знайдено.
Спочатку обчислюється цей вираз:
item=F7
Коли F7 містить "сандалі", результатом є масив значень TRUE і FALSE, таких як:
(FALSE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE)
Цей масив подається як дільник на 1:
1/(FALSE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE)
Операція математики автоматично примушує значення TRUE і FALSE до 1s і 0s, тому в результаті виходить інший масив, подібний до цього:
(#DIV/0!;1;#DIV/0!;1;#DIV/0!;#DIV/0!;1;#DIV/0!)
повертається безпосередньо до функції LOOKUP як аргумент вектора пошуку.
Зверніть увагу, що масив містить лише два унікальних значення: помилка ділення на нуль (# DIV / 0!) Та число 1.
LOOKUP шукає в масиві значення 2, ігноруючи значення помилок. Не знайшовши 2, він повертається до останнього 1, у позицію 7 у векторі пошуку. Потім LOOKUP повертає 7-й елемент у векторі результату (названий діапазон "ціна"), значення 15.
Щоб прочитати більше про концепцію навмисного пошуку цінності, яка ніколи не з’явиться, прочитайте про BigNum.