Best Practices
Đúc kết kinh nghiệm sử dụng DVDAddin hiệu quả — tránh sai sót, tối ưu workflow, scale lên dự án lớn.
1. Cấu trúc workbook chuẩn
File 1 dự án = 1 workbook gốc + N workbook con
❌ Sai: 1 file Excel chứa toàn bộ data + tính toán + báo cáo cho dự án 1000+ hạng mục → workbook nặng > 50MB, mở chậm, dễ crash.
✓ Đúng:
MasterData.xlsx— Bảng giá, danh mục công tác, định mức (read-only).KhoiLuong.xlsx— Bảng đo bóc dự án (tham chiếu MasterData).BCH_Tien_Do.xlsx— Gantt + nhật ký công trình.BCH_Nghiem_Thu.xlsx— BBNT sinh ra qua Trộn sang Word.
Tách → mỗi file nhỏ, load nhanh, ít crash.
Sheet structure
Một workbook nên có 3 loại sheet:
| Loại | Mục đích | Ví dụ tên |
|---|---|---|
| Input | User nhập data | Input, DATA, Khoi_Luong |
| Config | Settings + lookups | Settings, BangGia, DanhMuc |
| Output | Báo cáo + chart (ẩn) | Report, Gantt, Summary |
Sheet Output nên đặt VeryHidden → user không sửa nhầm.
Tên sheet add-in đang dùng
Một số lệnh có sheet quy ước riêng, đừng đổi tên hay xoá: DVDAddinSetting — sheet ẩn chứa cấu hình của In hàng loạt; Mucluc — bảng tra tên sheet ↔ vùng cần canh chiều cao ô gộp khi in loạt.
Naming convention
✓ Sheet name: BBNTCV, KT_DD, BangGia_2026.
- Không space (dễ tham chiếu trong công thức).
- Có prefix theo loại (BB = biên bản, KT = khối lượng, ...).
Cần đổi tên hàng loạt thì dùng Đổi tên Sheet; muốn bỏ dấu tiếng Việt trong tên sheet để tránh lỗi tham chiếu, dùng Bỏ dấu Sheet.
✓ Named Range: DanhSachHangMuc, BangGia_2026_Range.
- PascalCase.
- Có hậu tố
_Rangecho range,_Valuecho cell đơn.
Named Range hỏng (do xoá sheet, copy file) làm workbook mở chậm và sinh #REF! — dọn định kỳ bằng Xoá Defined Names lỗi.
2. Sử dụng UDF đúng cách
Cell-level UDF chỉ cho vài ô quan trọng
❌ Sai: rải =dvdTranslate(A1,"vi","en") xuống 1000 dòng. Hàm này gọi mạng đồng bộ — Excel đứng chờ từng ô một, timeout 15 giây mỗi ô.
✓ Đúng:
- Chọn cả vùng rồi chạy Dịch ngôn ngữ — kết quả ghi thẳng vào ô, sau đó workbook không còn công thức nào phải tính lại.
- Cần xử lý văn bản hàng loạt theo yêu cầu tự do (tóm tắt, viết lại theo mẫu hồ sơ) thì dùng Trợ lý AI thay vì công thức.
Chỉ có đúng một hàm AI ở dạng UDF là dvdAIExplain (giải thích công thức) — nó chạy bất đồng bộ nên không chặn Excel, nhưng vẫn tiêu quota API mỗi ô.
Convert UDF → Values khi không cần dynamic
Sau khi UDF đã trả kết quả → chốt lại:
Ctrl + A (select all)
Ctrl + C (copy)
Ctrl + Alt + V → V → Enter (paste values only)→ Workbook không tính lại UDF mỗi lần thay đổi → mở nhanh hơn.
Hạn chế hàm volatile
Hàm volatile được Excel tính lại mỗi lần ANY cell đổi. DVDAddin có đúng 5 hàm volatile:
Built-in cùng nhóm: NOW(), TODAY(), RAND(), OFFSET(), INDIRECT().
→ Giữ số ô dùng chúng ở mức vài chục. Nếu chỉ cần tổng của vùng đang lọc mà không cần cập nhật tức thời, SUBTOTAL(109, ...) rẻ hơn dvdSumVisible.
3. Bảo vệ data quan trọng
Sheet Protection
Sheet Settings, BangGia, DanhMuc — luôn protect với password:
- Review → Protect Sheet → đặt password.
- User có thể edit Input nhưng KHÔNG sửa Config.
Quên password sheet? → Mở khóa Sheet.
Workbook Structure Protection
Tránh user thêm/xóa/đổi tên sheet:
- Review → Protect Workbook → Structure.
File Encryption (cho data nhạy cảm)
File chứa thông tin lương / chi phí thực:
- File → Info → Protect Workbook → Encrypt with Password.
⚠️ Lưu ý: đây là mã hoá toàn file, khác hoàn toàn với mật khẩu sheet. Lệnh Mở khóa Sheet không mở được file đã encrypt. Quên mật khẩu file = mất data luôn → dùng password manager.
4. Version control
Folder structure per project
D:\Projects\MHC_Van_Phong\
├── 00_Master\
│ ├── MasterData.xlsx
│ └── Templates\
├── 01_TKBVTC\
├── 02_HoSoQLDA\
│ ├── KhoiLuong_v01.xlsx
│ ├── KhoiLuong_v02.xlsx ← rev sau 1 tuần
│ ├── KhoiLuong_v03_Final.xlsx
│ └── _archive\ ← v01, v02 cũ
├── 03_NhatKy\
│ ├── Thang_5\
│ ├── Thang_6\
│ └── ...
└── _backup\ ← zip backup hàng tuầnDựng sẵn cây thư mục này từ một danh sách trong Excel: Tạo Folder. Muốn chụp lại cấu trúc thư mục hiện có vào sheet để rà soát: Cây thư mục folder.
Đặt tên file theo pattern
{DA}_{Loai}_{Date}_{Version}.{ext}Examples:
MHC_KhoiLuong_2026-05-15_v3.xlsxMHC_TienDo_W20_v1.pdfMHC_NhatKy_T05_v1.pdf
→ Dễ search, dễ archive, dễ rollback. Đổi tên cả loạt file cũ cho đúng pattern: Đổi tên file.
Git cho team lớn
Team > 5 người + dự án dài → cân nhắc Git LFS cho Excel:
git init+.gitattributes:*.xlsx filter=lfs diff=lfs merge=lfs -text.- Commit weekly.
- Mỗi commit = 1 milestone.
(Advanced — chỉ team có IT support. Lưu ý Git không merge được nội dung file Excel, nó chỉ giữ lịch sử từng phiên bản.)
5. License & Subscription
Mua đúng số máy
Hộp thoại Mua bản quyền cho chọn hạng Standard hay Pro, thời hạn (1 / 2 / 3 năm, hoặc Khác — liên hệ) và số máy (1–10, hoặc Hơn 10 máy — liên hệ). Mỗi máy đã mua sinh ra một license riêng, tất cả gắn vào email khai lúc đặt hàng.
Team 5 người → mua gói 5 máy ngay từ đầu, và xin nhà cung cấp cấp tài khoản đăng nhập riêng cho từng người. Lý do rất thực tế: một tài khoản chỉ giữ được một phiên đăng nhập, người thứ hai đăng nhập là người thứ nhất bị đẩy ra giữa chừng.
PRO mở thêm nhóm lệnh phân tích tiến độ, kế hoạch QA/QC và AI báo giá — xem badge PRO trong Tham chiếu lệnh. Bản dùng thử mở đầy đủ cả hai hạng, nên hãy thử đúng những lệnh bạn định mua trước khi chốt hạng.
Biết trước ngày hết hạn
Add-in không tự bật cảnh báo sắp hết hạn. Muốn biết còn bao nhiêu ngày, mở Tác giả — khối Bản quyền hiện loại license và ngày hết hạn, kèm phần (còn N ngày) khi license còn hiệu lực — hoặc Bản quyền.
→ Tự đặt lịch nhắc gia hạn, đừng đợi tới lúc mở Excel thấy lệnh không chạy.
Backup license
Trước khi cài lại Windows / đổi máy, sao lưu:
%LocalAppData%\DVDAddin\license.datAdd-in còn giữ một bản dự phòng trong registry tại HKCU\Software\DVD\DVDAddin\Licensing (dùng khi thư mục %LocalAppData% bị chặn ghi).
⚠️ Chép license.dat sang máy khác không dùng được: license gắn với định danh máy, băm ra từ ba thứ — MachineGuid của bản cài Windows, tên máy và phiên bản hệ điều hành. Cài lại add-in trên cùng bản Windows thì file cũ vẫn hợp lệ; cài lại Windows từ đầu hoặc đổi tên máy thì phải đăng nhập lại.
Cập nhật đúng cách
Đóng hẳn Excel trước khi chạy bộ cài bản mới. Excel còn mở là file .xll đang bị khoá, bản cũ vẫn nằm trong bộ nhớ và bạn sẽ thấy "đã cập nhật mà lỗi vẫn còn".
Kiểm tra phiên bản mới: Cập nhật; tải bộ cài: Tải Tool.
6. Backup strategy
Mức 1 — Save file thường xuyên
Ctrl + S sau mỗi 30 phút làm việc.
Mức 2 — Excel AutoRecover
File → Options → Save → "Save AutoRecover information every" → set 5 phút (mặc định 10).
→ Excel crash → mở lại → có option Recover.
Mức 3 — OneDrive / Google Drive auto-sync
Folder dự án trong OneDrive → mỗi lần Ctrl + S là tự upload lên Cloud.
→ Máy hỏng / mất → vẫn có file trên Cloud.
Mức 4 — Weekly archive
Mỗi cuối tuần:
- Zip toàn bộ folder dự án.
- Đặt tên
DA_Backup_2026-05-15.zip. - Upload Cloud (Google Drive / Dropbox / S3).
- Giữ 8 tuần gần nhất.
Mức 5 — Off-site backup
Cho dự án quan trọng:
- Backup vào ổ cứng vật lý đặt ở văn phòng khác.
- Backup vào dịch vụ lưu trữ lạnh (S3 Glacier / Backblaze B2).
7. Collaboration
Single source of truth
Mỗi loại data có 1 file là master, các file khác tham chiếu read-only:
- BangGia master =
MasterData.xlsx. - File con dùng
=VLOOKUP(MaCT, '[MasterData.xlsx]BangGia'!$A:$H, 8).
→ Update bảng giá → tất cả file con cập nhật khi mở. Đổi lại, file con sẽ mở chậm hơn (xem Performance → #9).
Comment + review
Khi team review file:
- Right-click cell → New Comment → ghi feedback.
- Thống nhất một sheet
Ghi_Chuliệt kê điểm cần sửa nếu comment quá nhiều.
Làm việc nhóm thời gian thực
Cả tổ cùng sửa một file → Kết nối Server. Hai đường kết nối:
- LAN — một máy chạy server (mặc định cổng 8888), các máy khác nhập IP host để nối vào.
- Internet qua MQTT — các máy cùng vào một "mã phòng" trên broker.
Kèm theo:
- Quản trị viên — phân quyền Xem / Sửa / Vùng theo từng sheet, Kick hoặc Ban thành viên. Host phải đặt Mật khẩu Admin trước khi chạy server, nếu không lệnh này không mở được.
- Gửi Định dạng — đẩy định dạng vùng đang chọn cho cả nhóm.
- Ngắt kết nối — đóng cửa sổ không ngắt phiên, phải dùng lệnh này.
Hai điều cần thống nhất trước với cả tổ: Mật khẩu Dữ liệu phải giống hệt nhau trên mọi máy (sai thì gói tin nhận về không giải mã được), và với dữ liệu nhạy cảm thì đừng dùng broker MQTT công cộng.
Đây là đồng bộ trực tiếp giữa các máy trong một phiên làm việc — không phải kho lưu trên mây, đóng phiên là hết. Việc lưu trữ và đặt tên phiên bản vẫn theo mục Version control ở trên.
8. Documentation
Sheet Huong_Dan trong mỗi file
File phức tạp → thêm sheet đầu Huong_Dan (tab màu vàng) với:
- Mục đích file.
- Cấu trúc các sheet.
- Cell driver quan trọng (đặc biệt nếu file dùng In hàng loạt).
- Workflow update weekly.
- Contact người tạo file.
→ Đồng nghiệp / sếp mở file lần đầu hiểu ngay.
Named Range với description
Formulas → Name Manager → set comment cho mỗi Named Range:
BangGia_2026— "Bảng đơn giá có hiệu lực từ 01/01/2026. Update mỗi quý."DanhMucCongTac— "Danh mục công tác chuẩn của đơn vị."
→ Người sau mở Name Manager là hiểu ngay từng vùng dùng để làm gì.
Liên quan
- Performance Tuning — tối ưu workbook lớn.
- Backup & Restore — chi tiết backup strategy.
- Customization — registry, file cấu hình, phím tắt.
- Tham chiếu lệnh đầy đủ — toàn bộ 186 lệnh ribbon.