Skip to content

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ệc

DvdAddWorkdays

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 start

DvdMonthDiff

Số tháng giữa 2 ngày:

=DvdMonthDiff("2026-01-15", "2026-08-10")  → 6 (months)
=DvdMonthDiff("2025-12-31", "2026-12-31")  → 12

Mode 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

Released under DVDAddin License.