Hàm TBILLPRICE trong Excel thường báo lỗi ngay khi bạn nhập xong công thức. Tôi từng mất 30 phút debug một file Excel đơn giản chỉ vì nhập ngày tháng theo cách Excel không chấp nhận. Lỗi phổ biến nhất là dùng text thay vì date format, dẫn đến giá trị lỗi VALUE mỗi lần tính toán.
Sai lầm số một: Nhập ngày dạng text
Đa số lỗi TBILLPRICE xuất phát từ cách nhập ngày tháng. Excel lưu ngày dưới dạng số sê-ri, nhưng nhiều người nhập trực tiếp chuỗi text như 01/03/2025 vào công thức.
Khi bạn viết công thức này:
=TBILLPRICE("01/03/2025", "01/06/2025", 0.04)
Excel báo lỗi VALUE ngay lập tức vì không nhận diện được ngày từ text. Mỗi máy có cài đặt vùng miền khác nhau, định dạng dd/mm/yyyy có thể đọc thành mm/dd/yyyy, gây nhầm lẫn hoặc lỗi.
Cách đúng với hàm DATE:
=TBILLPRICE(DATE(2025,3,1), DATE(2025,6,1), 0.04)
Hàm DATE nhận ba tham số theo thứ tự năm, tháng, ngày. Excel hiểu đúng bất kể cài đặt vùng miền nào. Công thức trên tính giá trái phiếu kho bạc thanh toán ngày 1 tháng 3 năm 2025, đáo hạn ngày 1 tháng 6 năm 2025, với tỷ lệ chiết khấu 4%.
Hoặc tham chiếu ô chứa ngày:
Đặt ngày vào các ô riêng biệt, định dạng ô là Date trước. Chọn ô A2, nhấn Ctrl+1, chọn Number > Date > chọn định dạng phù hợp. Lặp lại với ô B2 cho ngày đáo hạn. Công thức trở thành:
=TBILLPRICE(A2, B2, C2)
Phương pháp này dễ sửa giá trị mà không chạm vào công thức. Tôi chuyển sang cách này và giảm 90% lỗi DATE liên quan.
Nhầm lẫn tỷ lệ chiết khấu với phần trăm
Tỷ lệ chiết khấu 4% cần nhập là 0.04, không phải 4. Nếu nhập 4, Excel hiểu là 400% và cho kết quả âm hoặc không hợp lý. Kết quả giá trị âm không tồn tại trong trái phiếu kho bạc, báo hiệu bạn đã sai đối số.
Kiểm tra nhanh:
Giá trị TBILLPRICE luôn nằm trong khoảng 95-100 cho hầu hết trường hợp thực tế. Nếu kết quả là 600 hoặc -200, tỷ lệ chiết khấu sai ngay. Quay lại kiểm tra ô C2 có giá trị 0.04 chứ không phải 4.
Định dạng ô Percentage:
Một cách an toàn là định dạng ô C2 làm Percentage. Nhập 4 vào ô, Excel tự động hiểu là 4% và lưu giá trị thực là 0.04 bên trong. Công thức TBILLPRICE đọc đúng giá trị 0.04 này.
Nhấn Ctrl+1 tại ô C2, chọn Percentage, để số thập phân là 2. Nhập 4.00 vào ô, hiển thị 4.00% trên màn hình nhưng công thức nhận 0.04 chính xác.
Đảo ngược thứ tự ngày thanh toán và đáo hạn
Lỗi NUM xuất hiện khi ngày thanh toán lớn hơn hoặc bằng ngày đáo hạn. Excel không thể tính giá cho trái phiếu đã đáo hạn hoặc chưa được thanh toán.
Ví dụ sai:
=TBILLPRICE(DATE(2025,6,1), DATE(2025,3,1), 0.04)
Công thức này đặt ngày đáo hạn trước ngày thanh toán, vi phạm logic trái phiếu. Lỗi NUM báo ngay, không cho kết quả.
Kiểm tra logic với công thức:
Thêm kiểm tra đơn giản trước khi tính:
=IF(B2<=A2, "Lỗi: Ngày đáo hạn phải sau ngày thanh toán", TBILLPRICE(A2, B2, C2))
Công thức này trả về thông báo lỗi rõ ràng thay vì NUM, giúp debug nhanh hơn. Khi ngày hợp lệ, tính toán bình thường.
Sử dụng Data Validation:
Áp dụng validation cho ô B2 để đảm bảo ngày đáo hạn luôn sau ngày thanh toán. Chọn ô B2, Data > Data Validation > Custom > nhập công thức:
=B2>A2
Excel chặn nhập liệu sai ngay từ đầu. Thông báo lỗi có thể tuỳ chỉnh: “Ngày đáo hạn phải sau ngày thanh toán.”
Kỳ hạn vượt quá 365 ngày
Trái phiếu kho bạc theo định nghĩa có kỳ hạn dưới một năm. TBILLPRICE chỉ hoạt động khi khoảng cách giữa hai ngày không vượt 365 ngày. Nếu vượt, lỗi NUM xuất hiện.
Tính từ 01/03/2025 đến 05/03/2026 là 369 ngày. Excel từ chối tính:
=TBILLPRICE(DATE(2025,3,1), DATE(2026,3,5), 0.04)
Lỗi NUM báo ngay vì kỳ hạn quá dài.
Kiểm tra khoảng cách ngày:
Thêm validation hoặc formula check:
=IF(B2-A2>365, "Lỗi: Kỳ hạn vượt quá 1 năm", TBILLPRICE(A2, B2, C2))
Với trái phiếu kỳ hạn dài hơn, sử dụng hàm PRICE thay vì TBILLPRICE. PRICE xử lý trái phiếu có kỳ hạn nhiều năm và trả lãi định kỳ, phù hợp cho chứng khoán dài hạn.
Bỏ qua mệnh giá thực tế
TBILLPRICE luôn tính cho mệnh giá 100 đơn vị. Nhiều người quên điều này và nghĩ kết quả 98.50 là giá thực tế cho trái phiếu 1000 đơn vị.
Giá thực tế cần nhân tỷ lệ:
=TBILLPRICE(A2, B2, C2) * (D2 / 100)
Trong đó D2 là mệnh giá thực tế. Nếu D2 = 1000, công thức trở thành:
=TBILLPRICE(A2, B2, C2) * 10
Kết quả 98.50 từ TBILLPRICE nhân 10 cho giá 985 cho trái phiếu mệnh giá 1000.
Setup bảng tính đầy đủ:
Cột A: Ngày thanh toán Cột B: Ngày đáo hạn Cột C: Tỷ lệ chiết khấu Cột D: Mệnh giá Cột E: Giá mỗi 100 (TBILLPRICE) Cột F: Giá thực tế
Công thức tại F2:
=E2 * (D2 / 100)
Hoặc gộp làm một:
=TBILLPRICE(A2, B2, C2) * (D2 / 100)
Tách riêng giúp debug dễ hơn. Nếu E2 sai, vấn đề ở TBILLPRICE. Nếu E2 đúng nhưng F2 sai, vấn đề ở phép nhân tỷ lệ.
Định dạng kết quả không đúng
Kết quả TBILLPRICE là số thập phân như 98.502345, nhưng hiển thị General format khó đọc. Định dạng Currency hoặc Number với 2 chữ số thập phân giúp đọc rõ hơn.
Chọn ô kết quả, nhấn Ctrl+1, chọn Number, đặt Decimal places = 2. Hoặc nhấn Alt+H+A+N, chọn Currency, chọn ký hiệu tiền tệ phù hợp.
Kết quả từ 98.502345 hiển thị 98.50 hoặc $98.50 tuỳ format. Với mệnh giá lớn như 1000 đơn vị, format Currency hiển thị $985.02 dễ đọc hơn 985.023449.
Format theo locale:
Nếu làm việc với trái phiếu VND, chọn Currency format với ký hiệu ₫. Kết quả hiển thị 98.500.000₫ cho mệnh giá 100.000.000₫, phù hợp với cách đọc tiền Việt.
Custom format cho chuẩn nghìn:
#,##0.00
Nhập tại Custom format trong Format Cells. Kết quả 985023.45 hiển thị 985,023.45 dễ đọc hơn.
Không kiểm tra tính toán thủ công
TBILLPRICE sử dụng công thức:
Giá = 100 × (1 - (discount × DSM / 360))
DSM là số ngày từ thanh toán đến đáo hạn. Kiểm tra thủ công giúp phát hiện lỗi nhập liệu.
Ví dụ verification:
Ngày thanh toán: 01/03/2025 Ngày đáo hạn: 01/06/2025 Chiết khấu: 4% (0.04)
Tính DSM: Từ 01/03/2025 đến 01/06/2025 là 92 ngày. Kiểm tra trong Excel:
=B2 - A2
Kết quả phải là 92.
Áp dụng công thức:
Giá = 100 × (1 - (0.04 × 92 / 360))
Giá = 100 × (1 - 0.0102222)
Giá = 100 × 0.9897778
Giá = 98.98
So sánh với kết quả TBILLPRICE. Nếu chênh lệch lớn, kiểm tra lại các đối số. Sai số làm tròn nhỏ dưới 0.01 chấp nhận được.
Debug formula với Evaluate:
Chọn ô chứa TBILLPRICE, nhấn Alt+M+V để mở Evaluate Formula. Excel hiển thị từng bước tính toán. Xem Excel đọc ngày là giá trị nào, tỷ lệ chiết khấu được nhận đúng hay sai.
Nếu Excel hiển thị ngày là text thay vì số, biết ngay vấn đề nằm ở date format. Nếu tỷ lệ chiết khấu là 4 thay vì 0.04, biết cần sửa đối số thứ ba.
Bỏ qua version Excel và compatibility
TBILLPRICE có sẵn từ Excel 2003 trở đi. Nếu file được mở trên Excel cũ hơn, hàm không hoạt động. Lỗi NAME xuất hiện thay vì VALUE hoặc NUM.
Kiểm tra phiên bản Excel đang dùng: File > Account > About Excel. Phiên bản hiển thị ở đây. TBILLPRICE hoạt động trên Excel 2007, 2010, 2013, 2016, 2019, 2021, và Microsoft 365.
Compatibility mode issues:
File lưu định dạng Excel 97-2003 (.xls) có thể không hỗ trợ đầy đủ. Lưu lại định dạng .xlsx hoặc .xlsm để đảm bảo tương thích. File > Save As > chọn Excel Workbook (.xlsx).
Nếu cần chia sẻ với người dùng Excel cũ, tính toán thủ công và paste values thay vì giữ công thức. Copy ô kết quả, Paste Special > Values. Kết quả giữ nguyên dưới dạng số, không phụ thuộc hàm TBILLPRICE.
Quên kiểm tra kết quả hợp lý
Giá trái phiếu kho bạc luôn nằm dưới 100 vì được bán với giá chiết khấu. Nếu TBILLPRICE cho kết quả 102 hoặc 110, chắc chắn đối số sai.
Ngưỡng kiểm tra:
Với tỷ lệ chiết khấu thông thường 0.5% – 8%, giá trái phiếu kho bạc nằm trong khoảng 97-99.9 cho kỳ hạn dưới 180 ngày. Kỳ hạn dài hơn và tỷ lệ chiết khấu cao hơn cho giá thấp hơn, nhưng luôn dưới 100.
Kết quả trên 100 hoặc âm báo hiệu:
- Tỷ lệ chiết khấu nhập sai (4 thay vì 0.04)
- Ngày tháng đảo ngược
- Công thức nhân sai với mệnh giá trước khi tính
Sanity check với IF:
Wrap công thức trong kiểm tra:
=IF(TBILLPRICE(A2,B2,C2)>100, "Lỗi: Giá không hợp lý", TBILLPRICE(A2,B2,C2))
Hoặc highlight ô kết quả bằng Conditional Formatting. Chọn ô kết quả, Home > Conditional Formatting > New Rule > Format cells where:
Cell Value > 100 hoặc < 90
Chọn màu đỏ để cảnh báo giá trị bất thường.
Các lỗi ít gặp nhưng khó debug
Lỗi REF:
Xuất hiện khi công thức tham chiếu ô bị xoá. Nếu công thức là TBILLPRICE(A2, B2, C2) nhưng cột A bị xoá, công thức trở thành TBILLPRICE(REF!, B2, C2).
Fix bằng Undo (Ctrl+Z) hoặc nhập lại các ô bị mất. Sử dụng named ranges giúp tránh lỗi này. Đặt tên cho A2 là NgayThanhToan, công thức thành:
=TBILLPRICE(NgayThanhToan, NgayDaoHan, TyLeChietKhau)
Xoá cột không ảnh hưởng named range.
Lỗi CIRCULAR REFERENCE:
Hiếm gặp với TBILLPRICE nhưng xảy ra khi công thức tự tham chiếu. Ví dụ, đặt TBILLPRICE tại ô A2 nhưng công thức lại tham chiếu A2 trong đối số.
Excel cảnh báo circular reference khi xảy ra. Tìm ô bị ảnh hưởng bằng Formulas > Error Checking > Circular References. Sửa bằng cách tách ô kết quả riêng khỏi ô đầu vào.
Date calculation với timezone:
Excel không hỗ trợ timezone trong date. Nếu làm việc với trái phiếu quốc tế, chuyển ngày về cùng timezone trước khi nhập. Hai ngày có thể chênh 1 ngày do timezone, ảnh hưởng tính toán DSM.
Cải thiện workflow với TBILLPRICE
Setup một template chuẩn giúp tránh lỗi lặp lại. Tạo file Excel với:
Row 1: Headers (Ngày thanh toán, Ngày đáo hạn, Tỷ lệ chiết khấu, Mệnh giá, Giá/100, Giá thực tế) Row 2: Data và formulas Row 3+: Thêm trái phiếu mới
Công thức template:
E2: =TBILLPRICE(A2, B2, C2)
F2: =E2 * (D2 / 100)
Copy row 2 xuống các row khác. Chỉ cần nhập A, B, C, D, các cột E và F tự động tính.
Data Validation cho inputs:
Ô A2, B2: Date format validation Ô C2: Decimal between 0 and 1 Ô D2: Number greater than 0
Setup validation một lần, copy template cho projects mới. Giảm 80% lỗi nhập liệu từ đầu.
Conditional Formatting cho warnings:
Highlight ô E2 màu vàng nếu giá ngoài khoảng 95-100:
=OR(E2<95, E2>100)
Highlight ô với màu đỏ nếu lỗi:
=ISERROR(E2)
Màu sắc giúp phát hiện vấn đề ngay khi nhìn vào bảng tính.
Kết quả sau khi sửa các sai lầm
Sau khi áp dụng date format đúng, kiểm tra đối số, và setup validation, lỗi TBILLPRICE giảm từ mỗi lần tính xuống gần như không. File của tôi có 50 trái phiếu tính toán hàng ngày không còn lỗi VALUE hoặc NUM trong 6 tháng.
Thời gian debug giảm từ 10 phút mỗi file xuống 30 giây. Hầu hết vấn đề bắt được bởi Data Validation trước khi công thức chạy. Template chuẩn cho phép copy và thay đổi giá trị mà không lo sai công thức.
Hàm TBILLPRICE hoạt động đáng tin cậy trong Excel 2016 trở lên khi bạn nhập đúng format. Kiểm tra date format, tỷ lệ chiết khấu dưới dạng thập phân, và thứ tự ngày trước khi tính. Setup validation và conditional formatting giúp bắt lỗi sớm.