Hàm tìm kiếm nhiều điều kiện khó (Đề bài khó anh chị giúp đỡ em)

Liên hệ QC

vova2209

Thành viên tích cực
Tham gia
5/4/17
Bài viết
825
Được thích
110
Giới tính
Nam
Nghề nghiệp
Đường bộ
Em chào anh chị! em có 1 bài toán dưới đây nhờ anh chị giúp đỡ ạ
Như hình dưới:
1. Em làm 1 công việc hoàn thành vào ngày 05/01/2022
2. Ngày nghiệm thu cộng thêm 28 ngày, rơi vào ngày 02/02/2022
3. Nhưng ngày 02-05/02/2022 lại là ngày lễ, hoặc là ngày mưa nghỉ. làm thế nào để đếm được số ngày lễ đó, để mình cộng thêm vào ngày 02/02/2022 kết quả = 06/02/2022
Capture.JPG
 

File đính kèm

  • VKCK.xlsx
    116.5 KB · Đọc: 7
Em chào anh chị! em có 1 bài toán dưới đây nhờ anh chị giúp đỡ ạ
Như hình dưới:
1. Em làm 1 công việc hoàn thành vào ngày 05/01/2022
2. Ngày nghiệm thu cộng thêm 28 ngày, rơi vào ngày 02/02/2022
3. Nhưng ngày 02-05/02/2022 lại là ngày lễ, hoặc là ngày mưa nghỉ. làm thế nào để đếm được số ngày lễ đó, để mình cộng thêm vào ngày 02/02/2022 kết quả = 06/02/2022
View attachment 274539
Vấn đề khó hơn là bạn chưa xét nhất quán, tại sao không tính các ngày nghĩ lễ trước như ngày 31/1
Mục đích cuối cùng là gì? Tính tay cẩn thận và gởi lại file
 
Chết thôi ! đi làm cả ngày CN..Screenshot (27).png
 
@Chủ bài đăng: Bạn phải có danh sách các ngày nghỉ trong năm theo qui định của Nhà nước (nghỉ lễ) và của Công ti (ngày mưa)
Sau đó mới có thể đếm số ngày này & cộng thêm vô ngày tới hạn.
[Những ngày 'mưa' đó cũng phải được lưu vô như ngày nghỉ lễ để làm bằng chứng khi được kiểm tr, kiểm toán,. . . .]

Dân xây dựng hay tương tự thì CN là cái thá gì, làm tuốt; Chủ bài đăng & cơ quan này chỉ sợ mưa rơi mà thôi!
 
Lần chỉnh sửa cuối:
@Chủ bài đăng: Bạn phải có danh sách các ngày nghỉ trong năm theo qui định của Nhà nước (nghỉ lễ) và của Công ti (ngày mưa)
Sau đó mới có thể đếm số ngày này & cộng thêm vô ngày tới hạn.
[Những ngày 'mưa' đó cũng phải được lưu vô như ngày nghỉ lễ để làm bằng chứng khi được kiểm tr, kiểm toán,. . . .]


Dân xây dựng hay tương tự thì CN là cái thá gì, làm tuốt, chủ bài đăng & cơ quan này chỉ sợ mưa rơi mà thôi!
Cách tính thực thế áp dụng vào excel thôi. Chứ Mậu thân 68 còn đi đánh trận, huống chi đi làm.
 
Em chào anh chị! em có 1 bài toán dưới đây nhờ anh chị giúp đỡ ạ
Như hình dưới:
1. Em làm 1 công việc hoàn thành vào ngày 05/01/2022
2. Ngày nghiệm thu cộng thêm 28 ngày, rơi vào ngày 02/02/2022
3. Nhưng ngày 02-05/02/2022 lại là ngày lễ, hoặc là ngày mưa nghỉ. làm thế nào để đếm được số ngày lễ đó, để mình cộng thêm vào ngày 02/02/2022 kết quả = 06/02/2022
Bài này không khó, vấn đề là bạn phải lập thêm cái bảng tính liệt kê trước các ngày nghỉ lễ như bác SA-DQ đã nói. Bất cứ nghỉ gì đều lưu vô đó như: ngày nghỉ bù lễ, ngày nghỉ dịch, nghỉ mưa ..
Bài toán này gặp nhiều trong thực tế như: trong tính công nhân viên, tính ngày bắt đầu kết thúc khoá học...

Screen Shot 2022-04-16 at 14.56.51.png

Mã:
Function soNgayLeTetThem(NgayBD As Date, NgayKT As Date, rngNgayNghi As Range) As Long
    Dim arrNgayNghi() As Variant
    Dim i&, k&
    If rngNgayNghi.Count > 1 Then    'rngNgayNghi=Sheet1.Range("B2:B12")
        arrNgayNghi = rngNgayNghi
        For i = LBound(arrNgayNghi) To UBound(arrNgayNghi)
        If BetweenDates(NgayBD, NgayKT, CDate(arrNgayNghi(i, 1))) Then
            k = k + 1
        End If
    Next
    Else
        ReDim arrNgayNghi(0 To rngNgayNghi.Cells.Count - 1) 'range có 1 cell
        arrNgayNghi(0) = rngNgayNghi
        If BetweenDates(NgayBD, NgayKT, CDate(arrNgayNghi(0))) Then
            k = 1
        End If
    End If
    soNgayLeTetThem = k
    Erase arrNgayNghi
End Function

Function BetweenDates(startDate As Date, endDate As Date, checkDate As Date) As Boolean
    BetweenDates = IIf(checkDate > startDate And checkDate <= endDate, True, False)
End Function
 
Lần chỉnh sửa cuối:
Up lại cho nét, vì Tôi dùng màn hình lớn có thể bạn không rõ công thức1650087908908.png
 
Chào anh chị! cảm ơn anh chị đã quan tâm. danh sách chính là cột AL anh chị ạ!
Vâng để em thử ạ.
 
Em chào anh chị! em có 1 bài toán dưới đây nhờ anh chị giúp đỡ ạ
Như hình dưới:
1. Em làm 1 công việc hoàn thành vào ngày 05/01/2022
2. Ngày nghiệm thu cộng thêm 28 ngày, rơi vào ngày 02/02/2022
3. Nhưng ngày 02-05/02/2022 lại là ngày lễ, hoặc là ngày mưa nghỉ. làm thế nào để đếm được số ngày lễ đó, để mình cộng thêm vào ngày 02/02/2022 kết quả = 06/02/2022
View attachment 274539
1/ Lập các ngày nghỉ: lễ, tết, mưa, nắng...ra sheet khác.
2/ Dùng hàm WORKDAY.INTL(...) là tính ra.
Như ví dụ trong file, thì dùng:

Mã:
AZ28=WORKDAY.INTL(AY28,BA28,"0000000",AK34:AK37)

Thân
 
Lần chỉnh sửa cuối:
3. Nhưng ngày 02-05/02/2022 lại là ngày lễ, hoặc là ngày mưa nghỉ. làm thế nào để đếm được số ngày lễ đó,
để mình cộng thêm vào ngày 02/02/2022 kết quả = 06/02/2022
Công thức dưới đây có kết quả là 06/02/2022.

=AGGREGATE(15,6,$AK$2:$AK$1828/($AL$2:$AL$1828="")/($AK$2:$AK$1828>AY28+BA28-1),1)

Hoặc công thức mảng:

{=MIN(IF(($AL$2:$AL$1828="")*($AK$2:$AK$1828>AY28+BA28-1),$AK$2:$AK$1828))}
 
Bài này không khó, vấn đề là bạn phải lập thêm cái bảng tính liệt kê trước các ngày nghỉ lễ như bác SA-DQ đã nói. Bất cứ nghỉ gì đều lưu vô đó như: ngày nghỉ bù lễ, ngày nghỉ dịch, nghỉ mưa ..
 
Chúc mừng bạn có thời gian thư giãn cùng diễn đàn /-*+//-*+//-*+/
Lúc rày giờ quy ra tiền nên mất đi nhiều cơ hội rảnh rang anh ơi! Lâu rồi ghé thăm 'nhà', giúp được thì mần liền, không nói trơn vô tích sự.

Chúc anh em ngày vui và luôn mạnh khỏe.
/-*+//-*+//-*+/

Chào anh chị! cảm ơn anh chị đã quan tâm. danh sách chính là cột AL anh chị ạ!
Vâng để em thử ạ.
Xem file kèm.

Thân
 

File đính kèm

  • VKCK.xlsx
    112.6 KB · Đọc: 9
Công thức dưới đây có kết quả là 06/02/2022.

=AGGREGATE(15,6,$AK$2:$AK$1828/($AL$2:$AL$1828="")/($AK$2:$AK$1828>AY28+BA28-1),1)

Hoặc công thức mảng:

{=MIN(IF(($AL$2:$AL$1828="")*($AK$2:$AK$1828>AY28+BA28-1),$AK$2:$AK$1828))}
Vâng đúng như này ạ, em cảm ơn!
Bài đã được tự động gộp:

Lúc rày giờ quy ra tiền nên mất đi nhiều cơ hội rảnh rang anh ơi! Lâu rồi ghé thăm 'nhà', giúp được thì mần liền, không nói trơn vô tích sự.

Chúc anh em ngày vui và luôn mạnh khỏe.
/-*+//-*+//-*+/


Xem file kèm.

Thân
hi! em cảm ơn ạ.. thêm 1 cách nữa em làm.
 
Web KT
Back
Top Bottom