Michael có một trang tính có tên tháng (tháng 1, tháng 2, v.v.)

trong cột A. Trong cột B, anh ta muốn lấy một giá trị từ ô B11 của bất kỳ trang tính nào được chỉ định trong cột A. Do đó, nếu cột A chứa tháng “Tháng Ba”, trong ô ngay bên phải của Tháng Ba (trong cột B )

anh ấy muốn kéo giá trị vào tháng 3! B11. Michael tin rằng hàm INDIRECT sẽ giúp được việc này, nhưng anh ấy không thể làm cho nó hoạt động được.

Tin tốt là Michael đã đúng — bạn có thể sử dụng hàm INDIRECT để thực hiện việc này. Cách sử dụng cơ bản của hàm trông như thế này:

=INDIRECT(A1&"!B11")

Bạn có thể xây dựng một phiên bản “mạnh mẽ” hơn của công thức bằng cách đặt nó trong một hàm kiểm tra lỗi. Nếu có lỗi thì cụm từ “No Data” sẽ hiển thị trong ô:

=IFERROR(INDIRECT(A1&"!B11"),"No Data")

Các cách tiếp cận này sử dụng trực tiếp bất cứ thứ gì có trong ô A1, hoạt động với điều kiện giá trị trong ô A1 là văn bản và một từ duy nhất. Nếu có thể có từ thứ hai trong A1 (chẳng hạn như “Sản xuất tháng 7”), thì bạn cần sửa đổi công thức một chút để nó bao gồm dấu nháy đơn xung quanh bất cứ thứ gì có trong ô A11:

=IFERROR(INDIRECT("'"&A1&"'!B11"),"No Data")

Vì dấu nháy đơn được sử dụng để bao gồm tên trang tính, bạn không thể có bất kỳ văn bản nào trong ô A1 bao gồm dấu nháy đơn. Vì vậy, “Sản xuất tháng 7” trong ô A1 sẽ hoạt động tốt (miễn là bạn có trang tính có tên “Sản xuất tháng 7”), nhưng “Sản xuất tháng 7” sẽ không hoạt động do dấu nháy đơn.

Hơn nữa, nếu bất kỳ thứ gì trong ô A1 có thể có khoảng trắng ở đầu hoặc cuối, thì bạn sẽ cần loại bỏ những khoảng trắng đó. Cách dễ nhất để bù đắp là sử dụng hàm TRIM:

=IFERROR(INDIRECT("'"&TRIM(A1)&"'!B11"),"No Data")

Tất cả các biến thể được trình bày cho đến nay đều hoạt động tốt nếu giá trị trong A1 là một chuỗi thực tế. Chúng sẽ không hoạt động nếu giá trị trong A1 là ngày thực tế, được định dạng giống như tên tháng. Ngày được lưu trữ nội bộ dưới dạng số và việc sử dụng một trong các công thức đã thảo luận cho đến nay sẽ cố gắng thêm số sê-ri ngày vào tham chiếu ô, điều này tạo ra lỗi. Thay vào đó, bạn cần sử dụng hàm TEXT để chuyển ngày trong A1 thành tên tháng:

=IFERROR(INDIRECT(TEXT(A1,"mmmm")&"!B11"),"No Data")

Nếu bạn đang mong đợi người khác nhập tên tháng vào ô A1, thì bạn nên làm cho mục nhập đó càng dễ bị đánh lừa càng tốt. Cách tốt nhất để làm điều đó là sử dụng xác thực dữ liệu để giới hạn những gì có thể được nhập vào ô A1. (Cách bạn sử dụng xác thực dữ liệu đã được đề cập trong các vấn đề khác của ExcelTips.)

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

Mẹo này (12701) áp dụng cho Microsoft Excel 2007, 2010, 2013, 2016, 2019 và Excel trong Office 365.