Nhận kết quả thứ n với INDEX / MATCH
Công thức chung
{ = INDEX ( mảng , NHỎ ( NẾU ( vals = val , ROW ( vals ) – ROW ( INDEX ( vals , 1 , 1 )) 1 ), nth )) }
Mời bạn xem thêm:
>> bảng chấm công excel 2018
>> biên bản đối chiếu công nợ excel
>> mẫu đơn xin cấp lại thẻ bhyt mới nhất
Giải trình
Để có được kết quả thứ n bằng cách sử dụng INDEX và MATCH, bạn có thể sử dụng công thức mảng sử dụng các hàm IF và SMALL để tìm ra số hàng của trận đấu.
Trong ví dụ được hiển thị, công thức trong I7 là:
{ = INDEX ( amts , SMALL ( IF ( id = id , ROW ( id ) – ROW ( INDEX ( id , 1 , 1 )) 1 ), H6 )) }
Lưu ý rằng đây là công thức mảng và phải được nhập bằng Control Shift Enter.
Cách thức hoạt động của công thức này
Tại lõi, công thức này chỉ đơn giản là một công thức INDEX lấy một giá trị trong một mảng tại một vị trí nhất định. Nth được cung cấp dưới dạng giá trị trong cột H và tất cả công việc “nặng” mà công thức thực hiện là tìm ra hàng mà từ đó để truy xuất một giá trị, trong đó hàng tương ứng với kết hợp “thứ n”.
Hàm IF thực hiện công việc tìm ra các hàng có chứa một kết quả phù hợp, và hàm SMALL trả về giá trị thứ n từ danh sách đó.
Vì vậy, bên trong của IF, phép thử logic là ids = id, trong ví dụ của chúng ta tạo ra mảng này:
{TRUE; FALSE; FALSE; TRUE; FALSE; FALSE; FALSE}
Lưu ý rằng id khách hàng khớp với các vị trí thứ nhất và thứ 4, trả về TRUE.
Để có được danh sách các số hàng tương đối cho phạm vi chúng tôi đang làm việc với (id), chúng tôi sử dụng:
ROW ( id ) – ROW ( INDEX ( id , 1 , 1 )) 1
tạo ra mảng này:
{1; 2; 3; 4; 5; 6; 7}
được sử dụng làm “giá trị nếu đúng”. Khi IF kết thúc, đây là kết quả mảng:
{1; FALSE; FALSE; 4; FALSE; FALSE; FALSE}
Lưu ý chúng tôi có số hàng hợp lệ cho hàng 1 và hàng 2.
Mảng này sau đó được xử lý bởi SMALL, được cấu hình (sử dụng giá trị trong H6) để trả về giá trị nhỏ nhất thứ 2, trong trường hợp này, là số 4. (Hàm SMALL tự động bỏ qua các giá trị lô-gic TRUE và FALSE trong mảng .)
Vì vậy, cuối cùng, công thức giảm xuống
= INDEX ( amts , 4 )
Trả về giá trị trong hàng 4, từ phạm vi được đặt tên “amts”, là 125 đô la