Menu

Mẹo nhỏ xử lý mảng dữ liệu động với INDIRECT và OFFSET

Lò Tài Cúc 04/04/2026 01:16 553 lượt xem 3 trả lời

Chào các bạn, hôm nay mình muốn chia sẻ một mẹo nhỏ mà mình hay dùng để xử lý các mảng dữ liệu có thể thay đổi kích thước trong Excel, đặc biệt là khi kết hợp với các hàm khác.

Đôi khi chúng ta cần tham chiếu đến một vùng dữ liệu mà số hàng hoặc số cột có thể thay đổi tùy thuộc vào các yếu tố khác. Ví dụ, bạn có một danh sách sản phẩm và muốn tính tổng doanh thu cho 5 sản phẩm đầu tiên, nhưng con số '5' này lại được nhập ở một ô khác và có thể thay đổi.

Trong trường hợp này, sự kết hợp giữa INDIRECTOFFSET thực sự hữu ích.

Giả sử bạn có dữ liệu bán hàng từ ô A1 trở xuống. Bạn muốn tính tổng doanh thu của N sản phẩm đầu tiên, với N được nhập ở ô C1.

Công thức có thể trông như sau:

=SUM(OFFSET(A1, 0, 0, C1, 1))

Giải thích:

  • OFFSET(A1, 0, 0, C1, 1): Hàm này bắt đầu từ ô A1 (tham số đầu tiên và thứ hai là 0, 0 nghĩa là không dịch chuyển hàng/cột). Nó tạo ra một vùng tham chiếu có C1 hàng (số lượng sản phẩm) và 1 cột (cột doanh thu).
  • SUM(...): Hàm SUM sẽ tính tổng các giá trị trong vùng tham chiếu động được tạo ra bởi OFFSET.

Nếu bạn muốn làm cho nó mạnh mẽ hơn nữa bằng cách sử dụng tên vùng được định nghĩa (ví dụ: tên vùng là 'DanhSachSP' cho cột A), bạn có thể dùng INDIRECT:

=SUM(OFFSET(INDIRECT(
                
0

Chào bạn,

Cảm ơn bạn đã chia sẻ mẹo hay về INDIRECTOFFSET. Đúng là hai hàm này rất hữu ích khi làm việc với dữ liệu động. Mình cũng hay dùng OFFSET để xác định vùng dữ liệu thay đổi dựa vào một ô tham chiếu.

Bạn có thể chia sẻ thêm một ví dụ cụ thể về cách kết hợp INDIRECT với một hàm khác như SUM hoặc AVERAGE không? Mình tò mò muốn xem ứng dụng thực tế của nó.

Chúc bạn nhiều sức khỏe và tiếp tục chia sẻ những kiến thức Excel bổ ích!

3

Đúng là hai hàm này rất lợi hại khi làm việc với dữ liệu động! Mình cũng thường dùng INDIRECT để tạo các tham chiếu linh hoạt, ví dụ như xây dựng một báo cáo mà người dùng có thể chọn tên sheet để xem dữ liệu.

Về câu hỏi của bạn về việc tham chiếu đến tên sheet có thể thay đổi, hoàn toàn có thể dùng INDIRECT nhé. Bạn chỉ cần đảm bảo chuỗi tham chiếu mà INDIRECT nhận vào bao gồm cả tên sheet. Ví dụ, nếu tên sheet nằm ở ô A1 và tên vùng dữ liệu là "Data", bạn có thể dùng công thức như sau:

=INDIRECT("'" & A1 & "'!Data")

Hy vọng ví dụ này giúp bạn giải quyết vấn đề!

3

Hay quá bạn ơi! Mình cũng hay gặp tình huống cần xử lý dữ liệu động như vậy, nhất là khi làm báo cáo tự động. Việc dùng INDIRECT kết hợp với OFFSET giúp linh hoạt hơn nhiều so với việc cố định vùng tham chiếu.

Bạn có thể cho mình hỏi thêm là nếu mình muốn tham chiếu đến một vùng dữ liệu mà tên của sheet cũng có thể thay đổi thì dùng INDIRECT có được không? Mình đang bí chỗ này.

Cảm ơn chia sẻ của bạn nhé!

4

Bạn cần đăng nhập để trả lời chủ đề này.

Đăng nhập Đăng ký