Các câu hỏi về thời gian, tính toán giờ, ngày, tháng, năm được post ở đây

Liên hệ QC
Xin lạy cả nhà, chả hiểu mục đích cần thêm công thức để làm gì, +1 nó tệ hại, dở hơi thế nào mà không cho nó tham gia với?
 
Bác thấy nguyên cột là chưa cộng 1. Không chỉ sai dòng 76 mà sai tất cả dòng vì việc này. Cho nên bác mới muốn nhìn thấy công thức.
Thứ hai, mi nói "Mà tính ra giải pháp bác đưa dở hơn cái hiện có, vì ko thể dùng 1 công thức kéo xuống hết độ dài dữ liệu." thì câu này có nghĩa là không kéo công thức xuống được (fill down), điều này rất vô lý. Thế nên bác yêu cầu đưa file.
Hai điều này mi không nói tới?

Còn dòng 76 thì đúng là bác chưa đặt ra hết các trường hợp, nhưng logic nằm ở chỗ nhân 12 cho 1 năm thì đã có. Người thông minh mà hiểu logic rồi thì tự phát triển thêm. Phải thấy chỗ sai, hiểu chỗ sai thì mới làm được cái đúng chứ? Nếu sai thì sổ toẹt rồi cứ dùng cách cũ thì lại sai như cột E hình 606.
Con ko +1 vì bài ongke giúp con biết >12 là ko dùng dc CT bác rồi. Cho nên con cố tình ko +1 để nó lòi ra H?J (dòng 78).
Con nói kèm năm là nói chung chung, vì data ko được biết trước nên dateifd +1 nó tự ràng dc việc cross năm trong khi hàm bác, muốn thì phải ràng thêm tùm lum nên con nói dở hơn.
Vấn đề bác thấy chữ sai kèm tên bác là bác nổi nóng rồi, trong khi con đang kết luận cách nào cũng sai.
Bài đã được tự động gộp:

Xin lạy cả nhà, chả hiểu mục đích cần thêm công thức để làm gì, +1 nó tệ hại, dở hơi thế nào mà không cho nó tham gia với?
Vì học vẹt datedif nên ko biết do chưa biết cách dùng hàm hay là sẽ có hàm khác phù hợp hơn để ko cần +1. Lý do cũng có nói rồi, bạn lội lại sẽ biết
 
Lần chỉnh sửa cuối:
Con nói kèm năm là nói chung chung, vì data ko được biết trước nên dateifd +1 nó tự ràng dc việc cross năm trong khi hàm bác, muốn thì phải ràng thêm tùm lum nên con nói dở hơn.
DateDif +1 vẫn sai khi tháng cuối không đủ tháng (minh chứng ở cột E hình 606). Cộng 1 rồi vẫn thiếu. Vì DateDif còn quan tâm đến số ngày của từng tháng trong khi hàm Month chỉ ngó đến tháng. Thêm yếu tố năm thì phải tính thêm. không ràng thêm thì DateDif sai tè le, ở đó mà xài được.
Nói thêm: Mi viết tiếng Việt dở hơn tiếng Anh thì phải. Không kéo xuống được, nghĩa là không kéo fill down được. Thế mới nổi xung. Muốn nói ý của mi thì phải nói: Công thức chưa phù hợp với tất cả trường hợp của dữ liệu. Cụ thể là trường hợp abc, xyz. Lại còn sửa công thức gốc (không cộng 1) rồi la lên sai!
Đừng học vẹt nữa, đọc kỹ lý thuyết đây:

DateDif với tham số ngày (d)
Cái này dễ, là khoảng thời gian tính bằng ngày giữa 2 mốc ngày. Lưu ý quy ước ngày của Excel trong vài bài gần đây bác có nhắc.

DateDif với tham số tháng (m)
Nó tính số tháng nguyên trong khoảng thời gian giữa 2 ngày bất kỳ, đủ tháng mới tính, dù 30/ 31 ngày cũng trở thành 0. Thế nên từ ngày 01/01 đến ngày 31/01 theo quy ước ngày chỉ có 30 ngày, nên sẽ là 0 tháng.
Vậy thì xem hình sau đây

1724428969930.png

Cột E cộng 1 vì muốn tính cả tháng đầu thì không nói. Nhưng cột D thuần DateDif cũng từ tháng 2 đến tháng 9, nhưng lúc thì 6, lúc thì 7. Vì sau khi đủ 6 tháng thì tháng thứ 7 không đủ 30 hoặc 31 ngày sẽ không tính.
Để ý thì sẽ thấy nếu dùng hàm Day lấy ngày 1 > ngày 2 thì thường bị thiếu.
Đặc biệt:

Xem hình dưới đây:

1724431001699.png

Có khi 30 ngày là đủ tháng, cũng có khi phải 31 mới đủ. Lý do là nó xem ngày cuối tháng gần ngày kết thúc nhất là bao nhiêu, thì phải bằng đó mới đủ:
Dòng 1 và 2: ngày kết thúc là tháng 9, ngày cuối tháng 8 là 31, vậy phải 31 mới đủ.
Dòng 3 và 4: Ngày kết thúc là tháng 10, ngày cuối tháng 9 là 30, vậy chỉ cần 30 là đủ.

Còn nữa: Nếu ngày kết thúc là tháng 3, thì Excel lấy ngày cuối tháng 2. Nhưng nó còn xét năm nhuận hay không nữa

1724431646090.png

DateDif với tham số năm(y)

Tương tự như tham số m, phải đủ 12 tháng mới tính 1 năm, thiếu 1 tháng là thành zero. Mà tháng cũng phải đủ số ngày như tham số m. 11 tháng 30 ngày cũng là zero năm.
 
Lần chỉnh sửa cuối:
Web KT

Bài viết mới nhất

Back
Top Bottom