
Обща формула
=LOOKUP(2,1/(item="hat"),price)
Обобщение
За да търсите най-новата цена за продукт в списък, сортиран така, че най-новите артикули да се показват последни, можете да използвате формула, базирана на функцията LOOKUP. В примерното шоу формулата в G7 е:
=LOOKUP(2,1/(item=F7),price)
където артикулът е наименованият диапазон B5: B12, цената е наименуваният диапазон D5: D12, а данните са сортирани възходящо по дата.
Обяснение
Функцията LOOKUP приема, че данните са сортирани и винаги прави приблизително съвпадение. Ако справочната стойност е по-голяма от всички стойности в справочния масив, поведението по подразбиране е да "се върне" към предишната стойност. Тази формула използва това поведение, като създава масив, който съдържа само 1s и грешки, след което умишлено търси стойността 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.