Формула на Excel: Търсене на последната цена -

Обща формула

=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.

Интересни статии...