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

laohiep

Thành viên chính thức
Tham gia ngày
29 Tháng mười một 2008
Bài viết
58
Được thích
12
Điểm
0
Mình có mong muốn như sau:
ngày đếnngày điKết quảsử dụng hàm01/01/0823/06/09539=DATEDIF($C20,$D20,"d")
nhưng mình muốn rằng kết quả sẽ cho là 1 năm, 5 tháng và 22 ngày
giúp mình lập công thức theo nguyện vọng trên nhá
Cảm ơn các bạn!
 

cop_kh

Hôm qua em đến trường...
Tham gia ngày
6 Tháng mười 2008
Bài viết
816
Được thích
984
Điểm
860
Nơi ở
Nha Trang.
Mình có mong muốn như sau:
ngày đếnngày điKết quảsử dụng hàm01/01/0823/06/09539=DATEDIF($C20,$D20,"d")
nhưng mình muốn rằng kết quả sẽ cho là 1 năm, 5 tháng và 22 ngày
giúp mình lập công thức theo nguyện vọng trên nhá
Cảm ơn các bạn!


Số năm = DATEDIF($C20,$D20,"y")
Số tháng =
DATEDIF($C20,$D20,"ym")
Số ngày =
DATEDIF($C20,$D20,"md")

Rồi nối lại cho theo ý của bạn thôi, nối giúp bạn luôn nhé:
=DATEDIF(C20;D20;"y")&" năm, "&DATEDIF(C20;D20;"ym")&" tháng "&DATEDIF(C20;D20;"md")&" và ngày"
 
Chỉnh sửa lần cuối bởi điều hành viên:

CATHY

Thành viên chính thức
Tham gia ngày
13 Tháng chín 2007
Bài viết
52
Được thích
8
Điểm
0
Các câu hỏi về thời gian, tính toán giờ, ngày, tháng, năm được post ở đây

Chào các Bạn !

Công việc của mình hàng tháng phải làm danh sách thanh tóan tiền BHXH cho công nhân , nhưng mình đang gặp khó khăn tính số ngày nghỉ BHXH, vì Cty mình số lượng CN qúa đông , nên tính theo phương pháp thủ công thì rất cực . Vì vậy mình cần sự giúp đỡ của các Bạn, trong file đính kèm nếu dùng công thức thỉ phải làm sao ?
Rất cảm ơn các Bạn
 

File đính kèm

huuthang_bd

Chuyên gia GPE
Tham gia ngày
10 Tháng chín 2008
Bài viết
7,301
Được thích
8,294
Điểm
860
Nơi ở
TP.HCM
Chào các Bạn !

Công việc của mình hàng tháng phải làm danh sách thanh tóan tiền BHXH cho công nhân , nhưng mình đang gặp khó khăn tính số ngày nghỉ BHXH, vì Cty mình số lượng CN qúa đông , nên tính theo phương pháp thủ công thì rất cực . Vì vậy mình cần sự giúp đỡ của các Bạn, trong file đính kèm nếu dùng công thức thỉ phải làm sao ?
Rất cảm ơn các Bạn
Bạn xem trong file. Phải liệt kê ra các ngày nghỉ lễ.
 

File đính kèm

SA_DQ

/(hông là gì!
Thành viên danh dự
Tham gia ngày
8 Tháng sáu 2006
Bài viết
11,422
Được thích
17,333
Điểm
1,860
Mình viết cho bạn hàm người dùng đây

PHP:
Option Explicit
Function SoNgayNghi(FromDate As Date, ToDate As Date)
 ReDim dateGov(1 To 10) As Date
 Dim Jj As Integer, Zz As Integer, Ww As Byte
 
 dateGov(1) = DateSerial(Year(Date), 1, 1)
 dateGov(2) = DateSerial(Year(Date), 2, 1) ' Tet Nguyen Dan:'
 dateGov(3) = DateSerial(Year(Date), 2, 2) 'Hay Tu Dien Ngay Duong Lich Hang Nam'
 dateGov(4) = DateSerial(Year(Date), 2, 3) '   Nhu Tren '
 dateGov(5) = DateSerial(Year(Date), 2, 4) '   Nhu Tren '
 
 dateGov(6) = DateSerial(Year(Date), 3, 10) 'Hay Tu Dien Ngay Duong Lich Hang Nam'
 dateGov(7) = DateSerial(Year(Date), 4, 30)
 dateGov(8) = DateSerial(Year(Date), 5, 1)
 dateGov(9) = DateSerial(Year(Date), 9, 2)
 
 If FromDate > ToDate Then
   dateGov(10) = FromDate
   FromDate = ToDate:         ToDate = dateGov(10)
 End If
 Zz = ToDate - FromDate
 For Jj = 0 To Zz
   For Ww = 1 To 9
      If FromDate + Jj = dateGov(Ww) Then
         If Weekday(dateGov(Ww)) > 1 Then _
            SoNgayNghi = SoNgayNghi - 1
         Exit For
      End If
   Next Ww
   If Weekday(FromDate + Jj) > 1 Then _
      SoNgayNghi = SoNgayNghi + 1
 Next Jj
End Function

Những chú í khi sử dụng:


(*) Hàm chỉ tính đúng trong năm; Nếu muốn tính chồng lấn 2 năm thì phải viết khác;

(*) Các ngày nghỉ âm lịch hàng năm, bạn phải tra lịch ra ngày dương & đổi trị vô những dòng cần thiết; Đó là 4 ngày Tết nguyên đán & Ngày zổ Tổ Hùng Vương.

Xem thêm trong file đính kèm
 

File đính kèm

doanhhoang79

Thành viên hoạt động
Tham gia ngày
31 Tháng ba 2008
Bài viết
142
Được thích
18
Điểm
0
Tuổi
41
PHP:
Option Explicit
Function SoNgayNghi(FromDate As Date, ToDate As Date)
 ReDim dateGov(1 To 10) As Date
 Dim Jj As Integer, Zz As Integer, Ww As Byte
 
 dateGov(1) = DateSerial(Year(Date), 1, 1)
 dateGov(2) = DateSerial(Year(Date), 2, 1) ' Tet Nguyen Dan:'
 dateGov(3) = DateSerial(Year(Date), 2, 2) 'Hay Tu Dien Ngay Duong Lich Hang Nam'
 dateGov(4) = DateSerial(Year(Date), 2, 3) '   Nhu Tren '
 dateGov(5) = DateSerial(Year(Date), 2, 4) '   Nhu Tren '
 
 dateGov(6) = DateSerial(Year(Date), 3, 10) 'Hay Tu Dien Ngay Duong Lich Hang Nam'
 dateGov(7) = DateSerial(Year(Date), 4, 30)
 dateGov(8) = DateSerial(Year(Date), 5, 1)
 dateGov(9) = DateSerial(Year(Date), 9, 2)
 
 If FromDate > ToDate Then
   dateGov(10) = FromDate
   FromDate = ToDate:         ToDate = dateGov(10)
 End If
 Zz = ToDate - FromDate
 For Jj = 0 To Zz
   For Ww = 1 To 9
      If FromDate + Jj = dateGov(Ww) Then
         If Weekday(dateGov(Ww)) > 1 Then _
            SoNgayNghi = SoNgayNghi - 1
         Exit For
      End If
   Next Ww
   If Weekday(FromDate + Jj) > 1 Then _
      SoNgayNghi = SoNgayNghi + 1
 Next Jj
End Function
Những chú í khi sử dụng:


(*) Hàm chỉ tính đúng trong năm; Nếu muốn tính chồng lấn 2 năm thì phải viết khác;

(*) Các ngày nghỉ âm lịch hàng năm, bạn phải tra lịch ra ngày dương & đổi trị vô những dòng cần thiết; Đó là 4 ngày Tết nguyên đán & Ngày zổ Tổ Hùng Vương.

Xem thêm trong file đính kèm
Tiện đây cho em hỏi luôn, nếu những ngày nghỉ lễ tết trung vào ngày thứ 7, CN thì những ngày kế tiếp được trừ bù thì phải dùng code như thế nào hả anh?
 

SA_DQ

/(hông là gì!
Thành viên danh dự
Tham gia ngày
8 Tháng sáu 2006
Bài viết
11,422
Được thích
17,333
Điểm
1,860
Tiện đây cho em hỏi luôn, nếu những ngày nghỉ lễ tết trung vào ngày thứ 7, CN thì những ngày kế tiếp được trừ bù thì phải dùng code như thế nào hả anh?
Nghe hình như câu hỏi của bạn khác với ý định của chủ Topic đó nha!
Chủ Topic muốn tính các ngày nghỉ chế độ được hưởng BHXH, như Ốm đau, thai sản, phép năm, RC, . . .

Vậy bạn cho biết khái niệm trừ bù của bạn đi; Có vậy chúng ta sẽ hiểu nhau dễ hơn!
:-= --=0 --=0 :-=
 

doanhhoang79

Thành viên hoạt động
Tham gia ngày
31 Tháng ba 2008
Bài viết
142
Được thích
18
Điểm
0
Tuổi
41
Nghe hình như câu hỏi của bạn khác với ý định của chủ Topic đó nha!
Chủ Topic muốn tính các ngày nghỉ chế độ được hưởng BHXH, như Ốm đau, thai sản, phép năm, RC, . . .

Vậy bạn cho biết khái niệm trừ bù của bạn đi; Có vậy chúng ta sẽ hiểu nhau dễ hơn!
:-= --=0 --=0 :-=
Em biết là không đúng chủ đề nhưng nếu có lệnh chỉ lệch một tí xíu thôi. Cái quan trọng là tác giả và mọi người hình dung ra được bác ạ.

Ý của em là: Giả sử ngày lễ 30/4 & 01/05 trùng vào ngày T7, CN thì 02 ngày tiếp theo là thứ hai, thứ ba sẽ không tính vào các ngày nghỉ chế độ được hưởng BHXH, như Ốm đau, thai sản, phép năm, RC, . . .đại loại là như vậy?
 

CATHY

Thành viên chính thức
Tham gia ngày
13 Tháng chín 2007
Bài viết
52
Được thích
8
Điểm
0
Tinh so ngay

Bạn xem trong file. Phải liệt kê ra các ngày nghỉ lễ.
Cảm ơn bạn huuthang, mặc dù mình không hiểu được công thức nhưng mình có thể sử dụng được cho công việc của mình , rất nhanh và tiện lợi so với cách mình làm trước đây. Mình cũng cảm ơn ban SA_DQ , thật tình VBA thì mình "mù tịt" mình không biết phải áp dụng như thế nào dù bạn đã cho code sẵn. Các bạn rất nhiệt tình, qua diễn đàn này mình học được rất nhiều điều bổ ích. Một lần nữa cảm ơn các Bạn nhiều nha!
 

huuthang_bd

Chuyên gia GPE
Tham gia ngày
10 Tháng chín 2008
Bài viết
7,301
Được thích
8,294
Điểm
860
Nơi ở
TP.HCM
Em biết là không đúng chủ đề nhưng nếu có lệnh chỉ lệch một tí xíu thôi. Cái quan trọng là tác giả và mọi người hình dung ra được bác ạ.

Ý của em là: Giả sử ngày lễ 30/4 & 01/05 trùng vào ngày T7, CN thì 02 ngày tiếp theo là thứ hai, thứ ba sẽ không tính vào các ngày nghỉ chế độ được hưởng BHXH, như Ốm đau, thai sản, phép năm, RC, . . .đại loại là như vậy?
Đơn giản thôi. Đối với file của tôi, bạn nhập 2 ngày thứ 2, thứ 3 ấy vào vùng ngày lễ.
 

SA_DQ

/(hông là gì!
Thành viên danh dự
Tham gia ngày
8 Tháng sáu 2006
Bài viết
11,422
Được thích
17,333
Điểm
1,860
Ý của em là: Giả sử ngày lễ 30/4 & 01/05 trùng vào ngày T7, CN thì 02 ngày tiếp theo là thứ hai, thứ ba sẽ không tính vào các ngày nghỉ chế độ được hưởng BHXH, như Ốm đau, thai sản, phép năm, RC, . . .đại loại là như vậy?
Cho rằng ngày lễ 30/4 & 01/05 trùng vào ngày T7, CN thì nghỉ bù vào ngày nào cũng có thể, chứ có luật hay nghị định nào bắt phải nghỉ ngay sau đó hay không?

(Nếu có bạn trích dẫn dùm mình nha!:-=)
 

doanhhoang79

Thành viên hoạt động
Tham gia ngày
31 Tháng ba 2008
Bài viết
142
Được thích
18
Điểm
0
Tuổi
41
Đơn giản thôi. Đối với file của tôi, bạn nhập 2 ngày thứ 2, thứ 3 ấy vào vùng ngày lễ.
Nếu đặt vào vùng ngày lễ như bạn nói thì không khoa học cho lắm. Chẳng lẽ cứ mội năm mình lại phải dò lịch am(dương) rồi tìm ra những ngày trùng và đặt vào sao? Không ổn bạn à,
 

doanhhoang79

Thành viên hoạt động
Tham gia ngày
31 Tháng ba 2008
Bài viết
142
Được thích
18
Điểm
0
Tuổi
41
Cho rằng ngày lễ 30/4 & 01/05 trùng vào ngày T7, CN thì nghỉ bù vào ngày nào cũng có thể, chứ có luật hay nghị định nào bắt phải nghỉ ngay sau đó hay không?

(Nếu có bạn trích dẫn dùm mình nha!:-=)
Bạn nói đúng luật không quy định nhưng đại đa số các trường hợp đều cho phép nghỉ vào những ngày kế tiếp đó luôn, chứ không phải đi là 01 hoặc 02 ngày rồi mới nghỉ bù???
 

doanhhoang79

Thành viên hoạt động
Tham gia ngày
31 Tháng ba 2008
Bài viết
142
Được thích
18
Điểm
0
Tuổi
41
Tôi xin gửi file đính kèm ở một chủ đề mới nhờ các bạn giúp đỡ theo ý của tôi
 

huuthang_bd

Chuyên gia GPE
Tham gia ngày
10 Tháng chín 2008
Bài viết
7,301
Được thích
8,294
Điểm
860
Nơi ở
TP.HCM
Nếu đặt vào vùng ngày lễ như bạn nói thì không khoa học cho lắm. Chẳng lẽ cứ mội năm mình lại phải dò lịch am(dương) rồi tìm ra những ngày trùng và đặt vào sao? Không ổn bạn à,
Tôi nghĩ không có gì là không khoa học hết. Vì ngày nghỉ bù là do mỗi công ty quy định, công thức cũng phải theo một cái chuẩn nào đó chứ.
 

CATHY

Thành viên chính thức
Tham gia ngày
13 Tháng chín 2007
Bài viết
52
Được thích
8
Điểm
0
Bạn Huuthang cho mình hỏi chút xíu. trong công thức mình thấy ghi :.... INDIRECT("A1:A"&(C6-B6+1)...., vậy "A1:A" ở đây có nghĩa là gì vậy ?
 

huuthang_bd

Chuyên gia GPE
Tham gia ngày
10 Tháng chín 2008
Bài viết
7,301
Được thích
8,294
Điểm
860
Nơi ở
TP.HCM
Bạn Huuthang cho mình hỏi chút xíu. trong công thức mình thấy ghi :.... INDIRECT("A1:A"&(C6-B6+1)...., vậy "A1:A" ở đây có nghĩa là gì vậy ?
"A1:A" kết hợp với (C6-B6+1) bằng toán tử & ta sẽ được địa chỉ của một vùng tương ứng.
Ví dụ (C6-B6+1) = 10 thì ta có "A1:A"&(C6-B6+1) = "A1:A10"
 

CATHY

Thành viên chính thức
Tham gia ngày
13 Tháng chín 2007
Bài viết
52
Được thích
8
Điểm
0
tinh so ngay nghi

Đơn giản thôi. Đối với file của tôi, bạn nhập 2 ngày thứ 2, thứ 3 ấy vào vùng ngày lễ.
Bạn Huuthang cho mình hỏi chút xíu: trong công thức mình thấy ghi : ........INDIRECT("A1:A"&(C6-B6+1)..., vậy "A1:A" ở đây có nghĩa là gì vậy ?
 

CATHY

Thành viên chính thức
Tham gia ngày
13 Tháng chín 2007
Bài viết
52
Được thích
8
Điểm
0
tinh so ngay nghi

"A1:A" kết hợp với (C6-B6+1) bằng toán tử & ta sẽ được địa chỉ của một vùng tương ứng.
Ví dụ (C6-B6+1) = 10 thì ta có "A1:A"&(C6-B6+1) = "A1:A10"
Như vậy khi mình copy công thức của bạn vào file của mình thì "A1:A" vẫn không thay đổi chứ ?
 
Top Bottom