
Formula umum
=LOOKUP(2,1/(item="hat"),price)
Ringkasan
Untuk mencari harga terbaru produk dalam daftar, diurutkan sehingga item terbaru muncul terakhir, Anda bisa menggunakan rumus berdasarkan fungsi LOOKUP. Pada contoh show, rumus di G7 adalah:
=LOOKUP(2,1/(item=F7),price)
di mana item adalah rentang bernama B5: B12, harga adalah rentang bernama D5: D12, dan data diurutkan naik menurut tanggal.
Penjelasan
Fungsi LOOKUP mengasumsikan data diurutkan, dan selalu melakukan perkiraan kecocokan. Jika nilai pencarian lebih besar dari semua nilai dalam array pencarian, perilaku default-nya adalah "kembali" ke nilai sebelumnya. Rumus ini mengeksploitasi perilaku ini dengan membuat larik yang hanya berisi 1 dan kesalahan, lalu dengan sengaja mencari nilai 2, yang tidak akan pernah ditemukan.
Pertama, ekspresi ini dievaluasi:
item=F7
Ketika F7 berisi "sandal", hasilnya adalah larik nilai TRUE dan FALSE seperti ini:
(FALSE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE)
Larik ini disediakan sebagai pembagi ke 1:
1/(FALSE;TRUE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE)
Operasi matematika secara otomatis memaksa nilai TRUE dan FALSE menjadi 1 dan 0, jadi hasilnya adalah array lain seperti ini:
(#DIV/0!;1;#DIV/0!;1;#DIV/0!;#DIV/0!;1;#DIV/0!)
dikembalikan langsung ke fungsi LOOKUP sebagai argumen vektor pencarian.
Perhatikan bahwa array hanya berisi dua nilai unik: kesalahan bagi dengan nol (# DIV / 0!) Dan angka 1.
LOOKUP mencari array untuk nilai 2, mengabaikan nilai kesalahan. Tidak menemukan 2, itu jatuh kembali ke 1 terakhir, di posisi 7 dalam vektor pencarian. LOOKUP lalu mengembalikan item ke-7 dalam vektor hasil (kisaran bernama "harga"), nilai 15.
Untuk membaca selengkapnya tentang konsep sengaja mencari nilai yang tidak akan pernah muncul, baca tentang BigNum.