Công thức Excel: Tìm chuỗi dài nhất với tiêu chí -

Công thức chung

(=INDEX(rng1,MATCH(MAX(LEN(rng1)*(rng2=criteria)),LEN(rng1)*(rng2=criteria),0)))

Tóm lược

Để tìm chuỗi dài nhất trong một phạm vi có tiêu chí, bạn có thể sử dụng công thức mảng dựa trên INDEX, MATCH, LEN và MAX. Trong ví dụ được hiển thị, công thức trong F6 là:

(=INDEX(names,MATCH(MAX(LEN(names)*(class=F5)),LEN(names)*(class=F5),0)))

Trong đó "tên" là dải ô được đặt tên C5: C14 và "lớp" là dải ô được đặt tên B5: B14.

Lưu ý: đây là công thức mảng và phải được nhập bằng control + shift + enter.

Giải trình

Cốt lõi của công thức này là hàm MATCH, hàm này định vị vị trí của chuỗi dài nhất bằng cách sử dụng tiêu chí được cung cấp:

MATCH(MAX(LEN(names)*(class=F5)),LEN(names)*(class=F5),0)

Lưu ý MATCH được thiết lập để thực hiện đối sánh chính xác bằng cách cung cấp số 0 cho loại đối sánh. Đối với giá trị tra cứu, chúng tôi có:

LEN(names)*(class=F5)

Hàm LEN trả về một mảng kết quả (độ dài), một kết quả cho mỗi tên trong danh sách mà class = "A" từ ô F5:

(5;6;8;6;6;0;0;0;0;0)

Điều này có hiệu quả lọc ra tất cả Lớp B và sau đó hàm MAX trả về giá trị lớn nhất, 8.

Để xây dựng một mảng tra cứu, chúng tôi sử dụng cùng một cách tiếp cận:

LEN(names)*(class=F5)

Và nhận được kết quả tương tự:

(5;6;8;6;6;0;0;0;0;0)

Sau khi LEN và MAX chạy, chúng ta có công thức MATCH với các giá trị sau:

MATCH(8,(5;6;8;6;6;0;0;0;0;0),0))

MATCH sau đó trả về vị trí 8 trong danh sách, 3, được đưa vào INDEX như sau:

=INDEX(names,3)

Cuối cùng, INDEX trả về giá trị ở vị trí thứ 3 của tên , đó là "Jonathan".

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