Nhờ cả nhà giúp cho hàm phân tích nhóm kíp trực trong tháng

Liên hệ QC

daihoangtu

Thành viên mới
Tham gia
26/10/07
Bài viết
17
Được thích
7
Mình có bảng chấm công tháng của NV ; NV làm việc theo từng kíp trực, ra trực . Yêu cầu tổng hợp cuối tháng mỗi NV làm từ ngày đến ngày của từng khoảng thời gian kíp trực. Mình gởi kèm file mẫu như sau:
Xin cảm ơn cả nhà!
1630380700223.png
 

File đính kèm

Lần chỉnh sửa cuối:
Mình có bảng chấm công tháng của NV ; NV làm việc theo từng kíp trực, ra trực . Yêu cầu tổng hợp cuối tháng mỗi NV làm từ ngày đến ngày của từng khoảng thời gian kíp trực. Mình gởi kèm file mẫu như sau:
Xin cảm ơn cả nhà!
Nhìn file xong tôi chẳng hiểu gì cả! ít ra bạn cũng cho biết tổng hợp như thế nào, vùng nào trên bảng (có bảng thì X có bảng dạng ngày tháng). Bạn cần nói rõ các điều kiện cần để làm thì người khác mới hiểu và hướng dẫn cho bạn.
 
Mình có bảng chấm công tháng của NV ; NV làm việc theo từng kíp trực, ra trực . Yêu cầu tổng hợp cuối tháng mỗi NV làm từ ngày đến ngày của từng khoảng thời gian kíp trực. Mình gởi kèm file mẫu như sau:
Xin cảm ơn cả nhà!

Nhìn file xong tôi chẳng hiểu gì cả! ít ra bạn cũng cho biết tổng hợp như thế nào, vùng nào trên bảng (có bảng thì X có bảng dạng ngày tháng). Bạn cần nói rõ các điều kiện cần để làm thì người khác mới hiểu và hướng dẫn cho bạn.
Bỏ qua phần dấu X chỉ tính từ khu vực từ 30/6 den 31/7 . khoảng thời gian này có người trực 3 kíp có người trực 2 kíp có người làm hành chính cả tháng . Thời gian làm việc không liên tục. Cột yêu cầu tổng hợp (tô màu vàng) là kết quả cần làm.
 
Bỏ qua phần dấu X chỉ tính từ khu vực từ 30/6 den 31/7 . khoảng thời gian này có người trực 3 kíp có người trực 2 kíp có người làm hành chính cả tháng . Thời gian làm việc không liên tục. Cột yêu cầu tổng hợp (tô màu vàng) là kết quả cần làm.
Yêu cầu này làm bằng công thức, phải dùng hàm TEXTJOIN. Nếu phiên bản excel < 2019 nên đăng bên box lập trình đễ được hỗ trợ tốt hơn ( bằng UDF)

.
 
Yêu cầu này làm bằng công thức, phải dùng hàm TEXTJOIN. Nếu phiên bản excel < 2019 nên đăng bên box lập trình đễ được hỗ trợ tốt hơn ( bằng UDF)

.
Trong 1 dãy chuỗi không liên tục ( Đứt đoạn) làm giao lấy giá trị đầu và giá trị cuối của từng khoảng đứt đoạn? Thank bạn!
 
Bỏ qua phần dấu X chỉ tính từ khu vực từ 30/6 den 31/7 . khoảng thời gian này có người trực 3 kíp có người trực 2 kíp có người làm hành chính cả tháng . Thời gian làm việc không liên tục. Cột yêu cầu tổng hợp (tô màu vàng) là kết quả cần làm.
Bạn không nói rõ 1 kíp là như thế nào, và cũng cho VD về kết quả của nó của một hàng thì mọi người dễ dàng giúp bạn hơn.
 
Bạn không nói rõ 1 kíp là như thế nào, và cũng cho VD về kết quả của nó của một hàng thì mọi người dễ dàng giúp bạn hơn.
kíp làm ko có qui luật cứ chấm công thực tế là dấu X sao đó mình đổi thành ngày (kiểu chuỗi), 1 NV làm liên tục là có giá trị trong ô, còn khoảng trống là người NV đó ko có đi làm . Cột Yêu cầu tổng hợp (màu vàng) là cột cần làm công thức (mình làm bằng tay, làm mẫu) làm ra giống kết quả cột màu vàng đó. Bảng chấm công cả ngàn NV mình trích những trường hợp tiêu biểu thôi.
1630380334752.png
 
Lần chỉnh sửa cuối:
kíp làm ko có qui luật cứ chấm công thực tế là dấu X sao đó mình đổi thành ngày (kiểu chuỗi), 1 NV làm liên tục là có giá trị trong ô, còn khoảng trống là người NV đó ko có đi làm . Cột Yêu cầu tổng hợp (màu vàng) là cột cần làm công thức (mình làm bằng tay, làm mẫu) làm ra giống kết quả cột màu vàng đó. Bảng chấm công cả ngàn NV mình trích những trường hợp tiêu biểu thôi.
Nói nôm na là bạn muốn chuyển từ X sang dạn ngày tháng hay sao?
 
Đã chuyển rồi giờ làm công thức nào để ra cột màu vàng như hình mới bổ sung đó ad.
Tôi đã thấy vùng vàng trong file, nhưng tôi không hiểu tổng hợp như thế nào? Đếm số ngày? Từ ngày ... đến ngày? Nếu ô trống thì không tính? Hoặc như thế nào để tính toán?
 
Tôi đã thấy vùng vàng trong file, nhưng tôi không hiểu tổng hợp như thế nào? Đếm số ngày? Từ ngày ... đến ngày? Nếu ô trống thì không tính? Hoặc như thế nào để tính toán?
Tính theo NV (tính theo row) 1 dãy ngày làm liện tục thì lấy giá trị ngày đầu (để làm Từ ngày) và giá trị ngày cuối ( để làm Đến ngày) của dãy liên tục. Sau đó dãy trống là NV ko đi làm Không tính. Tiếp theo dãy ngày vô làm lần 2 trong tháng (dãy lần 2 trong tháng) cũng lấy giá trị ngày đầu (để làm Từ ngày) và giá trị ngày cuối (để làm đến ngày) của dãy liên tục.. Cứ dãy chuỗi liên tục thì lấy giá trị ngày đầu (để làm Từ ngày) và lấy giá trị cuối dãy (để làm Đến ngày).
Ví dụ: Bạn đi làm từ ngày 1 đến ngày 10, sau đó bạn nghĩ phép từ ngày 11 đến ngày 15, ngày 16 ban vô làm lại từ ngày 16 đến ngày 31. Vậy yêu cầu cột tổng hợp ghi là;' Ban đi làm từ ngày 1 đến ngày 10; Từ ngày 16 đến ngày 31. Yêu cầu vậy đó
 
Lần chỉnh sửa cuối:
Tính theo NV (tính theo row) 1 dãy ngày làm liện tục thì lấy giá trị ngày đầu (để làm Từ ngày) và giá trị ngày cuối ( để làm Đến ngày) của dãy liên tục. Sau đó dãy trống là NV ko đi làm Không tính. Tiếp theo dãy ngày vô làm lần 2 trong tháng (dãy lần 2 trong tháng) cũng lấy giá trị ngày đầu (để làm Từ ngày) và giá trị ngày cuối (để làm đến ngày) của dãy liên tục.. Cứ dãy chuỗi liên tục thì lấy giá trị ngày đầu (để làm Từ ngày) và lấy giá trị cuối dãy (để làm Đến ngày).
À, có nghĩa rằng kết quả là vùng bạn tô vàng? Nếu không có khoảng trống thì từ đầu đến cuối, nếu có thì cách nhau dấu chấm phẩy. Tôi không nghĩ là có thể làm bằng công thức, tôi làm hàm tự tạo VBA được không? Và nếu dùng hàm này thì bạn không cần thêm cái bảng ngày tháng nữa mà chỉ sử dụng cái bảng X là được rồi.
 
Tôi thử làm công thức bằng hàm tự tạo VBA, đây là hình ảnh kết quả của nó, nếu đúng thì tôi sẽ gửi lên.

1630388504292.png
 
Lần chỉnh sửa cuối:
Dùng hàm cho những bài nối chuỗi thực sự rất là khoai, nhất là dùng phiên bản 2016 về trước không có mấy hàm hỗ trợ nối chuỗi.
Dùng cột phụ nối tạm cho bạn tham khảo vậy (nhiều khoảng thời gian thì phải tạo nhiều cột phụ hơn)
1630390557925.png
 

File đính kèm

Tôi thử làm công thức bằng hàm tự tạo VBA, đây là hình ảnh kết quả của nó, nếu đúng thì tôi sẽ gửi lên.

View attachment 265132
Đúng rổi Ad ơi. Mình làm bằng tay kết quả mẫu là vậy đó. Ad chỉ mình làm đi Ad. Thank you!
Bài đã được tự động gộp:

Tôi thử làm công thức bằng hàm tự tạo VBA, đây là hình ảnh kết quả của nó, nếu đúng thì tôi sẽ gửi lên.

View attachment 265132
Đúng rổi Ad ơi. Mình làm bằng tay kết quả mẫu là vậy đó. Ad chỉ mình làm đi Ad. Thank you!
 
Cột kết quả là cột Yêu cầu tổng hợp
Bạn đang dùng phiên bản Excel nào? Nếu có hàm TEXTJOIN, có thể giải quyết bằng công thức với chút mẹo nhỏ.

Đây là hàm tự tạo
PHP:
Public Function ChamCong(ByVal rngX As Range, ByVal rngDate As Range) As String
Application.Volatile
Dim arrX, arrDate, i&, temp$, isStart As Boolean
Dim tungay As String
Dim denngay As String

tungay = "t" & ChrW(7915) & " ngày "
denngay = " " & ChrW(273) & ChrW(7871) & "n ngày"
arrX = rngX.Value
arrDate = rngDate.Value

For i = 1 To UBound(arrX, 2)
    If arrX(1, i) <> "" Then
        If isStart = False Then
            isStart = True
            temp = temp & "; " & tungay & arrDate(1, i)
        End If
    Else
        If isStart = True Then
            isStart = False
            temp = temp & denngay & arrDate(1, i - 1)
        End If
    End If
   If i = UBound(arrX, 2) And isStart = True Then temp = temp & denngay & arrDate(1, i)
Next
If temp <> "" Then ChamCong = UCase(Mid(temp, 3, 1)) & Mid(temp, 4)
End Function
Cách sử dụng:

=ChamCong(DI3:EN3,$DI$2:$EN$2)

.
 

File đính kèm

Web KT

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

Back
Top Bottom