Menu

Tự động hóa việc điền dữ liệu theo chu kỳ trong Google Sheets

Tống Trực Thêu 05/06/2026 13:11 408 lượt xem 3 trả lời

Chào mọi người,

Dạo này mình đang làm một cái báo cáo cần cập nhật dữ liệu theo chu kỳ (ví dụ: hàng ngày, hàng tuần, hàng tháng). Thay vì cứ mỗi lần đến kỳ lại ngồi copy-paste hoặc nhập thủ công, mình muốn tìm cách tự động hóa nó trên Google Sheets.

Cụ thể, mình muốn dữ liệu ở một cột sẽ tự động điền vào cột khác khi đến ngày hoặc tuần đó. Ví dụ:

  • Nếu hôm nay là ngày 15 hàng tháng, ô ở cột 'Cập nhật hàng tháng' sẽ tự điền giá trị từ cột 'Nguồn dữ liệu A'.
  • Nếu hôm nay là thứ Hai của tuần này, ô ở cột 'Cập nhật hàng tuần' sẽ tự điền giá trị từ cột 'Nguồn dữ liệu B'.

Mình đã thử tìm hiểu về các hàm như TODAY(), WEEKNUM(), MONTH() kết hợp với IF, nhưng để xử lý nhiều chu kỳ khác nhau và tự động điền vào đúng ô thì hơi phức tạp.

Có cao nhân nào có kinh nghiệm hoặc công thức hay để xử lý trường hợp này không ạ? Hoặc có cách nào dùng Apps Script đơn giản không?

Cảm ơn mọi người đã đọc bài!

5

Chào bạn,

Vấn đề tự động hóa điền dữ liệu theo chu kỳ này khá hay đó. Bạn có thể thử dùng kết hợp hàm IF, TODAY()WEEKDAY() hoặc ISOWEEKNUM() để kiểm tra ngày/tuần hiện tại rồi lấy dữ liệu từ cột nguồn.

Ví dụ đơn giản cho việc cập nhật hàng tháng: giả sử ngày bạn muốn cập nhật là ngày 15 hàng tháng, dữ liệu nguồn ở cột A, và bạn muốn điền vào cột B. Bạn có thể dùng công thức:

=IF(DAY(TODAY())=15, A1, "")

Còn với cập nhật hàng tuần, bạn cần xác định rõ ngày nào trong tuần muốn cập nhật (ví dụ: thứ Hai). Bạn có thể dùng WEEKDAY(TODAY(), 2) (số 2 để thứ Hai là 1, Chủ Nhật là 7).

Bạn đã thử cách này chưa, hay có ràng buộc nào khác phức tạp hơn không?

0

Hay quá bạn ơi, đúng là làm thủ công mấy vụ này tốn thời gian thật. Mình cũng hay dùng IF kết hợp với TODAY() để kiểm tra ngày.

Nhưng mà để tự động điền dữ liệu từ một cột khác vào, ngoài IF bạn có thể thử dùng INDIRECT hoặc OFFSET xem sao. Nó có thể linh hoạt hơn nếu bạn muốn tham chiếu đến nhiều ô khác nhau tùy theo ngày.

Bạn có thể chia sẻ rõ hơn về cách bạn muốn lấy dữ liệu từ cột nguồn không? Ví dụ, có phải luôn là ô đầu tiên, hay nó cũng thay đổi theo ngày?

2

Cái vụ tự động hóa này đúng là cứu cánh cho dân văn phòng ghê! Mình cũng hay gặp trường hợp tương tự.

Ngoài cách dùng IF với TODAY(), bạn có thể xem xét dùng QUERY. Nếu dữ liệu nguồn của bạn có cột ngày tháng, QUERY có thể lọc ra đúng ngày bạn cần một cách rất gọn gàng.

Ví dụ, nếu bạn muốn lấy dữ liệu từ cột A khi ngày ở cột B trùng với ngày hôm nay: ``html =QUERY(A:B, "SELECT A WHERE B = DATE '" & TEXT(TODAY(), "yyyy-MM-dd") & "'", 0) `` Cách này có vẻ hơi khác nhưng có thể hữu ích nếu bạn xử lý nhiều điều kiện. Bạn thấy sao về cách này?

0

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

Đăng nhập Đăng ký