Giúp sắp xếp lịch làm việc trong tháng (2 người xem)

  • Thread starter Thread starter zeroxo
  • Ngày gửi Ngày gửi
Liên hệ QC

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

zeroxo

Thành viên mới
Tham gia
11/12/08
Bài viết
3
Được thích
0
Chào anh chị, bên chỗ em tạo lịch trực ca sáng và tối theo thời gian rảnh của mỗi người ( mọi người sẽ gửi dữ liệu về xem ngày nó rảnh vào ca nào, bận thì để blank)

em muốn tạo 2 cột sáng và tối, và tìm hàm để tìm những ai có thể làm buổi sáng = ( sáng + cả ngày), buổi tối = ( tối + cả ngày) điền tên vào ô dưới nhưng loay hoay vẫn chưa được

anh chị giúp em với.!$@!!
 

File đính kèm

Chào anh chị, bên chỗ em tạo lịch trực ca sáng và tối theo thời gian rảnh của mỗi người ( mọi người sẽ gửi dữ liệu về xem ngày nó rảnh vào ca nào, bận thì để blank)

em muốn tạo 2 cột sáng và tối, và tìm hàm để tìm những ai có thể làm buổi sáng = ( sáng + cả ngày), buổi tối = ( tối + cả ngày) điền tên vào ô dưới nhưng loay hoay vẫn chưa được

anh chị giúp em với.!$@!!

Dùng VBA lấy ngẫu nhiên, bạn bấm nút chừng nào vừa ý thì thôi.
 

File đính kèm

cám ơn anh, có thể em diễn đạt chưa được rõ ràng, cái em muốn là list ra những ai rảnh vào buổi đó ngày đó,

còn việc sắp xếp là cho "sếp" chọn, /-*+/

Ý muốn của bạn nằm trong đầu của bạn làm sao người khác hình dung ra nó là cái gì.
Muốn rõ ràng cho người khác hiểu thì phải ghi ra kết quả thủ công vài dòng, giải thích tại sao có kết quả như vậy.
1 cách "cố hiểu" lần này nữa là "thua".
Bạn thay Sub cũ bằng cái này coi sao.
PHP:
Public Sub Ca()
Dim sArr(), dArr(), Sang As String, Toi As String, Ngay As String, I As Long, J As Long, K As Long, C As Long
C = Range("B3").End(xlToRight).Column - 1
sArr = Range("B3", Range("B3").End(xlDown)).Resize(, C).Value
ReDim dArr(1 To UBound(sArr), 1 To 2)
Sang = Range("J3").Value: Toi = Range("K3").Value: Ngay = Range("J2").Value
For I = 2 To UBound(sArr)
    K = K + 1
    For J = 2 To C
        If sArr(I, J) = Sang Or sArr(I, J) = Ngay Then
            dArr(K, 1) = dArr(K, 1) & "-" & sArr(1, J)
        End If
        If sArr(I, J) = Toi Or sArr(I, J) = Ngay Then
            dArr(K, 2) = dArr(K, 2) & "-" & sArr(1, J)
        End If
    Next J
Next I
Range("J4:K4").Resize(K) = dArr
End Sub
 
cám ơn anh, có thể em diễn đạt chưa được rõ ràng, cái em muốn là list ra những ai rảnh vào buổi đó ngày đó,

còn việc sắp xếp là cho "sếp" chọn, /-*+/
nhập công thức vào ô J4
Mã:
=SUBSTITUTE(IF(OR($C4=J$3,$C4="Cả ngày"),", "&$C$3,"")&IF(OR($D4=J$3,$D4="Cả ngày"),", "&$D$3,"")&IF(OR($E4=J$3,$E4="Cả ngày"),", "&$E$3,"")&IF(OR($F4=J$3,$F4="Cả ngày"),", "&$F$3,"")&IF(OR($G4=J$3,$G4="Cả ngày"),", "&$G$3,"")&IF(OR($H4=J$3,$H4="Cả ngày"),", "&$H$3,""),", ","",1)
copy cho các ô còn lại
 
Ý muốn của bạn nằm trong đầu của bạn làm sao người khác hình dung ra nó là cái gì.
Muốn rõ ràng cho người khác hiểu thì phải ghi ra kết quả thủ công vài dòng, giải thích tại sao có kết quả như vậy.
1 cách "cố hiểu" lần này nữa là "thua".
Bạn thay Sub cũ bằng cái này coi sao.
PHP:
Public Sub Ca()
Dim sArr(), dArr(), Sang As String, Toi As String, Ngay As String, I As Long, J As Long, K As Long, C As Long
C = Range("B3").End(xlToRight).Column - 1
sArr = Range("B3", Range("B3").End(xlDown)).Resize(, C).Value
ReDim dArr(1 To UBound(sArr), 1 To 2)
Sang = Range("J3").Value: Toi = Range("K3").Value: Ngay = Range("J2").Value
For I = 2 To UBound(sArr)
    K = K + 1
    For J = 2 To C
        If sArr(I, J) = Sang Or sArr(I, J) = Ngay Then
            dArr(K, 1) = dArr(K, 1) & "-" & sArr(1, J)
        End If
        If sArr(I, J) = Toi Or sArr(I, J) = Ngay Then
            dArr(K, 2) = dArr(K, 2) & "-" & sArr(1, J)
        End If
    Next J
Next I
Range("J4:K4").Resize(K) = dArr
End Sub



nhập công thức vào ô J4
Mã:
=SUBSTITUTE(IF(OR($C4=J$3,$C4="Cả ngày"),", "&$C$3,"")&IF(OR($D4=J$3,$D4="Cả ngày"),", "&$D$3,"")&IF(OR($E4=J$3,$E4="Cả ngày"),", "&$E$3,"")&IF(OR($F4=J$3,$F4="Cả ngày"),", "&$F$3,"")&IF(OR($G4=J$3,$G4="Cả ngày"),", "&$G$3,"")&IF(OR($H4=J$3,$H4="Cả ngày"),", "&$H$3,""),", ","",1)
copy cho các ô còn lại

Được rồi à, cám ơn hai anh.

Chúc năm mới an khang :D
 
Web KT

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

Back
Top Bottom