[Hỏi đáp] cách tính số ngày và tháng giữa 2 mốc thời gian kèm điều kiện (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

ancrayzy

Thành viên chính thức
Tham gia
15/9/08
Bài viết
67
Được thích
4
Chào công động đồng GPE,
Mình tạo file excel tiến độ nhằm tính khoảng thời gian giữa các mốc công việc.
Mình giải thích nội dung file như sau:
1632302903087.png
-----------------
1. Cột A5-A9: là tổng hợp các loại công việc
2. Bảng B10-B14: khoảng thời gian bắt đầu công việc
3. Bảng C10-C14: khoảng thời gian kết thúc công việc
4. Bảng D10-D14: diễn giải hạng mục công việc cần thực hiện (có thể lặp lại nhiều lần)
3. Cột E5-E9: cần lập công thức sao cho thể hiện được kết quả là số tháng và số ngày làm việc dựa vào thời gian bắt đầu và kết thúc của công việc đó. Trường hợp có 2 hay nhiều task của cùng 1 loại công việc sẽ tính từ ngày sớm nhất đến ngày trễ nhất của task công việc đó.

-----------------
Do là file tiến độ nên: 22/9/2021 đến 22/9/2021 : tính 1 ngày.
-----------------
Công thức mình lập trong bảng không hiểu bị lỗi gì vẫn thể hiện là: 5 Months 30 Days (182 Days)
Mong mọi người hướng dẫn cách xử lý.
-----------------
Mình có tại 1 bài tuy nhiên áp dụng vào vấn đề của mình thì vẫn chưa giải quyết được nên xin phép tạo 1 bài mới , bài viết cũ mình đây
https://www.giaiphapexcel.com/diendan/threads/hỏi-cách-tính-ra-tháng-và-ngày-giữa-2-thời-điểm.157662/#post-1046414

Chúc mọi người có 1 buổi chiều vui vẻ và luôn giữ sức khỏe, bình an trong mùa dịch nhé.
 

File đính kèm

Nhìn công thức ở E3
Mã:
=DATEDIF(E1;E2;"m")&" Months "&DATEDIF(E1;E2;"md")+1&" Days"&" ("&E2-E1&" Days"&")"
thì thấy bạn làm không chính xác.
Bạn viết
Do là file tiến độ nên: 22/9/2021 đến 22/9/2021 : tính 1 ngày.
Nếu là E2-E1 thì với 2 ngày trên ta có E2-E1 = 0. Mà bạn lại muốn tính là 1. Vậy phải là E2-E1+1.

Như thế E3 = 9 Months 30 Days (303 Days) (A)
Từ 01.08.2022 tới 30.05.2023 có 31 + 30 + 31 + 30 + 31 + 31 + 28 + 31 + 30 (9 tháng) + 30 = 303
Như vậy (A) đúng.

Với qui ước trên thì sửa lại công thức ở E5 ta có 5 Months 30 Days (183 Days). (B)

Từ 01.08.2022 tới 30.01.2023 có 31 + 30 + 31 + 30 + 31 (5 tháng) + 30 = 183

Vậy (A) là chính xác.

Nếu bạn cho là có lỗi gì thì nói cụ thể, chi tiết nhé.
 
Lúc 0 và 1 thì "mông đây" là số ít chứ.
 
Nhìn công thức ở E3
Mã:
=DATEDIF(E1;E2;"m")&" Months "&DATEDIF(E1;E2;"md")+1&" Days"&" ("&E2-E1&" Days"&")"
thì thấy bạn làm không chính xác.
Bạn viết

Nếu là E2-E1 thì với 2 ngày trên ta có E2-E1 = 0. Mà bạn lại muốn tính là 1. Vậy phải là E2-E1+1.

Như thế E3 = 9 Months 30 Days (303 Days) (A)
Từ 01.08.2022 tới 30.05.2023 có 31 + 30 + 31 + 30 + 31 + 31 + 28 + 31 + 30 (9 tháng) + 30 = 303
Như vậy (A) đúng.

Với qui ước trên thì sửa lại công thức ở E5 ta có 5 Months 30 Days (183 Days). (B)

Từ 01.08.2022 tới 30.01.2023 có 31 + 30 + 31 + 30 + 31 (5 tháng) + 30 = 183

Vậy (A) là chính xác.

Nếu bạn cho là có lỗi gì thì nói cụ thể, chi tiết nhé.
Cảm ơn bạn đã xem bài và trao đổi.

Mình xin giải thích thêm như sau:
Kết quả gồm 2 phần:
- Phần ngoài dấu ngoặc: x month y day (được hiểu kết quả là số tháng tính tròn + số ngày lẻ giữa ngày bắt đầu và ngày kết thúc). Qui định 1 tháng có 30 ngày
- Phần trong dấu ngoặc: z day (thể hiện số ngày giữa ngày bắt đầu và ngày kết thúc)

Vấn đề trong file mình như sau:

1. Kết quả ô E5, E7 không gom 30 ngày thành 1 tháng mà vẫn thể hiện dư ra 30 ngày
2. Đối với loại công việc Su tại ô D14 được thể hiện trong bảng từ Feb 01, 2023 đến Feb 01, 2023 nên kết quả đúng sau khi tham chiếu với ô A8 trả về kết quả trong ô E8 đúng ra phải là: 0 Months 1 days (1 days)
3. Đối với loại công việc Fi không được thể hiện trong bảng B11:D14 nên kết quả đúng sau khi tham chiếu với ô A9 trả về kết quả trong ô E9 đúng ra phải là: 0 Months 0 days (0 days)

# Do file bị sai chính tả ngoài ý muốn nên mình ko đề cập vấn đề chính tả nhé
 
Cảm ơn bạn đã xem bài và trao đổi.

Mình xin giải thích thêm như sau:
Kết quả gồm 2 phần:
- Phần ngoài dấu ngoặc: x month y day (được hiểu kết quả là số tháng tính tròn + số ngày lẻ giữa ngày bắt đầu và ngày kết thúc). Qui định 1 tháng có 30 ngày
Ai qui định? 9 tháng là 9 tháng, cụ thể thì có tháng 31, có tháng 30, 28 hay 29 ngày, tùy khoảng thời gian cụ thể.

Còn nếu bạn qui định tháng 30 ngày thì dễ rồi:

SỐ THÁNG = INT((ngày cuối - ngày đầu + 1)/30)
SỐ NGÀY = MOD(ngày cuối - ngày đầu + 1; 30)

Thế thôi.
 
Ai qui định? 9 tháng là 9 tháng, cụ thể thì có tháng 31, có tháng 30, 28 hay 29 ngày, tùy khoảng thời gian cụ thể.

Còn nếu bạn qui định tháng 30 ngày thì dễ rồi:

SỐ THÁNG = INT((ngày cuối - ngày đầu + 1)/30)
SỐ NGÀY = MOD(ngày cuối - ngày đầu + 1; 30)

Thế thôi.
Cảm ơn bạn, gọi giả định thì đúng hơn, 1 tháng có 30 ngày là cách mình làm cho bài toán dễ xử lý.
Nhưng nếu tính đúng số ngày trong tháng (28 / 30 /31) thì trong trường hợp như sau, mình ví dụ:
Ngày bắt đầu 14/2/2021, ngày kết thúc 22/9/2021 thì kết quả sẽ thế nào.
Phân tích cụ thể
14/2/2021 - 28/2/2021 : 15 ngày
1/3/2021 - 31/8/2021 : 6 tháng (gồm các tháng 3-4-5-6-7-8)
1/9/2021 - 22/9/2021 : 23 ngày
Vậy theo bạn kết quả phải như thế nào là đúng, và như thế này mới đúng là vấn đề mình cần hỏi cho bài viết này
a. 6 tháng 38 ngày
b. 7 tháng 8 ngày (nếu tính 1 tháng 30 ngày)
c. 7 tháng 7 ngày (nếu tính 1 tháng có 31 ngày)
 
Cảm ơn bạn, gọi giả định thì đúng hơn, 1 tháng có 30 ngày là cách mình làm cho bài toán dễ xử lý.
Nhưng nếu tính đúng số ngày trong tháng (28 / 30 /31) thì trong trường hợp như sau, mình ví dụ:
Ngày bắt đầu 14/2/2021, ngày kết thúc 22/9/2021 thì kết quả sẽ thế nào.
Phân tích cụ thể
14/2/2021 - 28/2/2021 : 15 ngày
1/3/2021 - 31/8/2021 : 6 tháng (gồm các tháng 3-4-5-6-7-8)
1/9/2021 - 22/9/2021 : 23 ngày
Vậy theo bạn kết quả phải như thế nào là đúng, và như thế này mới đúng là vấn đề mình cần hỏi cho bài viết này
a. 6 tháng 38 ngày
b. 7 tháng 8 ngày (nếu tính 1 tháng 30 ngày)
c. 7 tháng 7 ngày (nếu tính 1 tháng có 31 ngày)
Tôi đã nói quá rõ rồi mà.

1. Nếu là tôi thì không có chuyện qui ước hay qui định gì cả. Tức số tháng và số ngày lẻ tôi sẽ tính bằng DATEDIF.

2. Nếu bạn có qui ước hay qui định do ai đó áp đặt là THÁNG LUÔN CÓ 30 ngày thì tôi sẽ khuyên dùng công thức như tôi đã đưa ra trong bài #6.

Còn quyết định làm theo cách nào, kể cả cách không được nêu ra ở trên, là do bạn quyết định.
 
Web KT

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

Back
Top Bottom