AIDuLieu.comAI Dữ Liệu
Tự động hoá việc lặp lại

Nhật ký thay đổi cho bảng tính dùng chung: biết ai sửa gì, khi nào, và quay lại được

Cách ghi nhật ký thay đổi cho bảng tính dùng chung: lịch sử phiên bản, lịch sử sửa ô, trang nhật ký tay và tự động, nhật ký chạy của macro, Power Query, Apps Script.

Team of three in a Quang Ninh port logistics office gathered around one laptop with a blurred blank screen, one person pointing, mugs and paper folders on the table, seen from behind

Bảng tính dùng chung là nơi nhiều người cùng sửa: bảng tồn kho cả kho cùng cập nhật, bảng theo dõi đơn của nhóm bán hàng, bảng kế hoạch của cả phòng. Một ngày nào đó, con số tồn của một mã hàng đột nhiên sai lệch, công thức ở cột tổng bị ai đó gõ đè thành số cố định, hoặc nguyên một cột biến mất. Câu hỏi đầu tiên luôn là: ai sửa, sửa lúc nào, trước đó giá trị là gì. Nếu không trả lời được, cả nhóm mất buổi chiều để đoán.

Nhật ký thay đổi trả lời những câu hỏi đó. Nó có thể là chức năng sẵn có của Excel và Google Sheets, một trang ghi chép tay, hoặc một đoạn mã tự ghi. Với bảng tính có các bước tự động như Power Query, macro, Apps Script, nhật ký còn cho biết lần chạy nào thành công, lần nào lỗi. Bài này đi qua từng lớp và giúp bạn chọn mức vừa đủ cho nhóm mình.

Ba câu hỏi nhật ký phải trả lời được

Cái gì đã thay đổi. Không chỉ là "file đã được sửa" mà là ô nào, cột nào, trang nào, giá trị cũ và giá trị mới. Thay đổi cấu trúc như thêm cột, đổi tên cột, đổi công thức quan trọng hơn thay đổi một giá trị đơn lẻ, vì nó ảnh hưởng tới mọi truy vấn và macro đọc từ bảng.

Ai và khi nào. Tên người sửa và thời điểm. Trong bảng tính dùng chung trên đám mây, phần này thường có sẵn. Với file Excel gửi qua lại bằng email hay lưu trên ổ mạng không có lịch sử, bạn chỉ biết được nếu có người tự ghi.

Vì sao, và quay lại thế nào. Đây là phần không công cụ nào tự ghi được. Một thay đổi có lý do, như "đổi mã chi nhánh theo đơn vị hành chính mới" hay "sửa tồn sau kiểm kê", cần được ghi kèm để người sau không tưởng nhầm là lỗi rồi sửa ngược lại. Cách quay lại, như "bản trước nằm ở phiên bản ngày 15", giúp gỡ rối nhanh khi thay đổi gây sự cố.

Mức vừa đủ. Không phải bảng nào cũng cần cả ba. Bảng ghi chép cá nhân không cần nhật ký. Bảng dùng chung có số liệu ảnh hưởng tới tiền, hàng, lương thì cần ít nhất hai câu đầu, và cần câu thứ ba cho mọi thay đổi cấu trúc. Chọn mức theo hậu quả nếu số liệu sai, không theo độ phức tạp của bảng.

Chức năng có sẵn trong Excel và Google Sheets

Trước khi tự làm gì, hãy dùng hết những gì công cụ đã có. Tên chức năng có thể thay đổi theo phiên bản; kiểm lại trên bản bạn đang dùng.

Chức năngỞ đâuDùng để làm gìGiới hạn
Lịch sử phiên bản Google SheetsFile, Version historyXem và khôi phục bảng tính về một thời điểm, đặt tên cho phiên bản quan trọngTheo cả bảng, không giải thích lý do
Lịch sử sửa ô Google SheetsChuột phải vào ô, Show edit historyXem ai sửa ô đó, lúc nào, giá trị trướcTừng ô một; không ghi mọi loại thay đổi
Lịch sử phiên bản ExcelFile, Info, Version History với file lưu trên OneDrive hoặc SharePointMở và khôi phục bản cũCần lưu trên đám mây; file trên ổ máy không có
Show Changes trong ExcelThẻ Review với file dùng chung trên đám mâyXem danh sách thay đổi gần đây theo ô và người sửaTuỳ phiên bản và tài khoản; giữ trong một khoảng thời gian

Thói quen đáng giá nhất ở đây là đặt tên phiên bản. Trước một thay đổi lớn, như đổi cấu trúc bảng, nhập dữ liệu hàng loạt, chạy macro mới, hãy đặt tên phiên bản hiện tại kiểu "Trước khi đổi mã chi nhánh". Khi cần quay lại, bạn tìm theo tên thay vì dò từng mốc thời gian trong danh sách dài.

Trang nhật ký tay: đơn giản mà hiệu quả

Với những thay đổi quan trọng, đặc biệt thay đổi cấu trúc, một trang nhật ký ghi tay vẫn là cách rõ nhất vì nó ghi được lý do. Cách dựng:

  1. Tạo trang tên NhatKy ở cuối bảng tính, gồm các cột: Ngày, Người, Phạm vi (trang, cột hoặc vùng), Thay đổi, Lý do, Cách quay lại.
  2. Thống nhất trong nhóm: những loại thay đổi nào bắt buộc ghi. Gợi ý: thêm, xoá, đổi tên cột; sửa công thức; nhập hoặc xoá dữ liệu hàng loạt; đổi danh mục như mã hàng, mã chi nhánh; cài hoặc sửa macro, truy vấn, mã tự động.
  3. Ghi ngay khi làm, không để cuối ngày. Một dòng chỉ cần mười lăm giây.
  4. Dòng mới nhất nằm trên cùng hoặc dưới cùng, nhưng thống nhất một kiểu.
  5. Mỗi tháng người phụ trách đọc lướt nhật ký một lần, đối chiếu với lịch sử phiên bản xem có thay đổi lớn nào không được ghi.

AI giúp được ở bước viết: sau khi làm xong một thay đổi phức tạp, mô tả bằng lời những gì bạn đã làm và nhờ AI viết lại thành một dòng nhật ký gọn theo đúng các cột. Nhớ đừng dán dữ liệu thật vào mô tả; nhật ký chỉ cần nói "sửa tồn 12 mã hàng sau kiểm kê", không cần liệt kê số lượng từng mã của khách nào.

Tự động ghi nhật ký bằng Apps Script hoặc macro

Khi bảng có nhiều người sửa mỗi ngày và lịch sử sửa ô từng ô một không đủ tiện, bạn có thể nhờ AI viết mã tự ghi. Với Google Sheets, một hàm onEdit có thể ghi vào trang NhatKy mỗi lần ai đó sửa ô trong các cột quan trọng: thời điểm, trang, địa chỉ ô, giá trị cũ, giá trị mới. Mô tả cho AI cần nói rõ chỉ ghi các cột nào, vì ghi mọi thay đổi sẽ làm trang nhật ký phình rất nhanh.

Cần biết vài giới hạn. Hàm onEdit chỉ chạy với thay đổi do người sửa tay, không chạy khi công thức tính lại. Khi một người dán đè cả vùng nhiều ô, giá trị cũ của từng ô thường không có sẵn, nên nhật ký chỉ ghi được là "vùng này đã bị dán đè". Việc lấy email người sửa trong trình kích hoạt đơn giản cũng bị hạn chế, tuỳ loại tài khoản và cài đặt; với nhóm dùng tài khoản cá nhân, nhiều khi chỉ ghi được thời điểm. Khi AI hứa ghi được mọi thứ, hãy chạy thử để biết thực tế ghi được gì.

Với Excel, macro có sự kiện Worksheet_Change làm việc tương tự, nhưng chỉ chạy khi file mở bằng ứng dụng Excel trên máy có bật macro, nên không ghi được thay đổi từ người dùng Excel trên trình duyệt. Với bảng dùng chung trên đám mây, các chức năng có sẵn ở phần trên thường đáng tin hơn tự viết. Trước khi chạy bất kỳ mã nào AI viết, đọc kỹ theo bài hướng dẫn đọc hiểu mã trong cùng danh mục, và thử trên bản sao.

Nhật ký chạy cho các bước tự động

Bảng tính càng có nhiều bước tự động thì càng cần nhật ký chạy, vì việc tự động khi hỏng thường hỏng âm thầm. Mỗi công cụ tự động trong file nên để lại dấu vết:

  • Macro: mỗi lần chạy ghi một dòng gồm thời điểm, tên macro, người chạy, số dòng đã xử lý, kết quả thành công hay lỗi. Nhờ AI thêm đoạn này vào cuối mỗi macro.
  • Apps Script theo giờ: ghi tương tự vào trang nhật ký, kèm mục Executions có sẵn trong trình soạn thảo để đối chiếu khi cần.
  • Power Query: không tự ghi lịch sử làm mới vào trang tính. Có thể thêm một bảng nhỏ ghi thời điểm làm mới gần nhất và số dòng của mỗi truy vấn, để người xem biết dữ liệu mới tới đâu.
  • Mọi công cụ: ghi khi có thay đổi cách chạy, ví dụ sửa mã, đổi nguồn dữ liệu, đổi lịch chạy, vào trang nhật ký tay.
  • Đặt một ô nổi bật ở trang chính hiển thị "Dữ liệu cập nhật lần cuối", lấy từ nhật ký chạy.

Ô "cập nhật lần cuối" nghe đơn giản nhưng giải quyết rất nhiều hiểu lầm. Khi ai đó thắc mắc vì sao số hôm nay chưa đổi, họ nhìn ô đó là biết dữ liệu chưa được làm mới từ hôm qua, thay vì nghĩ bảng tính bị sai.

Khi cần quay lại: khôi phục mà không làm mất việc của người khác

Có nhật ký rồi, đến lúc phát hiện thay đổi sai, nhiều người vội bấm khôi phục cả bảng về phiên bản hôm qua. Với bảng dùng chung, làm vậy là xoá luôn mọi thay đổi đúng mà đồng nghiệp đã làm từ hôm qua tới giờ. Trình tự an toàn hơn:

  1. Xác định phạm vi: thay đổi sai nằm ở ô nào, cột nào, trang nào, dựa trên nhật ký và lịch sử sửa ô.
  2. Đặt tên phiên bản hiện tại, kiểu "Trước khi sửa lỗi cột Xuất", để có đường lui nếu việc sửa lại gây thêm sai.
  3. Mở phiên bản cũ ở chế độ xem, hoặc tạo một bản sao từ phiên bản cũ, thay vì khôi phục cả bảng.
  4. Chép đúng vùng bị sai từ bản cũ sang bảng hiện tại. Nếu chỉ vài ô, gõ lại theo giá trị cũ trong lịch sử sửa ô.
  5. Kiểm các ô phụ thuộc: tổng, công thức tham chiếu, truy vấn đọc từ vùng vừa sửa.
  6. Ghi một dòng nhật ký: đã khôi phục vùng nào, từ phiên bản nào, vì lý do gì, và báo cho người có liên quan.

Chỉ khôi phục cả bảng khi thay đổi sai lan rộng tới mức chép từng vùng không khả thi, ví dụ một macro chạy nhầm xoá nhiều trang. Khi đó báo cả nhóm ngừng sửa, khôi phục, rồi để từng người nhập lại phần việc của họ sau thời điểm phiên bản đó, dựa vào nhật ký.

Ví dụ giả định: một con số tồn kho sai và mười phút tìm ra nguyên nhân

Ví dụ giả định: kho hàng của một công ty logistics ở Quảng Ninh dùng một bảng Google Sheets chung cho tồn kho, sáu người cùng cập nhật. Sáng thứ Năm, tồn của một mã hàng hiện số âm. Trước đây, việc tìm nguyên nhân là hỏi từng người. Lần này, người phụ trách mở trang nhật ký tự động: chiều thứ Tư, một ô trong cột Xuất của mã đó được sửa từ 20 thành 200, cùng thời điểm có dòng xuất khác trong cùng phiếu.

Mở lịch sử sửa ô để xác nhận người sửa, gọi hỏi thì đó là lỗi gõ thừa số 0. Sửa lại, ghi một dòng vào nhật ký tay: ngày, người phát hiện, ô đã sửa, lý do là gõ nhầm, đã đối chiếu với phiếu xuất giấy. Toàn bộ mất khoảng mười phút.

Sau sự việc, nhóm thêm một quy tắc kiểm tra dữ liệu cho cột Xuất, không cho nhập số lớn hơn tồn hiện có, và nhờ AI viết thêm một dòng trong mã nhật ký để tô màu những thay đổi lớn hơn mười lần giá trị cũ. Phần quy tắc nhập liệu và kiểm tra hợp lệ có bài chi tiết ở danh mục chất lượng và an toàn dữ liệu của trang. Nhật ký không ngăn được lỗi, nhưng biến việc tìm lỗi từ một buổi chiều thành mười phút.

Câu hỏi thường gặp

Bảng tính lưu trên máy, gửi qua email thì có lịch sử phiên bản không?

Không có lịch sử tự động như trên đám mây. Bạn chỉ có các bản đính kèm rời rạc trong email. Nếu bảng thật sự dùng chung, nên chuyển lên OneDrive, SharePoint hoặc Google Drive để có lịch sử phiên bản, và dùng trang nhật ký tay cho thay đổi quan trọng.

Lịch sử phiên bản giữ được bao lâu?

Tuỳ dịch vụ, loại tài khoản và cài đặt của tổ chức; một số dịch vụ gộp hoặc xoá bớt phiên bản cũ sau một thời gian. Với những mốc quan trọng như chốt số cuối tháng, nên đặt tên phiên bản hoặc lưu một bản sao riêng thay vì trông vào lịch sử tự động.

Ghi nhật ký mọi ô có làm bảng tính chậm không?

Có thể, nếu bảng được sửa liên tục và nhật ký ghi mọi ô. Nên chỉ ghi các cột quan trọng, chuyển nhật ký cũ sang bảng lưu trữ định kỳ và tránh mã quá nặng trong hàm onEdit.

Nhật ký có ghi giá trị cũ khi dán đè nhiều ô không?

Thường là không đầy đủ. Khi sửa một ô, mã có thể lấy giá trị cũ; khi dán đè cả vùng, giá trị cũ của từng ô thường không có sẵn. Lúc đó lịch sử phiên bản của cả bảng là cách khôi phục đáng tin hơn.

Có nên ghi tên người sửa vào nhật ký không?

Nên, vì mục đích là truy được nguồn thay đổi để sửa nhanh, không phải để trách phạt. Nói rõ với nhóm mục đích này. Nhật ký chứa tên và thời điểm làm việc của nhân viên cũng là dữ liệu cần phân quyền xem hợp lý.

Cần tư vấn cụ thể cho trường hợp của bạn?

Chúng tôi sẽ liên hệ trong vòng 24 giờ.

Đăng ký tư vấn ngay

Bài viết liên quan

Bạn cần hỗ trợ thêm?

Để lại thông tin, chúng tôi sẽ liên hệ trong 24 giờ.

hoặc
Gọi ngay 0926 138 138