Construction Formulas — Công thức Excel cho Xây dựng
Thư viện công thức Excel kết hợp hàm sẵn có của Excel + UDF của DVDAddin giải quyết các bài toán đặc thù ngành xây dựng.
Tên hàm UDF viết đúng như tài liệu
Mọi hàm của add-in đều bắt đầu bằng tiền tố dvd (ví dụ dvdVnd, dvdSteelWeight). Danh sách đầy đủ 47 hàm ở Hàm UDF — nếu gõ một tên không có trong danh sách đó, Excel trả #NAME?.
Khối lượng & Tiên lượng
Tổng khối lượng theo loại công tác
=SUMIFS(KhoiLuong, LoaiCongTac, "Bê tông", HangMuc, "Móng")Hoặc dùng pivot table cho tổng quan toàn dự án.
Quy đổi đơn vị
| Công thức | Mô tả |
|---|---|
=A1*1000 | m → mm |
=A1/1000 | mm → m |
=A1*0.001 | g → kg |
=A1*1.4*100 | m³ bê tông → kg xi măng (mác 250) |
=A1*7850 | m³ thép → kg (tỉ trọng 7850 kg/m³) |
Đếm số thanh thép theo nhóm đường kính
=COUNTIF(DuongKinh, "D16") + COUNTIF(DuongKinh, "Φ16")Combine cả notation D và Φ (Việt Nam dùng cả 2).
Tính chiều dài thép neo (anchor length)
=IF(MacBeTong<=20, 40*DuongKinh, 30*DuongKinh)Hoặc dùng IFS (Excel 2019 trở lên):
=IFS(MacBeTong<=20, 40*D, MacBeTong<=30, 35*D, TRUE, 30*D)Bê tông
Cấp phối bê tông (mác 250, slump 8±2)
| Vật liệu | Định mức (cho 1 m³) |
|---|---|
| Xi măng PCB30 | =350 (kg) |
| Cát vàng | =0.45 (m³) |
| Đá 1×2 | =0.85 (m³) |
| Nước | =185 (lít) |
| Phụ gia (nếu có) | =350*0.005 (kg) — 0.5% xi măng |
Nhân với khối lượng bê tông cần đổ → ra số lượng vật liệu.
Cường độ bê tông theo ngày tuổi (Mỹ, ACI 209)
=CuongDo28Ngay * Tuoi / (4 + 0.85*Tuoi)Vd cường độ M250 sau 7 ngày:
=250 * 7 / (4 + 0.85*7) = 250 * 7 / 9.95 ≈ 176 kg/cm²Khối lượng bê tông cọc khoan nhồi
=PI()/4 * (DuongKinh/1000)^2 * ChieuDaiVd cọc D800, dài 30m:
=3.14159/4 * 0.8^2 * 30 = 15.08 m³Thép
Khối lượng 1m thép tròn
=PI()/4 * (D/1000)^2 * 7850Hoặc shortcut nhớ nhanh:
=D*D / 162.2 (kết quả kg/m, D = mm)| D (mm) | Khối lượng (kg/m) |
|---|---|
| 6 | 0.222 |
| 8 | 0.395 |
| 10 | 0.617 |
| 12 | 0.888 |
| 14 | 1.208 |
| 16 | 1.578 |
| 18 | 2.000 |
| 20 | 2.466 |
| 22 | 2.984 |
| 25 | 3.853 |
| 28 | 4.834 |
| 32 | 6.313 |
Khối lượng thép theo số cây — dvdSteelWeight
Hàm của add-in tính thẳng ra kilogram cho N cây thép thương phẩm 11,7 m, khỏi phải nhớ bảng kg/m:
=dvdSteelWeight(diameter, quantity)
=dvdSteelWeight(20, 84) → 84 cây D20 dài 11,7 m, tính ra kg
=dvdSteelWeight(16, 30) → 30 cây D16diameter— đường kính danh nghĩa (mm).quantity— số cây khi D ≥ 10. Với thép cuộn D ≤ 8 thì tham số này được hiểu là khối lượng cuộn (kg) và hàm trả lại chính giá trị đó, vì thép cuộn bán theo cân chứ không theo cây.
→ Chi tiết: dvdSteelWeight
Tổng khối lượng thép theo bảng kê
=SUMPRODUCT(SoLuong, ChieuDai, KhoiLuong1m) / 1000Output: tấn (kg → tấn / 1000).
Nội suy tuyến tính bảng tra — dvdNoiSuy
Tra định mức, tra bảng cường độ, tra hệ số theo nhịp… bảng nào cũng chỉ cho vài mốc rời rạc. Thay vì dựng công thức FORECAST/TREND cho từng lần, dùng:
=dvdNoiSuy(x1, x2, y1, y2, xnew)
=dvdNoiSuy(6, 9, 1.15, 1.32, 7.5) → hệ số ứng với nhịp 7,5 m→ Chi tiết: dvdNoiSuy
Số đai cho 1 cấu kiện dầm
=ROUNDUP((ChieuDaiDam - 2*KhoangCachBaoVe) / KhoangCachDai, 0) + 1Vd dầm 6m, bảo vệ 5cm, đai @200:
=ROUNDUP((6000 - 100) / 200, 0) + 1 = 31 đaiTiến độ thi công
Số ngày thi công (loại trừ Chủ Nhật)
=NETWORKDAYS.INTL(NgayBatDau, NgayKetThuc, 11)11 = mode "Chỉ Chủ Nhật là ngày nghỉ".
1 (default) = thứ 7 + Chủ Nhật nghỉ.
Muốn trừ cả ngày lễ Việt Nam, truyền thêm tham số thứ tư là vùng chứa danh sách ngày lễ. Mẫu tiến độ đã có sẵn danh sách đó, khai bằng named range DSNgayLe (trỏ vào cột A của sheet Input):
=NETWORKDAYS.INTL(NgayBatDau, NgayKetThuc, 11, DSNgayLe)Sheet Input còn kèm bảng đối chiếu âm–dương lịch để bạn cập nhật Tết hằng năm, và named range LichLamViec (ô Input!B2) chứa mask lịch tuần 7 ký tự thứ 2 → Chủ nhật, Y = làm, N = nghỉ — mặc định YYYYYYN (chỉ nghỉ Chủ nhật).
Chính hai named range này là thứ lệnh Tự động tính của add-in đọc để chạy lịch, và Cài đặt ghi ngược trở lại khi bạn sửa lịch trong hộp thoại — nên tiến độ và công thức NETWORKDAYS.INTL của bạn luôn dùng chung một bộ lịch.
Số ngày dương lịch
=NgayKetThuc - NgayBatDau + 1Ngày kết thúc khi biết bắt đầu + duration
=WORKDAY.INTL(NgayBatDau, Duration-1, 11)-1 vì NgayBatDau cũng tính 1 ngày làm.
% hoàn thành tới hôm nay
=MIN(MAX((TODAY() - NgayBatDau) / (NgayKetThuc - NgayBatDau), 0), 1)Cap trong [0, 1] để không ra số âm hoặc >100%.
Đường găng và ngày bắt đầu sớm nhất — đừng tự dựng công thức
Tính CPM bằng công thức Excel thuần là bài toán vòng lặp: mỗi công tác phải chờ tất cả công tác trước nó, nên VLOOKUP một tầng chỉ đúng khi mạng lưới đơn giản, và sai ngay khi có quan hệ SS/FF hoặc nhiều predecessor.
Add-in đã có sẵn bộ tính lịch: bật Tự động tính trên tab DVD Cons, khai Predecessors theo dạng Activity ID + mã quan hệ (MHC1060FS, MHC1090SS, MHC1150FF) và add-in tự tính lại Start / Finish mỗi khi bạn sửa Duration hoặc ngày. Cột Total Float / Free Float trong mẫu tiến độ cho biết công tác nào nằm trên đường găng (float = 0).
Muốn kiểm tra chất lượng mạng lưới (công tác treo, quan hệ thiếu, float âm, ràng buộc cứng…), dùng Kiểm tra chất lượng — bộ kiểm DCMA khoảng 12 mục.
Chi phí & Dự toán
Tổng giá trị HĐ kèm VAT 8% (tạm thời 2026)
=KhoiLuong * DonGia * 1.08VAT 10% (truyền thống)
=KhoiLuong * DonGia * 1.10Tách giá trước thuế từ giá đã có VAT
=GiaCoVAT / 1.08 (VAT 8%)
=GiaCoVAT / 1.10 (VAT 10%)Số tiền bằng chữ — dvdVnd / dvdUsd
Dòng "Bằng chữ" bắt buộc phải có trong hợp đồng, phiếu giá và biên bản thanh toán:
=dvdVnd(1500000)
→ Một triệu, năm trăm nghìn đồng.
=dvdVnd(1500000, 1)
→ Bằng chữ: Một triệu, năm trăm nghìn đồng.
=dvdUsd(C5)
→ đọc số tiền USD ở ô C5 thành chữ tiếng Anh (dollars / cents)Tham số thứ hai của dvdVnd chỉ có hai giá trị: 0 (mặc định — chỉ đọc số) và 1 (thêm tiền tố Bằng chữ: ).
Quy đổi tỉ giá tự động — DVDFx
DVDFx trả về tỷ giá, không phải số tiền đã quy đổi — nhân với số tiền để ra kết quả:
=DVDFx("USD","VND") → tỷ giá USD→VND hôm nay
=A1 * DVDFx("USD","VND") → quy đổi A1 (USD) sang VND
=A1 * DVDFx("EUR","VND")
=DVDFx("USD","VND","2026-06-30") → tỷ giá tại một ngày cụ thểTham số ngày nhận dạng yyyy-MM-dd hoặc dd/MM/yyyy; bỏ trống là lấy hôm nay. Hàm chạy bất đồng bộ — ô hiện #N/A waiting... trong giây lát rồi tự cập nhật, và cần Internet.
Đừng để hợp đồng phụ thuộc vào tỷ giá sống
Sau khi chốt số liệu, copy kết quả rồi Paste Special → Values. Nếu để công thức DVDFx sống trong bảng giá trị hợp đồng, mỗi lần mở file con số lại khác.
→ Chi tiết: DVDFx
Trượt giá theo CPI
=GiaGoc * (1 + CPI/100)^SoNamTroiQuaVd hợp đồng 100tr ký 2020, áp giá 2026 với CPI 4%/năm:
=100000000 * (1 + 0.04)^6 = 126,531,902 đĐo bóc & Khối lượng
Diện tích phòng từ kích thước
=Dai * RongDiện tích trừ cửa/cửa sổ
=Dai * Rong - SUMPRODUCT(SoLuongCua, DienTich1Cua)Thể tích bê tông móng đơn (hình hộp + lớp lót)
=A * B * H + A * B * 0.10.1 = lớp lót 10cm.
Thể tích bê tông cột chữ nhật
=A * B * H * SoLuongCotThể tích bê tông sàn (trừ ô thang)
=DienTichSan * ChieuDaySan - SUMPRODUCT(DienTichLoTrong, ChieuDaySan)Kiểm tra dữ liệu
Tô màu cell sai dữ liệu (Conditional Formatting)
Setup CF rule:
- Range:
B2:B100 - Formula:
=AND(ISNUMBER(B2), B2<0) - Format: nền đỏ.
→ Cell có số âm sẽ tô đỏ → dễ phát hiện lỗi nhập liệu.
Cộng / đếm theo màu nền ô
Bảng khối lượng trên công trường hay được đánh dấu bằng màu (vàng = chờ xác nhận, xanh = đã nghiệm thu). Excel không có hàm sẵn cho việc này, add-in thì có:
=dvdSumIfColor(F5:F200, $J$2) → cộng các ô trong F5:F200 có màu nền giống ô J2
=dvdCountIfColor(F5:F200, $J$2) → đếm số ô như vậy→ Chi tiết: dvdSumIfColor · dvdCountIfColor
Màu do Conditional Formatting không tính
Hai hàm này đọc màu nền thật của ô. Ô được tô bởi CF vẫn giữ màu nền gốc trong mô hình đối tượng của Excel, nên sẽ không được cộng/đếm.
Cộng đúng phần đang lọc
Sau khi AutoFilter một bảng khối lượng lớn, SUM vẫn cộng cả dòng ẩn:
=dvdSumVisible(F5:F2000)→ Chi tiết: dvdSumVisible
Đếm số dòng trống trong vùng
=COUNTBLANK(A2:A1000)Highlight duplicate
CF → Highlight Cells Rules → Duplicate Values.
Hoặc formula:
=COUNTIF($A$2:$A$1000, A2) > 1Validate ngày trong khoảng
Data Validation:
- Allow: Date.
- Data: between.
- Start:
=DATE(2026,1,1), End:=DATE(2026,12,31).
→ Cell chỉ chấp nhận ngày trong năm 2026.
UDF của DVDAddin hay dùng nhất trong xây dựng
Rút gọn từ danh sách 47 hàm — xem đầy đủ tại Hàm UDF.
| Hàm | Mục đích |
|---|---|
dvdVnd(Number, [match_mode]) | Đọc số tiền VND ra chữ; match_mode=1 thêm tiền tố Bằng chữ: |
dvdUsd(Number) | Đọc số tiền USD ra chữ tiếng Anh |
DVDFx(from, to, [date]) | Tỷ giá ngoại tệ (real-time hoặc theo ngày) — cần Internet |
dvdSteelWeight(diameter, quantity) | Khối lượng thép theo số cây 11,7 m |
dvdNoiSuy(x1, x2, y1, y2, xnew) | Nội suy tuyến tính khi tra bảng định mức |
dvdSumVisible(SumRng) | Cộng chỉ các ô đang hiển thị (bỏ qua dòng ẩn / đã lọc) |
dvdSumIfColor(rngSum, rngCellColor) | Cộng theo màu nền ô |
dvdCountIfColor(RangeToCount, ReferenceCell) | Đếm ô theo màu nền |
dvdLookupAllSheets(lookupValue, lookup_column, result_column) | Dò một giá trị qua mọi sheet của workbook — hợp khi mỗi hạng mục một sheet |
dvdXlookup(...) | XLOOKUP có sẵn xử lý IfNotFound / IfError, dùng được trên Excel 2016/2019 |
dvdTableLookup(LookupRowValue, LookupColumnValue, TableRange) | Tra bảng hai chiều (hàng × cột) — bảng tra hệ số, bảng cấp phối |
dvdConcatIF(Delimiter, ConcatRange, [ConditionRange], [Condition]) | Gộp danh sách vị trí / cấu kiện theo điều kiện |
dvdExplain(RangeToExplain, [HeaderRange], [OptionValue], [DecimalPlaces]) | Sinh chuỗi diễn giải khối lượng dạng 3=1+2 để trình duyệt hồ sơ |
dvdLDate(shortDate, [Location], [Language]) | Đổi ngày sang chuỗi văn bản kiểu biên bản ("ngày … tháng … năm …"), có tuỳ chọn địa danh và song ngữ |
dvdSymbol(value) | Chèn ☐ / ☑ / ☒ vào biểu mẫu kiểm tra |
dvdTranslate(Text, FromLang, ToLang) | Dịch qua Google Translate ngay trong ô — cần Internet |
dvdQR(Text, [charsetName]) | Sinh mã QR (gắn vào phiếu nghiệm thu, tem cấu kiện) |
dvdPic(ImgPath, [FitMode], [Space], [Extensions]) | Chèn ảnh hiện trường vào ô theo đường dẫn |
Hàm mạng và hàm volatile làm chậm workbook
dvdTranslate, dvdStock, DVDFx, dvdAIExplain gọi Internet cho từng ô. dvdAutoHide, dvdMCLookup, dvdMVLookup, dvdSumVisible, dvdUniqueV là hàm volatile, tính lại mỗi lần Excel recalc. Bảng khối lượng vài nghìn dòng thì hãy chốt số rồi Paste Special → Values.
Liên quan
- Hàm UDF — danh sách đầy đủ 47 hàm của DVDAddin.
- Tham chiếu lệnh đầy đủ — 186 lệnh ribbon, mô tả từng trường trong hộp thoại.
- Sample Workbooks — 6 file mẫu đi kèm, kèm cấu trúc cột chuẩn.
- Workflow: Lập dự toán xây dựng — quy trình hoàn chỉnh.
- Recipes — formula patterns nâng cao.
- Glossary — thuật ngữ xây dựng.