Mừng Sinh Nhật GPE 11: sáng 25/6 Hà Nội; 1/7 Huế/Đà Nẵng; Trưa 2/7 TPHCM

cách tính ngày tháng năm có cộng ngày nghỉ, lễ, nghỉ bù

Thảo luận trong 'Hàm và công thức Excel' bắt đầu bởi accboyde, 12 Tháng tư 2010.

  1. accboyde

    accboyde Thành viên mới

    các bạn giúp mình với: các bạn lập công thức tính giúp mình với yêu cầu như sau:
    VD: (ngày, tháng, năm) hiện tại + 10 (số 10 được hiểu là số ngày làm việc từ t2 đến t6) = (ngày, tháng, năm) tiếp theo đã được cộng ngày t7,cn,ngày lễ, nghỉ bù)
    rất mong các bạn sơm giúp mình. Cảm ơn các bạn rất nhiều-+*/
     
  2. tamnt07

    tamnt07 Thành viên hoạt động

    Bạn nói rõ được hơn không, đọc thấy khó hiểu ghê!
     
  3. accboyde

    accboyde Thành viên mới

    mình muốn
    VD: (1) Ngày hiện tại là: 4/20/2010
    (2) Số ngày làm việc muốn cộng là: 10
    (3) Ngày tiếp theo đã cộng các ngày T7, CN, 30/4, 1/5, nghỉ bù ngày 1/5 là: 5/5/2010
    Như thế là từ ngày 04/20/2010 đến ngày 5/5/2010 chỉ có 10 ngày làm việc. Còn tổng ngày kể cả ngày nghỉ là 16 ngày.
    Rất mong các bạn lập công thức tính giùm mình để khi chỉ cần nhập số ngày làm việc muốn cộng là ra ngày cuối đã cộng các ngày nghỉ, lễ, nghỉ bù.
    Thank all!
     
    Lần chỉnh sửa cuối: 14 Tháng tư 2010
  4. SA_DQ

    SA_DQ Thành viên danh dự

    Bạn thử lại bằng hàm tự tạo sau:

    PHP:
    Option Explicit

    Function SoNgayLamViec(Dat As DateNumDat As Byte)
     
    On Error GoTo LoiCT
     Dim jJ 
    As ByteTuan As ByteBu
      
     
    Do
       
    Tuan Weekday(Dat jJ)
       If 
    Tuan Or Tuan 7 Then
          NumDat 
    NumDat IIf(NghiLe(Dat jJ), 10)
       Else
          If 
    NghiLe(Dat jJ) = True Then NumDat NumDat 1
       End 
    If
       
    jJ jJ 1
       
    If jJ >= NumDat Then Exit Do
     
    Loop
     SoNgayLamViec 
    Dat NumDat 1
    Err_
    :   Exit Function
    LoiCT:
       
    MsgBox Error, , Err:                Resume Err_
    End 
    Function
    PHP:
    Function NghiLe(Dat As Date) As Boolean
     Dim Clls 
    As Range
     
    9  
    For Each Clls In Sheets("Tab2").Range("NgLe")
       If 
    Clls.Value Dat Then
          NghiLe 
    True:          Exit Function
       
    End If
     
    Next Clls
    End 
    Function

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

    (1) Bạn fải liệt kê danh sách các ngày nghỉ mà Nhà nước quy định lên nơi nào đó trên trang tính & gán cho nó cái tên tương tự như "NgLe" dòng lệnh 9 có ghi. (Chú í tên trang tính của mình đang là "Tab2" - của bạn sẽ khác (!))

    Trong ví dụ của bạn thiếu ngày Giổ Tổ Hùng Vương. (Bạn fải cập nhật hàng năm danh sách các ngày nghỉ âm lịch thì hàm mới đúng được)

    (2) Cú fáp hàm tại 1 ô trống nào đó sẽ là =SoNgayLamViec(A1,10) - Ở đây [A1] là ô chức ngày bắt đầu & 10 là số ngày làm việc cần tính.
    Hàm trả về ngày làm việc cuối cùng kể từ mốc bắt đầu có kể cả ngày lễ & CN, T7.

    Mong rằng sẽ không fải gởi file lên cho bạn & chúc vui 1 cách kiên nhẫn!
     
  5. Lê Duy Thương

    Lê Duy Thương CẠO LẤY GÌ GỘI ?

    nếu mà bạn dùng office 2010 thì tôi chỉ cho bạn hàm nay
    =WORKDAY.INTL(start_date,days,weekend,holidays)
    vd =WORKDAY.INTL(E13,F13,11,A3:AY3)
     
    Lần chỉnh sửa cuối: 16 Tháng tư 2010
  6. ChanhTQ@

    ChanhTQ@ Thành viên già cỗi.

    Hàm này có tính được các ngày Tết nguyên đán không vậy?

    Có fải bổ sung gì đó mới tính được ngày âm lịch, chắc vậy!
     
  7. Lê Duy Thương

    Lê Duy Thương CẠO LẤY GÌ GỘI ?

    cái chính ở đây la mình cần biết được danh sách những ngày nghỉ triong năm của nhà nước quy định, và ngày nghỉ của riêng đơn vị công tác
    ví dụ như nghỉ phép năm, nghỉ tết nguyên đán. vv.vv . để tao thành những ngày gọi là holidays
    đây là ví dụ của công ty tôi đang làm việc
     

    Các file đính kèm:

    Lần chỉnh sửa cuối: 16 Tháng tư 2010
  8. tamnt07

    tamnt07 Thành viên hoạt động

    Bạn có thể dùng hàm networkdays để tính, và những ngày lế tết nghỉ thì bạn phải liệt kê ra!
     
  9. Lê Duy Thương

    Lê Duy Thương CẠO LẤY GÌ GỘI ?

    hàm networkdays là hàm dùng để tính số ngày làm việc chứ không phải tìm ngày trong tương lai
    hàm networkdays sẽ trừ luôn 2 ngày thứ 7 và chủ nhật
     
  10. tamnt07

    tamnt07 Thành viên hoạt động

    Đúng rồi hàm networkdays là ngược lại với hàm workday
    Trong office 2003 cũng có các hàm này mà, nhưng phải chọn thêm bộ add-in Toolkid gì đó!
     
  11. Lê Duy Thương

    Lê Duy Thương CẠO LẤY GÌ GỘI ?

  12. accboyde

    accboyde Thành viên mới

    Mình cám ơn bạn đã giúp mình. Bạn giải thích giúp mình số 11 với ( có phải nó là ngày cuối tuần thứ 7, CN không) tại sao là số 11-\\/.
    Mình đã thử ví dụ của bạn nhưng khi thay đổi số ngày làm việc thì ngày của hàm WORKDAY.INTL không tự động nhảy ngày khác. bạn chỉ giúp mình làm cách nào để nó tự động nhảy ngày khi thay đổi số ngày làm việc hay ngày khởi đầu và khi mình gõ = "ô công thức hàm WORKDAY.INTL" thì ngày tiếp theo cũng tự lấy = ngày của hàm WORKDAY.INTL
    Rất mong bạn sớm giúp. cám ơn bạn nhiều--=0
     
  13. Lê Duy Thương

    Lê Duy Thương CẠO LẤY GÌ GỘI ?

    số 11 là chỉ chọn ngày chủ nhật thôi
     
  14. accboyde

    accboyde Thành viên mới

    cám ơn bạn. bạn có thể chỉ mình cách tính cả ngày thứ 7 nữa không. tại thủ tục ngày làm việc chỉ tính từ thứ thứ 2 đến thứ 6. nếu thêm vào công thức trên thì như thế nào.
    mình gà khoản này lắm ;-)). mong bạn sớm giúp.
     
  15. Lê Duy Thương

    Lê Duy Thương CẠO LẤY GÌ GỘI ?

    bạn xem hình nhé đây là những tham số mà trong máy đã có sẵn
     

    Các file đính kèm:

    Lần chỉnh sửa cuối: 28 Tháng hai 2012
  16. dth.trunghau

    dth.trunghau Thành viên mới

    Các bạn sửa lỗi subscript out of range dùm mình khi mở 2 file excel cùng lúc khi sử dụng hàm trên, cám ơn nhiều!
     
  17. dth.trunghau

    dth.trunghau Thành viên mới


    Các bạn sửa lỗi subscript out of range dùm mình khi mở 2 file excel cùng lúc khi sử dụng hàm trên, cám ơn nhiều! ​
     
  18. chungbhxh

    chungbhxh Thành viên mới

    Chào mọi người ở diễn đàn GPE:
    Có cao thủ nào giúp mình với.
    Mình có ngày bắt đầu là 01/01/2012
    Ngày kết thúc là 12/01/2012
    Vậy trừ đi thứ 7 và chủ nhật còn lại là 8 ngày.
    Bạn nào có công thức cho office 2003 không?
    Thank!
     
  19. Hoàng Trọng Nghĩa

    Hoàng Trọng Nghĩa .: Never Stand Still :. Staff Member

    Lẽ ra phải là 9 ngày chứ bạn?

    Dùng hàm =NETWORKDAYS("1/1/2012","12/1/2012")

    Với hàm này, bạn cũng có thể thêm ngày lễ vào để tính, ví dụ:

    Ngày 1/5/2012 là ngày lễ, thì:

    1/5/2012 đến 12/5/2012 bạn sẽ có công thức là:

    =NETWORKDAYS("1/5/2012","12/5/2012","1/5/2012")
     
    Lần chỉnh sửa cuối: 24 Tháng hai 2012
  20. ndu96081631

    ndu96081631 Ăn cùng GPE, Ở cùng GPE, Sống cùng GPE Staff Member Super Moderator

    Công thức tổng quát sẽ là: Tổng số ngày - Số ngày thứ 7 - Số ngày CN
    Muốn biết số ngày thứ 7 hoặc CN giữa 2 thời điểm, xem cái này:
    http://www.giaiphapexcel.com/forum/showthread.php?2515-Dùng-hàm-hoặc-code-nào-để-tính-được-số-ngày-Chủ-Nhật-trong-một-quãng-T-G-bất-kỳ&p=16111#post16111
    Công thức viết gì mà kỳ cục vậy Nghĩa? Phải vầy mới chính xác: =NETWORKDAYS("2012/1/1","2012/1/12")
    Lưu ý: Cài Analysis ToolPak mới dùng được hàm này
     
    Lần chỉnh sửa cuối: 24 Tháng hai 2012

Chia sẻ trang này