
Công thức chung
=INDEX(CHOOSE(number,array1,array2),MATCH(value,range,0))
Tóm lược
Để thiết lập công thức INDEX và MATCH trong đó mảng được cung cấp cho INDEX là biến, bạn có thể sử dụng hàm CHOOSE. Trong ví dụ được hiển thị, công thức trong I5, được sao chép xuống, là:
=INDEX(CHOOSE(H5,Table1,Table2),MATCH(G5,Table1(Model),0),2)
Với Table1 và Table2 như được chỉ ra trong ảnh chụp màn hình.
Giải trình
Về cốt lõi, đây là một hàm INDEX và MATCH thông thường:
=INDEX(array,MATCH(value,range,0))
Trong đó hàm MATCH được sử dụng để tìm hàng chính xác để trả về từ mảng và hàm INDEX trả về giá trị tại mảng đó.
Tuy nhiên, trong trường hợp này, chúng tôi muốn tạo biến mảng để phạm vi được cung cấp cho INDEX có thể được thay đổi nhanh chóng. Chúng tôi làm điều này với chức năng CHOOSE:
CHOOSE(H5,Table1,Table2)
Hàm CHOOSE trả về một giá trị từ danh sách sử dụng một vị trí hoặc chỉ mục nhất định. Giá trị có thể là một hằng số, một tham chiếu ô, một mảng hoặc một phạm vi. Trong ví dụ, chỉ mục số được cung cấp trong cột H. Khi số chỉ mục là 1, chúng ta sử dụng Table1. Khi chỉ mục là 2, chúng tôi cung cấp Table2 thành INDEX:
CHOOSE(1,Table1,Table2) // returns Table1 CHOOSE(2,Table1,Table2) // returns Table2
Lưu ý: phạm vi được cung cấp cho CHỌN không cần phải là bảng hoặc phạm vi được đặt tên.
Trong I5, số trong cột H là 1, do đó CHOOSE trả về Bảng1 và công thức giải quyết thành:
=INDEX(Table1,MATCH("A",Table1(Model),0),2)
Hàm MATCH trả về vị trí của "A" trong Table1, là 1 và INDEX trả về giá trị tại hàng 1, cột 2 của Table1, là $ 20,00
=INDEX(Table1,1,2) // returns $20.00