Ðề: Ngày đến hạn tính như thế nào?
Xác nhận công thức tính của tôi hôm trước là trật lất rồi.
Hàm datediff("q", #12/9/08#, #12/10/08#) sẽ =1.
Lý do: tháng 9 thuộc quý 3 còn tháng 10 thuộc quý 4 => đã sang quý khác => kết quả = 1 chứ không phải = 0.
Tính chất này hơi khác 1 chút so với hàm dateAdd().
Đề nghị dùng hàm IIF() hoặc 1 đoạn code để kiểm tra xem có rơi vào trường hợp trên hay không.
Nếu dùng dateAdd("q", 1, #12/9/08#) thì kết quả sẽ là ngày 12/12/08.
VÀ như vậy 12/12/08 > 12/10/08. Ta sẽ dựa vào tính chất này mà kiểm ra.
Số lần 3 tháng (phần chẵn, phần nguyên) từ ngày-gửi đến ngày-rút là:
num_test = dateDiff("q", ngaygui, ngayrut)
num_phanchan = IIF(dateAdd("q", num_test, ngaygui ) > ngayrut, num_test -1, num_test )
Ngày mà chấm dứt tính lãi theo quý, chuyển sang tính lãi theo ngày (phần lẻ) là:
d_ngayX = dateAdd("q", num_phanchan, ngaygui)
Và số ngày tính lãi theo ngày là:
num_phanle = dateDiff("d", d_ngayX , ngayrut).
Gộp lại để thành 1 dòng công thức:
num_phanchan = IIF(dateAdd("q", dateDiff("q", ngaygui, ngayrut), ngaygui) > ngayrut, dateDiff("q", ngaygui, ngayrut) - 1, dateDiff("q", ngaygui, ngayrut) )
num_phanle = dateDiff("d", dateAdd("q", IIF(dateAdd("q", dateDiff("q", ngaygui, ngayrut), ngaygui) > ngayrut, dateDiff("q", ngaygui, ngayrut) - 1, dateDiff("q", ngaygui, ngayrut) ), ngaygui), ngayrut).
anh Muontennguoi ơi! Hình như công thức của anh có vấn đề thì phải, em áp dụng theo công thức datediff("d", dateADD("q", datediff("q", ngaygui, ngayrut) , ngaygui), ngayrut) --> kết quả sai anh ah.
VD: em tính từ 12/09/2007 -> 12/09/2008 = 0 ngày, hay 12/09/2008 -> 12/10/2008 = -61 ngày.
Em có gửi file mẫu đây ah: http://www.mediafire.com/download.php?bwbzsvhekns
Anh xem em làm sai hay công thức của anh sai nhé.
Xác nhận công thức tính của tôi hôm trước là trật lất rồi.
Hàm datediff("q", #12/9/08#, #12/10/08#) sẽ =1.
Lý do: tháng 9 thuộc quý 3 còn tháng 10 thuộc quý 4 => đã sang quý khác => kết quả = 1 chứ không phải = 0.
Tính chất này hơi khác 1 chút so với hàm dateAdd().
Đề nghị dùng hàm IIF() hoặc 1 đoạn code để kiểm tra xem có rơi vào trường hợp trên hay không.
Nếu dùng dateAdd("q", 1, #12/9/08#) thì kết quả sẽ là ngày 12/12/08.
VÀ như vậy 12/12/08 > 12/10/08. Ta sẽ dựa vào tính chất này mà kiểm ra.
Số lần 3 tháng (phần chẵn, phần nguyên) từ ngày-gửi đến ngày-rút là:
num_test = dateDiff("q", ngaygui, ngayrut)
num_phanchan = IIF(dateAdd("q", num_test, ngaygui ) > ngayrut, num_test -1, num_test )
Ngày mà chấm dứt tính lãi theo quý, chuyển sang tính lãi theo ngày (phần lẻ) là:
d_ngayX = dateAdd("q", num_phanchan, ngaygui)
Và số ngày tính lãi theo ngày là:
num_phanle = dateDiff("d", d_ngayX , ngayrut).
Gộp lại để thành 1 dòng công thức:
num_phanchan = IIF(dateAdd("q", dateDiff("q", ngaygui, ngayrut), ngaygui) > ngayrut, dateDiff("q", ngaygui, ngayrut) - 1, dateDiff("q", ngaygui, ngayrut) )
num_phanle = dateDiff("d", dateAdd("q", IIF(dateAdd("q", dateDiff("q", ngaygui, ngayrut), ngaygui) > ngayrut, dateDiff("q", ngaygui, ngayrut) - 1, dateDiff("q", ngaygui, ngayrut) ), ngaygui), ngayrut).