Vzorec programu Excel: Vyhľadať najnovšiu cenu -

Všeobecný vzorec

=LOOKUP(2,1/(item="hat"),price)

Zhrnutie

Ak chcete vyhľadať najnovšiu cenu produktu v zozname zoradenom podľa najnovších položiek, ktoré sa zobrazia ako posledné, môžete použiť vzorec založený na funkcii VYHĽADÁVANIE. V ukážke je vzorec v G7:

=LOOKUP(2,1/(item=F7),price)

kde položka je pomenovaný rozsah B5: B12, cena je pomenovaný rozsah D5: D12 a údaje sú zoradené vzostupne podľa dátumu.

Vysvetlenie

Funkcia LOOKUP predpokladá, že dáta sú zoradené, a vždy robí približnú zhodu. Ak je vyhľadávacia hodnota väčšia ako všetky hodnoty v vyhľadávacom poli, predvolené správanie je „vrátiť sa“ k predchádzajúcej hodnote. Tento vzorec využíva toto správanie na vytvorenie poľa, ktoré obsahuje iba 1 s a chyby, a potom zámerne hľadá hodnotu 2, ktorá sa nikdy nenájde.

Najskôr sa vyhodnotí tento výraz:

item=F7

Keď F7 obsahuje „sandále“, výsledkom je pole TRUE a FALSE hodnôt, ako je táto:

(FALSE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE)

Toto pole je poskytované ako deliteľ 1:

1/(FALSE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE)

Matematická operácia automaticky vynúti hodnoty TRUE a FALSE na 1 s a 0 s, takže výsledkom je ďalšie pole, ako je tento:

(#DIV/0!;1;#DIV/0!;1;#DIV/0!;#DIV/0!;1;#DIV/0!)

sa vrátil priamo k funkcii LOOKUP ako argument vyhľadávacieho vektora.

Všimnite si, že pole obsahuje iba dve jedinečné hodnoty: chyba delenia nulou (# DIV / 0!) A číslo 1.

LOOKUP hľadá v poli hodnotu 2 a ignoruje chybové hodnoty. Ak nenájde 2, spadne späť na poslednú 1, na pozíciu 7 vo vyhľadávacom vektore. LOOKUP potom vráti 7. položku vo vektore výsledkov (pomenovaný rozsah „cena“), hodnotu 15.

Ak si chcete prečítať viac o koncepcii zámerného hľadania hodnoty, ktorá sa nikdy neobjaví, prečítajte si o BigNum.

Zaujímavé články...