Menu

Hàm INDEX trong Excel: lấy giá trị theo hàng và cột

=INDEX(A2:C6,3,2) trả về giá trị ở hàng thứ ba, cột thứ hai của A2:C6. Dùng hàm này để lấy mục thứ n của danh sách, cả một hàng hoặc một cột, và giá trị ở vị trí mà MATCH tìm được.

Mọi bảng tính trên trang này đều trực tiếp: đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

=INDEX(A2:C6,3,2) trả về giá trị ở hàng thứ ba, cột thứ hai của vùng A2:C6. Vị trí được đếm từ ô trên cùng bên trái của vùng, nên hàng 3 của A2:C6 là hàng 4 của trang tính. Đổi số 3 hoặc số 2 và xem kết quả thay đổi.

Hàng 3, cột 2 của bảng
G2
ABCDEFG
1ProductCategoryPriceRowColumnResult
2AppleFruit$1.2032Vegetable
3PearFruit$1.50
4CarrotVegetable$0.80
5BreadBakery$2.40
6MilkDairy$1.10
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

E2 chứa số thứ tự hàng và F2 chứa số thứ tự cột. Hàng 3 là Carrot và cột 2 là Category, nên G2 hiện Vegetable. Đặt F2 thành 1 để lấy tên sản phẩm, hoặc E2 thành 6 để thấy #REF!: A2:C6 chỉ có năm hàng.

Cú pháp hàm INDEX

=INDEX(array, row_num, [column_num])
  • array: vùng (hoặc mảng) cần đọc.
  • row_num: hàng thứ mấy trong vùng, bắt đầu từ 1. Dùng 0 để lấy mọi hàng.
  • column_num: cột thứ mấy, bắt đầu từ 1. Không bắt buộc khi vùng chỉ có một cột hoặc một hàng; dùng 0 để lấy mọi cột.

Với một cột, chỉ cần một số: =INDEX(A2:A6,4) là mục thứ tư, Bread. Dạng thứ hai, =INDEX((A2:C3,A5:C6),1,1,2), chọn từ một trong nhiều vùng; dạng này hiếm khi cần đến.

Lấy mục thứ n, hoặc mục cuối cùng

INDEX trên một cột trả lời câu hỏi "mục số n là gì". Kết hợp với COUNTA, hàm đếm các ô có dữ liệu, nó trả về mục cuối cùng của một danh sách đang dài thêm.

Mục thứ n và mục cuối cùng
D3
ABCD
1ProductItem number2
2AppleNth itemPear
3PearLast itemMilk
4Carrot
5Bread
6Milk
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

D1 là 2, nên D2 trả về Pear. COUNTA đếm được 5 sản phẩm, nên D3 trả về sản phẩm thứ năm, Milk. Xóa Milk và D3 trả về Bread. Trong tệp thật, hãy trỏ cả hai vào một vùng dài hơn như A2:A1000 để các hàng mới cũng được tính; COUNTA chỉ dùng được theo cách này khi cột không có ô trống xen giữa.

Trả về cả hàng hoặc cả cột với số 0

Số 0 ở vị trí số thứ tự hàng nghĩa là "mọi hàng", nên INDEX(B2:D5,0,2) là toàn bộ cột thứ hai. Đặt trong SUM, AVERAGE hoặc MAX, nó tính tổng một cột được chọn theo số.

Tổng của một tháng
G2
ABCDEFG
1RegionJanFebMarMonth numberTotal
2North4,2003,9004,800215,200
3South3,1003,6003,300
4East5,2004,7005,600
5West2,8003,0003,400
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

Tháng 2 là Feb, và G2 cộng C2:C5: 15.200. Đổi F2 thành 3 để lấy tháng Ba. Cả một hàng cũng làm tương tự: =SUM(INDEX(B2:D5,3,0)) tính tổng của East. Trong Excel 2021 và Microsoft 365, riêng =INDEX(B2:D5,0,2) sẽ trả tràn bốn giá trị xuống trang tính. Để chọn cột theo tiêu đề thay vì theo số, hãy thay F2 bằng một MATCH, đó chính là cách dùng INDEX và MATCH.

INDEX trên mảng hoặc kết quả trả tràn

INDEX còn đọc được mảng do công thức trả về, không chỉ các vùng trên trang tính. Nhờ đó bạn lấy được một mục trong danh sách đã sắp xếp, đã lọc hoặc đã loại trùng mà không cần ghi danh sách đó ra trước.

Sản phẩm đắt nhất và rẻ nhất
E2
ABCDEF
1ProductCategoryPriceMost expensiveBread
2AppleFruit$1.20SecondPear
3PearFruit$1.50CheapestCarrot
4CarrotVegetable$0.80
5BreadBakery$2.40
6MilkDairy$1.10
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

SORTBY trả về năm sản phẩm sắp xếp theo giá, và INDEX lấy mục 1 (Bread), mục 2 (Pear) hoặc, từ danh sách sắp xếp tăng dần, mục 1 (Carrot). Đổi giá của Milk thành 3 và nó thành sản phẩm đắt nhất. Nếu trên trang tính đã có sẵn một danh sách trả tràn, giả sử ở H2, thì trong Excel 2021 và Microsoft 365 bạn có thể viết =INDEX(H2#,2) để lấy mục thứ hai của nó.

Luyện tập: tính tổng của tháng được chọn

Doanh số theo tháng
G2
ABCDEFG
1RegionJanFebMarMonth numberTotal
2North4,2003,9004,8001
3South3,1003,6003,300
4East5,2004,7005,600
5West2,8003,0003,400
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

Đến lượt bạn: Trong G2, trả về tổng của tháng có số thứ tự ở F2 (1 = Jan, 2 = Feb, 3 = Mar), bằng INDEX.

Câu hỏi thường gặp

Hàm INDEX trong Excel dùng để làm gì?

Hàm này trả về giá trị ở một vị trí cho trước trong một vùng: =INDEX(A2:C6,3,2) trả về giá trị ở hàng thứ ba, cột thứ hai của A2:C6. Vị trí được đếm từ ô trên cùng bên trái của vùng, không phải từ hàng 1 của trang tính.

Làm sao lấy giá trị cuối cùng của một cột bằng INDEX?

Dùng số ô có dữ liệu làm số thứ tự hàng: =INDEX(B2:B100,COUNTA(B2:B100)) trả về giá trị cuối của một cột không có ô trống xen giữa. Nếu có ô trống xen giữa, =LOOKUP(2,1/(B2:B100<>""),B2:B100) trả về giá trị không trống cuối cùng.

Vì sao INDEX trả về #REF!?

Số thứ tự hàng hoặc cột lớn hơn kích thước vùng. =INDEX(A2:A6,7) lấy mục thứ bảy của một vùng chỉ có năm ô nên trả về #REF!.

Làm sao trả về cả một cột bằng INDEX?

Dùng 0 làm số thứ tự hàng: =INDEX(B2:D5,0,2) trả về toàn bộ cột thứ hai. Bọc nó trong một hàm để tính tổng, như =SUM(INDEX(B2:D5,0,2)), hoặc để nó trả tràn trong Excel 2021 và Microsoft 365.

Hình minh họa các ngôn ngữ lập trình của Coddy

Học lập trình cùng Coddy

Bắt đầu