Công thức Excel: Tra cứu giá mới nhất -

Công thức chung

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

Tóm lược

Để tra cứu giá mới nhất cho một sản phẩm trong danh sách, được sắp xếp để các mặt hàng mới nhất xuất hiện sau cùng, bạn có thể sử dụng công thức dựa trên hàm LOOKUP. Trong ví dụ hiển thị, công thức trong G7 là:

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

trong đó mục là phạm vi được đặt tên là B5: B12, giá là phạm vi được đặt tên là D5: D12 và dữ liệu được sắp xếp tăng dần theo ngày.

Giải trình

Hàm LOOKUP giả sử dữ liệu được sắp xếp và luôn thực hiện một kết quả khớp gần đúng. Nếu giá trị tra cứu lớn hơn tất cả các giá trị trong mảng tra cứu, hành vi mặc định là "quay trở lại" giá trị trước đó. Công thức này khai thác hành vi này bằng cách tạo một mảng chỉ chứa 1s và lỗi, sau đó cố tình tìm kiếm giá trị 2, giá trị này sẽ không bao giờ được tìm thấy.

Đầu tiên, biểu thức này được đánh giá:

item=F7

Khi F7 chứa "dép", kết quả là một mảng các giá trị TRUE và FALSE như sau:

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

Mảng này được cung cấp dưới dạng ước số cho 1:

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

Phép toán tự động ép các giá trị TRUE và FALSE thành 1s và 0s, vì vậy kết quả là một mảng khác như sau:

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

trả về trực tiếp cho hàm LOOKUP dưới dạng đối số vectơ tra cứu.

Lưu ý rằng mảng chỉ chứa hai giá trị duy nhất: lỗi chia cho 0 (# DIV / 0!) Và số 1.

LOOKUP tìm kiếm giá trị 2 trong mảng, bỏ qua các giá trị lỗi. Không tìm thấy 2, nó rơi trở lại 1 cuối cùng, ở vị trí 7 trong vector tra cứu. LOOKUP sau đó trả về mục thứ 7 trong vectơ kết quả (phạm vi được đặt tên là "giá"), giá trị 15.

Để đọc thêm về khái niệm cố ý tìm kiếm một giá trị sẽ không bao giờ xuất hiện, hãy đọc về BigNum.

thú vị bài viết...