Truy xuất giá trị cuối cùng trong một cột (Microsoft Excel)
Bạn có thể tự hỏi liệu có cách nào để trả về giá trị cuối cùng (không phải lớn nhất) trong một cột hay không. Ví dụ: nếu có các giá trị từ A1 đến A5, thì bạn có thể muốn trả về giá trị trong A5. Sau đó, nếu các giá trị được thêm vào từ A6 đến A8, thì giá trị trong A8 sẽ được trả về.
Có một số cách để tiếp cận một giải pháp. Đầu tiên là sử dụng một công thức như sau:
=INDEX(A:A,COUNT(A:A))
Công thức này trả về giá trị số cuối cùng trong một cột, với điều kiện là các giá trị bắt đầu tại (trong trường hợp này) A1. Cách tiếp cận này chỉ hoạt động nếu tất cả các giá trị trong cột là số. Nếu các giá trị không phải là số hoặc nếu có các ô trống xen kẽ với các giá trị, thì một cách tiếp cận khác là cần thiết. Một cách là sao chép công thức sau vào cột B, ngay bên phải của các ô có thể chứa giá trị:
=IF(ISNUMBER(A2),IF(A2<>0,ROW(A2),""),"")
Trong trường hợp này, công thức trả về số hàng của bất kỳ ô nào trong A chứa giá trị số lớn hơn 0. Sau đó, công thức sau có thể được sử dụng để truy xuất giá trị cuối cùng trong cột A:
=INDEX(A:A,MAX(B:B))
Công thức này hoạt động vì nó trả về số hàng lớn nhất từ cột B và sau đó sử dụng số đó làm chỉ mục để trả về giá trị tương ứng từ cột A.
Nếu bạn không muốn sử dụng cột trợ giúp (như được thực hiện ở đây trong cột B), bạn có thể sử dụng công thức sau nếu có sự kết hợp của các giá trị số và không phải số trong cột A:
=LOOKUP(2,1/(1-ISBLANK(A:A)),A:A)
Công thức này có thể cần một chút giải thích. Phần ISBLANK (A: A) trả về một mảng liệt kê giá trị FALSE trong mỗi ô tương ứng với một ô trong cột A chứa một giá trị và một giá trị TRUE trong mỗi ô tương ứng với một ô trong cột A trống. Các giá trị TRUE / FALSE này sau đó được trừ đi 1 để nó thay đổi thành giá trị 0/1 thay vì giá trị TRUE / FALSE.
Mảng này sau đó được “đảo ngược” bằng cách chia 1 cho các giá trị 0/1, dẫn đến một mảng chứa 1 ở bất kỳ nơi nào có giá trị trong cột A và # DIV / 0! lỗi khi cột A có ô trống. Cuối cùng, hàm LOOKUP tìm kiếm giá trị 2 trong mảng. Nó sẽ không tìm thấy nó (chỉ có 1s và lỗi trong mảng), vì vậy nó trả về “1” cuối cùng trong danh sách và do đó tìm nạp giá trị không trống cuối cùng từ cột.
Như bạn có thể nói, việc trả về giá trị cuối cùng trong một cột đôi khi có thể hơi phức tạp. Một cách tiếp cận rõ ràng là chỉ cần phát triển hàm VBA của riêng bạn để trả về giá trị mong muốn. Trong trường hợp này, bạn có thể lập trình hàm để trả về bất kỳ giá trị nào — không chỉ giá trị số.
ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.
Mẹo này (9008) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện menu cũ hơn của Excel tại đây: