Patty đã hỏi về một tình huống phổ biến, trong đó cột B chứa khá nhiều dữ liệu và thông tin có thể được thêm vào các ô trong cột bất kỳ lúc nào. Trong một công thức ở ô C4, Patty muốn xem giá trị ở cuối các ô trong cột B có chứa giá trị. Do đó, nếu các ô B1: B27 chứa dữ liệu, thì trong ô C4 Patty muốn xem giá trị có trong ô B27. Nếu thêm ba phần dữ liệu nữa vào cột B, thì giá trị trong C4 phải chứa giá trị trong B30.

Giải pháp cho vấn đề này phụ thuộc vào việc bạn có thể đếm dữ liệu trong cột B có chứa các ô trống hay không. Nếu dữ liệu liền kề – nó không chứa bất kỳ ô trống nào – thì bạn có thể sử dụng công thức sau trong C4:

=INDIRECT("B"&COUNTA(B:B))

Điều này tạo một địa chỉ dựa trên ô cuối cùng trong cột, sau đó sử dụng hàm INDIRECT để trả về giá trị tại địa chỉ đó.

Nếu có thể có khoảng trống trong cột B, thì công thức sau sẽ hoạt động:

=INDIRECT("B"&MAX(ROW(1:1048576)*(B1:1048576<>"")))

Một lần nữa, hàm INDIRECT được sử dụng để tìm nạp giá trị thực, nhưng địa chỉ được sử dụng bởi INDIRECT được kết hợp khác nhau.

Một cách tiếp cận khác là sử dụng hàm VLOOKUP để trả về giá trị.

Nếu cột B bao gồm các giá trị số, thì công thức sau trong C4 sẽ hoạt động tốt:

=VLOOKUP(9.99999999999999E+307,B:B,1)

Nếu cột B chứa văn bản, thì tra cứu số sẽ không hoạt động, nhưng như sau sẽ:

=VLOOKUP(REPT("z",50),B:B,1)

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (11030) áp dụng cho Microsoft Excel 2007 và 2010. Bạn có thể tìm phiên bản của mẹo này cho giao diện menu cũ hơn của Excel tại đây: