Với VLOOKUP, chúng tôi luôn nhận được trận đấu đầu tiên. Điều tương tự cũng xảy ra với hàm INDEX MATCH. Vì vậy, làm thế nào để chúng ta VLOOKUP khớp thứ hai hoặc thứ ba hoặc thứ n?

Trong bài này, chúng ta sẽ tìm hiểu, làm thế nào để nhận được lần xuất hiện thứ N của một giá trị trong phạm vi.

0055

Công thức chung

{=SMALL(IF(range=value,ROW(range)-ROW(first_cell_in_range)+1),n)}

Lưu ý: đây là liên kết an : / excel-mảng-công thức-mảng-trong-excel-công thức [array công thức] . Bạn cần nhập nó bằng CTRL + SHIFT + ENTER . Phạm vi: phạm vi mà bạn muốn tra cứu vị trí thứ n của giá trị *.

Giá trị: giá trị mà bạn đang tìm vị trí thứ n trong phạm vi. First_cell_in_range: ô đầu tiên trong phạm vi. Nếu phạm vi là A2: A10 thì ô đầu tiên trong phạm vi là A2. *

n: số lượng giá trị xuất hiện.

Hãy xem một ví dụ để làm rõ mọi thứ.

===

Ví dụ: Tìm So khớp thứ hai trong Excel

Vì vậy, ở đây tôi có danh sách các tên này trong phạm vi excel A2: A10. Tôi đã đặt tên cho phạm vi này là tên. Bây giờ tôi muốn có được vị trí xuất hiện thứ hai của “Rony” trong tên.

0056

Trong hình trên, chúng ta có thể thấy nó ở vị trí thứ 7 trong phạm vi A2: A10 (tên). Bây giờ chúng ta cần lấy vị trí của nó bằng công thức excel.

Áp dụng công thức chung ở trên trong C2 để tra cứu sự xuất hiện thứ hai của Rony trong danh sách.

{=SMALL(IF(names=“Rony” ,ROW(names)-ROW(A2)+1),2)}

Nhập nó bằng CTRL + SHIFT + ENTER ..

0057

Và chúng tôi có câu trả lời. Nó đang hiển thị 7, đó là chính xác. Nếu bạn thay đổi giá trị của n thành 3, nó sẽ trả về 8. Nếu bạn thay đổi giá trị của n lớn hơn sự xuất hiện của giá trị trong phạm vi, nó sẽ trả về lỗi #NUM.

===

Nó hoạt động như thế nào?

Vâng, nó là khá dễ dàng. Hãy xem từng phần một.

:

Trong IF, names = “Rony” trả về một mảng TRUE và FALSE. TRUE bất cứ khi nào một ô trong phạm vi tên (A2: A10) khớp với “Rony”. \ {TRUE; FALSE; FALSE; FALSE; FALSE; FALSE; TRUE; TRUE; FALSE}.

ở đây hàm ROW trả về số hàng của mỗi ô trong tên.

\ {2; 3; 4; 5; 6; 7; 8; 9; 10}.

\ {0; 1; 2; 3; 4; 5; 6; 7; 8}.

\ {1; 2; 3; 4; 5; 6; 7; 8; 9}.

Bây giờ chúng ta có IF (\ {TRUE; FALSE; FALSE; FALSE; FALSE; FALSE; TRUE; TRUE; FALSE}, \ {1; 2; 3; 4; 5; 6; 7; 8; 9}).

Điều này giải quyết thành \ {1; FALSE; FALSE; FALSE; FALSE; FALSE; 7; 8; FALSE}.

Bây giờ SMALL trả về giá trị nhỏ thứ hai trong phạm vi, là 7.

Làm thế nào để chúng tôi sử dụng nó?

Câu hỏi đặt ra: lợi ích của việc nhận được chỉ số thô của trận đấu thứ n là gì? Sẽ hữu ích hơn nếu bạn có thể lấy thông tin liên quan từ giá trị thứ n. Chà, điều đó cũng có thể được thực hiện. Nếu chúng ta muốn lấy giá trị từ giá trị thứ n của ô liền kề trong tên dải ô (A2: A10).

{=INDEX(B2:B10, SMALL(IF(names=“Rony” ,ROW(names)-ROW(A2)+1),2))}

Vì vậy, các bạn, đây là cách bạn có thể có được trận đấu thứ n trong một phạm vi. Tôi hy vọng tôi đã giải thích đủ. Nếu bạn có bất kỳ nghi ngờ nào liên quan đến bài viết này hoặc bất kỳ chủ đề nào khác liên quan đến excel / VBA, hãy viết trong phần nhận xét bên dưới.

Bài viết liên quan:

Bài viết phổ biến: