UDF Ngày + Số + Tiền (DateTime / Math / Money)
Hàm Excel tùy chỉnh cho xử lý ngày tháng (dương + âm lịch), tính ngày làm việc, làm tròn, đọc số thành chữ, format tiền tệ VND/USD.
Ngày tháng
DvdWorkdays
Số ngày làm việc giữa 2 ngày — loại trừ Thứ 7, Chủ Nhật, danh sách holidays:
=DvdWorkdays("2026-01-01", "2026-01-31") → 21
=DvdWorkdays("2026-01-01", "2026-01-31", {"2026-01-15","2026-01-20"}) → 19
=DvdWorkdays(A1, B1, HolidaysList) → ...Tham số thứ 3 = range chứa ngày nghỉ (vd: Holidays!A2:A30).
Khác NETWORKDAYS built-in:
- Hỗ trợ multiple holidays ranges (vd: lễ Tết + lễ công ty + lễ cá nhân).
- Tùy chọn coi T7 là ngày làm (mode
saturday_work=true).
=DvdWorkdays(A1, B1, Holidays, TRUE) → T7 tính là làm việcDvdAddWorkdays
Cộng N ngày làm việc vào start date:
=DvdAddWorkdays("2026-05-15", 10) → "2026-05-29" (10 working days later)
=DvdAddWorkdays("2026-05-15", 10, Holidays) → tính cả holidays
=DvdAddWorkdays("2026-05-15", -5) → 5 ngày làm việc TRƯỚC ngày startDvdMonthDiff
Số tháng giữa 2 ngày:
=DvdMonthDiff("2026-01-15", "2026-08-10") → 6 (months)
=DvdMonthDiff("2025-12-31", "2026-12-31") → 12Mode inclusive=true → tính cả tháng start và end (round up).
Âm lịch
DvdToLunar
Convert dương → âm lịch Việt Nam (theo lịch âm Hà Nội, GMT+7):
=DvdToLunar("2026-05-15") → "29/03/Bính Ngọ"
=DvdToLunar(A1, "yyyy-MM-dd") → "Bính Ngọ năm 2026, tháng 3 ngày 29"
=DvdToLunar(A1, "thien-can") → "Bính Ngọ" (chỉ thiên can - địa chi)Format token:
dd— ngày.MM— tháng (số).thang— tháng (chữ Việt — vd: "tháng giêng").nhuan— tháng nhuận indicator (T/F).yyyy— năm dương lịch.thien-can— Bính/Ất/...dia-chi— Tý/Sửu/Dần/...
DvdToSolar
Convert âm → dương:
=DvdToSolar(15, 1, 2026) → "2026-02-17" (mùng 1 tháng giêng âm)
=DvdToSolar(15, 1, 2026, TRUE) → tháng giêng nhuận (nếu năm đó có)DvdLunarHoliday
Phát hiện ngày lễ âm lịch:
=DvdLunarHoliday("2026-02-17") → "Tết Nguyên Đán"
=DvdLunarHoliday("2026-04-12") → "Giỗ Tổ Hùng Vương"
=DvdLunarHoliday("2026-06-22") → "Tết Đoan Ngọ"Số học và làm tròn
DvdRound
Mở rộng ROUND built-in với nhiều mode:
=DvdRound(123.456, 2) → 123.46 (standard round)
=DvdRound(123.456, 2, "up") → 123.46
=DvdRound(123.456, 2, "down") → 123.45
=DvdRound(123.456, 0, "ceiling", 5) → 125 (round up to nearest 5)
=DvdRound(123.456, 2, "banker") → 123.46 (banker's rounding)Mode:
"standard"(mặc định) — half away from zero."up"— luôn lên (CEILING)."down"— luôn xuống (FLOOR)."truncate"— cắt phần dư (TRUNC)."banker"— banker's rounding (half to even)."ceiling"+ factor — round up đến bội số."floor"+ factor — round down đến bội số.
Tiền tệ
DvdNumToText
Đọc số thành chữ tiếng Việt:
=DvdNumToText(1234567) → "Một triệu hai trăm ba mươi tư nghìn năm trăm sáu mươi bảy đồng"
=DvdNumToText(1234567, "") → "...sáu mươi bảy" (không có "đồng" cuối)
=DvdNumToText(1234567, "VND") → "...sáu mươi bảy đồng" (mặc định)
=DvdNumToText(1234567, "USD") → "...sixty seven dollars" (English)
=DvdNumToText(0.5) → "Không phẩy năm đồng"
=DvdNumToText(-1234) → "Âm một nghìn hai trăm ba mươi tư đồng"Use case: dùng cho hóa đơn, hợp đồng (yêu cầu pháp lý ghi số bằng chữ).
DvdNumToTextEN
English number-to-words:
=DvdNumToTextEN(1234) → "One thousand two hundred thirty four"
=DvdNumToTextEN(1234, "USD") → "One thousand two hundred thirty four US dollars"DvdFormatVnd / DvdFormatUsd
Format số thành tiền tệ với ký hiệu phù hợp:
=DvdFormatVnd(1234567) → "1.234.567 đ"
=DvdFormatVnd(1234567, TRUE) → "1.234.567 VNĐ"
=DvdFormatUsd(1234.56) → "$1,234.56"
=DvdFormatUsd(1234.56, "EUR") → "€1,234.56"Format chuẩn theo locale Việt Nam (. cho nghìn, không có thập phân cho VND).
License gating
Tất cả hàm Date/Math/Money đều free — chạy local, không cần network.
Liên quan
- UDF Text — chữ hoa/thường, bỏ dấu, regex.
- UDF Range + Lookup — DvdSumVisible, DvdVLookupAll.
- Cắt thép tối ưu — dùng DvdRound để làm tròn chiều dài cắt.