Menu

App script quản lý rủi ro cho cá nhân & doanh nghiệp với báo cáo chuẩn định dạng biểu đồ

Mẹo hay: Sử dụng hàm OFFSET để tạo báo cáo động cực kỳ linh hoạt

Dai Dũng An 01/04/2026 22:33 506 lượt xem 3 trả lời

Chào các anh chị em trong diễn đàn!

Hôm nay mình muốn chia sẻ một mẹo nhỏ nhưng cực kỳ hữu ích mà mình thường xuyên dùng để làm báo cáo động, đó là sử dụng hàm OFFSET kết hợp với các hàm khác như MATCH hoặc COUNTA.

Trước đây, mỗi lần muốn mở rộng phạm vi dữ liệu cho biểu đồ hoặc bảng tổng hợp, mình lại phải vào chỉnh sửa thủ công. Rất mất thời gian và dễ sai sót, đặc biệt với các file dữ liệu lớn.

Với OFFSET, mọi thứ trở nên đơn giản hơn rất nhiều. Hàm này cho phép bạn trả về một vùng dữ liệu dựa trên một ô bắt đầu, số hàng và số cột dịch chuyển, cùng với chiều cao và chiều rộng của vùng dữ liệu mong muốn.

Ví dụ, nếu bạn muốn tính tổng doanh thu của tháng gần nhất mà không cần biết chính xác tháng đó là tháng mấy trong năm, bạn có thể dùng:

=SUM(OFFSET( ô_ô_đầu_doanh_thu, 0, COUNTA(cột_chứa_tháng)-1, 1, 1))

Trong đó:

  • ô_ô_đầu_doanh_thu: Ô đầu tiên chứa dữ liệu doanh thu.
  • cột_chứa_tháng: Cột chứa tên các tháng hoặc số thứ tự tháng.
  • COUNTA(cột_chứa_tháng)-1: Xác định số cột dịch chuyển để đến tháng gần nhất.
  • 1, 1: Chiều cao và chiều rộng của vùng dữ liệu (ở đây là 1 ô cho doanh thu tháng đó).

Kết hợp OFFSET với MATCH còn giúp bạn tạo các báo cáo cực kỳ linh hoạt, ví dụ như tìm kiếm dữ liệu theo tên sản phẩm hoặc theo khoảng thời gian mà không cần chỉnh sửa công thức mỗi khi có dữ liệu mới.

Các bạn đã từng dùng OFFSET chưa? Có cách ứng dụng nào hay hơn thì chia sẻ cho mình với nhé!

3

Cảm ơn bạn đã chia sẻ mẹo hay về hàm OFFSET! Mình cũng hay dùng cách này, đặc biệt là khi kết hợp với COUNTA để tự động cập nhật phạm vi cho biểu đồ.

Tuy nhiên, mình có một chút băn khoăn. Với những file dữ liệu cực lớn (hàng trăm nghìn dòng), việc dùng OFFSET có thể làm chậm file đôi chút do nó là hàm tính toán lại (volatile function). Bạn đã bao giờ gặp vấn đề này chưa? Có cách nào tối ưu hơn để xử lý dữ liệu lớn với OFFSET không, hay bạn thường dùng các phương pháp khác trong trường hợp đó?

3

Tuyệt vời, cảm ơn bạn đã chia sẻ kinh nghiệm về OFFSET!

Mình cũng từng gặp tình trạng file chậm khi dùng hàm này trên dữ liệu lớn. Đúng là OFFSET là hàm tính toán lại (volatile), nên nó sẽ tính toán lại mỗi khi có thay đổi nào đó trên bảng tính, dù không liên quan trực tiếp đến nó.

Với những file "khủng", mình thường thử các phương pháp sau để khắc phục:

Dùng INDEX thay vì OFFSET: Kết hợp INDEX và MATCH hoặc INDEX và SMALL/LARGE thường cho hiệu suất tốt hơn trên dữ liệu lớn, vì nó không phải là hàm volatile. Sử dụng Power Query: Nếu dữ liệu quá lớn và cần xử lý phức tạp, Power Query là một giải pháp cực kỳ mạnh mẽ và hiệu quả. Nó giúp "làm sạch" và "biến đổi" dữ liệu trước khi nạp vào Excel, giúp file chạy mượt mà hơn rất nhiều. * Tắt tính toán tự động: Tạm thời tắt tính toán tự động (Manual Calculation) khi làm việc với file lớn, chỉ bật lại khi cần thiết.

Bạn đã thử qua cách nào trong số này chưa? Hay có "chiêu" nào khác để "thuần hóa" OFFSET trên file nặng không? Chia sẻ thêm cho anh em học hỏi nhé!

3

Chào bạn,

Cảm ơn bạn đã chia sẻ rất hay về cách dùng OFFSET để làm báo cáo động. Mình cũng thấy cách này tiện lợi thật, nhất là khi dữ liệu có phát sinh thêm.

Cho mình hỏi thêm chút, bạn thường kết hợp OFFSET với MATCH theo cách nào để xác định số hàng và số cột cần lấy vậy? Mình hay dùng COUNTA để đếm số dòng, nhưng đôi khi với dữ liệu có khoảng trắng hoặc giá trị 0 thì nó lại không chính xác lắm. Liệu có cách nào để MATCH giúp xác định chính xác phạm vi dữ liệu hơn không?

Mong bạn chia sẻ thêm kinh nghiệm nhé!

5

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

Đăng nhập Đăng ký