Skip to content

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ứcMô tả
=A1*1000m → mm
=A1/1000mm → m
=A1*0.001g → kg
=A1*1.4*100m³ bê tông → kg xi măng (mác 250)
=A1*7850m³ 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Φ (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 * ChieuDai

Vd 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 * 7850

Hoặc shortcut nhớ nhanh:

=D*D / 162.2  (kết quả kg/m, D = mm)
D (mm)Khối lượng (kg/m)
60.222
80.395
100.617
120.888
141.208
161.578
182.000
202.466
222.984
253.853
284.834
326.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 D16
  • diameter — đường kính danh nghĩa (mm).
  • quantitysố 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) / 1000

Output: 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) + 1

Vd dầm 6m, bảo vệ 5cm, đai @200:

=ROUNDUP((6000 - 100) / 200, 0) + 1 = 31 đai

Tiế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 LichLamViecInput!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 + 1

Ngà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.08

VAT 10% (truyền thống)

=KhoiLuong * DonGia * 1.10

Tá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ữ: ).

→ Chi tiết: dvdVnd · dvdUsd

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)^SoNamTroiQua

Vd 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 * Rong

Diệ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.1

0.1 = lớp lót 10cm.

Thể tích bê tông cột chữ nhật

=A * B * H * SoLuongCot

Thể 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) > 1

Validate 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àmMụ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

Released under DVDAddin License.