Có cách nào để hiểu về tìm kiếm xấp xỉ trong Excel – thủ thuật chia sẻ một cách để tối ưu hóa tốc độ

khi sử dụng Excel, ta đã quá thân thuộc có các hàm tìm kiếm như VLOOKUP, HLOOKUP, INDEX/MATCH. Mới hơn nữa ta mang XLOOKUP, XMATCH. Lâu đời hơn cả là LOOKUP. Các bạn có để ý rằng trong các hàm này đều có 1 thông số tùy chọn giữa "Exact" – tìm chuẩn xác và "Approximate" – mua xấp xỉ không? Trong bài viết này, Học Excel Online sẽ nói về kiếm tìm xấp xỉ. Hiểu được phương pháp Excel thực hành việc kiếm tìm này, Anh chị em sẽ biết thêm cách thức để tối ưu hóa tốc độ file.

Chúng ta sẽ đến có một hàm rất quen thuộc: MATCH.

=MATCH(lookup_value,lookup_array,[match_type])

MATCH sẽ trả về vị trí của một giá trị trong 1 mảng. Chẳng hạn ta với mảng:

["a","c","b","z","e","f","g"]

Ở đây, lúc nhập hàm MATCH để tìm kiếm "b", ta sẽ viết:

=MATCH("b",mảng_trên,0)

Kết quả trả về là hai, vì phần tử "b" ở vị trí thứ hai trong khoảng trái sang.

tại sao match_type bắt buộc lại là 0? Bởi vì theo như tài liệu của Microsoft cũng như theo "kinh nghiệm dân gian", giả dụ bỏ không hoặc điền 1/-1 thì kết quả trả về sẽ sai hoặc lỗi.

Giờ hãy đến sở hữu tỉ dụ tiếp theo.

một tỉ dụ khác, ta mang mảng:

[5,10,15,20,25,30]

lúc thực hiện tìm kiếm số 15 với MATCH, ta hoàn toàn sở hữu thể viết:

=MATCH(15,mảng_trên,0) hoặc =MATCH(15,mảng_trên) hoặc =MATCH(15,mảng_trên,1)

Cả 3 công thức trên đều trả về kết quả 3, chính là vị trí của số 15 trong mảng. Vậy vì sao trong trường hợp này lại với thể dùng match_type = 1?

Chúng ta đã biết rằng nếu như để mặc định thì match_type sẽ được ngầm hiểu là 1, và theo như tài liệu của Microsoft, ví như tiến hành kiếm tìm "xấp xỉ" sở hữu tham số một, mảng cần phải được sắp đặt theo thứ tự.

Quả vậy, giả dụ mảng của ta đổi thành [10,5,30,25,20,15] hoặc sắp đặt theo một thứ tự khác, thì tìm kiếm xấp xỉ sẽ bị sai.

Nhưng đã bao giờ bạn tự hỏi tại sao chưa?

Hãy đọc tiếp nhé.

tại sao lúc tìm kiếm xấp xỉ, ta cần phải xếp đặt dữ liệu từ nhỏ đến lớn hoặc từ lớn tới nhỏ?

Mình đã đi hỏi các người "trong ngành" và biết được 1 điều rằng, việc chọn match_type (cũng như lookup_type) giống như trigger 1 loại công tắc về chọn lựa thuật toán kiếm tìm.

mang type = 0, Excel sẽ dùng Linear Search.

với type = 1, Excel sẽ sử dụng Binary Search.

sở hữu những hàm như MATCH, XLOOKUP, XMATCH, ta sở hữu thêm tùy chọn -1, cũng vẫn là Binary Search với mảng được xếp trái lại.

Các bạn với thể google 2 từ khóa trên để hiểu.

Và chính vì Binary Search chỉ hoạt động đúng khi mảng được bố trí trong khoảng nhỏ tới lớn, nên trong các tài liệu của Excel luôn đề nghị ta phải sắp đặt tương tự để kết quả ko sai.

Bạn đã thành công thì có thể ko cần đọc tiếp ở đây. Chúc Cả nhà thành công

Nhưng vì sao không đào sâu thêm nữa nhỉ? Cả nhà mang hứng thú đọc tiếp chứ?

Phần dưới đây là một "nhận định" – assumption của mình. Gọi là Đánh giá vì Microsoft ko chia sẻ tài sản có trí tuệ – intellectual property (cách các kĩ sư đã viết nên những hàm).

Share on Google Plus
    Blogger Comment
    Facebook Comment

0 nhận xét:

Đăng nhận xét