gianghan_ks
Thành viên mới

- Tham gia
- 2/11/18
- Bài viết
- 4
- Được thích
- 0
em nói ở đây lọc theo ngày nhưng mà có cả trường hợp nghỉ việc nữa là sao mà sao biết họ đã nghỉ và nghỉ từ ngày nào em phải nêu rõ ra chứNHờ các thành viên giúp tôi lọc dữ liệu ra một sheet khác theo file đính kèm
Em đã ghi ngày nghỉ rồi mà. Chốt tại cột làm việc đến ngày.em nói ở đây lọc theo ngày nhưng mà có cả trường hợp nghỉ việc nữa là sao mà sao biết họ đã nghỉ và nghỉ từ ngày nào em phải nêu rõ ra chứ
Em đã ghi ngày nghỉ rồi mà. Chốt tại cột làm việc đến ngày.
Trong phần ví dụ đó a/cem nói ở đây lọc theo ngày nhưng mà có cả trường hợp nghỉ việc nữa là sao mà sao biết họ đã nghỉ và nghỉ từ ngày nào em phải nêu rõ ra chứ
Sẽ đối chiếu cột ngày vào làm và cột Làm đến ngày để lọc danh sách.em nói ở đây lọc theo ngày nhưng mà có cả trường hợp nghỉ việc nữa là sao mà sao biết họ đã nghỉ và nghỉ từ ngày nào em phải nêu rõ ra chứ
Đọc thì cũng hiểu nhưng ví dụ lung tung, lúc 7, lúc 8, ra kết quả lúc 8 lúc 7.Em đã ghi ngày nghỉ rồi mà. Chốt tại cột làm việc đến ngày.
Bài đã được tự động gộp:
Trong phần ví dụ đó a/c
Bài đã được tự động gộp:
Sẽ đối chiếu cột ngày vào làm và cột Làm đến ngày để lọc danh sách.
em xem nhéNHờ các thành viên giúp tôi lọc dữ liệu ra một sheet khác theo file đính kèm
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [C2]) Is Nothing Then
Dim Rws As Long, Dat As Date, J As Long
Dim hRng As Range
Rws = [B4].CurrentRegion.Rows.Count
Rows("4:" & Rws + 5).Hidden = False
Dat = Target.Value
For J = 4 To Rws + 4
If Cells(J, "C").Value > Dat Or Cells(J, "D").Value < Dat Then
Rows(J & ":" & J).Hidden = True
Else
End If
Next J
End If
End Sub
Đây là ví dụ để em chốt lại. Ví như em dò lại (khi cần em kiểm tra lại ngày đó có những nhân viên nào, tại thời điểm ngày 30/9/2018.Đọc thì cũng hiểu nhưng ví dụ lung tung, lúc 7, lúc 8, ra kết quả lúc 8 lúc 7.
Ngày vào 2/10/2018, làm đến 30/9/2018, do nhập "tào lao" hay thực tế thế nào?
Anh bỏ cho em hiển thị cột J và K trong "sheet DS hien tai" giúpĐọc thì cũng hiểu nhưng ví dụ lung tung, lúc 7, lúc 8, ra kết quả lúc 8 lúc 7.
Ngày vào 2/10/2018, làm đến 30/9/2018, do nhập "tào lao" hay thực tế thế nào?
Đây là ví dụ để em chốt lại. Ví như em dò lại (khi cần em kiểm tra lại ngày đó có những nhân viên nào, tại thời điểm ngày 30/9/2018.
khi lọc, danh sách sẽ đối chiếu cột C và D trong sheet data để chọn kết quả chính xác là có bao nhiêu nhân viên tại thời điểm đó (nó sẽ loại ra những người vào làm sau (cột C) và những người nghỉ trước ngày lọc (cột D).
Vậy đó anh
Anh bỏ cho em hiển thị cột J và K trong "sheet DS hien tai" giúp
Public Sub sGpe()
Dim sArr(), dArr(), I As Long, J As Long, K As Long, R As Long, Ngay As Long
sArr = Sheets("data").Range("B4", Sheets("data").Range("B4").End(xlDown)).Resize(, 8).Value
R = UBound(sArr)
ReDim dArr(1 To R, 1 To 7)
With Sheets("DS hien tai")
Ngay = .Range("C3").Value
For I = 1 To R
If sArr(I, 2) <= Ngay Then
If sArr(I, 3) >= Ngay Then
K = K + 1
dArr(K, 1) = K
dArr(K, 2) = sArr(I, 1)
For J = 3 To 7
dArr(K, J) = sArr(I, J + 1)
Next J
End If
End If
Next I
.Range("A5").Resize(1000, 7).ClearContents
If K Then .Range("A5").Resize(K, 7) = dArr
End With
End Sub
Cảm ơn anh đã giúp.- Bạn vẫn chưa hiểu? Bạn tùy tiện nhập thí thí ngày vào, ngày nghỉ.
Sao có chuyện vào 2/10/2018 mà nghỉ ngày 30/9/2018? Giả lập dữ liệu cũng phải hợp lý, tôn trọng người đọc chứ.
- Phải bỏ Merge Cells các ô trong các dòng trong bảng.
- Vào Module. Thay Sub cũ thành Sub này :
PHP:Public Sub sGpe() Dim sArr(), dArr(), I As Long, J As Long, K As Long, R As Long, Ngay As Long sArr = Sheets("data").Range("B4", Sheets("data").Range("B4").End(xlDown)).Resize(, 8).Value R = UBound(sArr) ReDim dArr(1 To R, 1 To 7) With Sheets("DS hien tai") Ngay = .Range("C3").Value For I = 1 To R If sArr(I, 2) <= Ngay Then If sArr(I, 3) >= Ngay Then K = K + 1 dArr(K, 1) = K dArr(K, 2) = sArr(I, 1) For J = 3 To 7 dArr(K, J) = sArr(I, J + 1) Next J End If End If Next I .Range("A5").Resize(1000, 7).ClearContents If K Then .Range("A5").Resize(K, 7) = dArr End With End Sub