Hỏi cách lọc danh sách 40 người trong tổng số 300 người

  • Thread starter Camry
  • Ngày gửi
C

Camry

Sơ cấp
25/4/06
50
0
6
Danang
Chào các Anh Chị,

Mình có file dữ liệu bán hàng của cả công ty, trong đó Phòng Kinh Doanh của mình có 40 nhân viên. Hàng ngày mình cần lọc danh sách các nhân viên của Phòng để làm tổng hợp nhưng phải lựa từng chọn từng người thì mất nhiều thời gian. Vì vậy nhờ các Anh Chị hướng dẫn cách lọc danh sách nhân viên Phòng mình trong danh sách của tất cả các nhân viên trong Cty.

Cụ thể như sau: Bảng tính gồm 3 sheet

- Sheet 1 danh sách 40 nhân viên phòng mình

- Sheet 2 là dữ liệu bán hàng trong ngày của cả Công ty

- Sheet 3 là bảng báo cáo, chương trình sẽ tự động lọc họ tên nhân viên trong Phòng của mình cùng các số liệu tương ứng theo BC ngày. Một nhân viên có thể xuất hiện nhiều lần do trong một ngày họ có thể bán nhiều mặt hàng.
Cảm ơn.
 

Đính kèm

N

nguyenmf_nh

Sơ cấp
8/10/14
2
2
1
30
bạn chỉ cần vlookup từ sheet tổng doanh số bán ra 1 ngày với sheet nguồn là sheet tên nhân viên phòng bạn là ra thoi à
=vlookup(b2,b:b,1,0)
 
  • Like
Reactions: Camry
C

Camry

Sơ cấp
25/4/06
50
0
6
Danang
Cảm ơn cả nhà mình đã làm được rồi. Nhưng có cách nào để tự động lọc và hiển thị vào sheet3 được không?
 
N

nguoiconxunui

Khách vãng lai
29/6/04
1,277
216
63
Bình Định
aso2pc.co.cc
Cảm ơn cả nhà mình đã làm được rồi. Nhưng có cách nào để tự động lọc và hiển thị vào sheet3 được không?
muốn tự động tới cỡ nào, khỏi cần làm luôn ah
 
S

SA_DQ

Thành viên thân thiết
29/6/05
456
53
28
63
HCM city
Xài macro sự kiện này
Mã:
Option Explicit
Private Sub Worksheet_Activate()
Dim J As Long
Dim Sht As Worksheet, Sh As Worksheet, Cls As Range, Rng As Range, sRng As Range
Dim fAdd As String
 
Set Sht = ThisWorkbook.Worksheets("Sheet1")
Set Sh = ThisWorkbook.Worksheets("Sheet2")
Set Rng = Sh.Range(Sh.[B1], Sh.[b2].End(xlDown))
[b4].CurrentRegion.Offset(1).ClearContents
Application.ScreenUpdating = False
For Each Cls In Sht.Range(Sht.[b2], Sht.[b2].End(xlDown))
  Set sRng = Rng.Find(Cls.Value, , xlFormulas, xlWhole)
  If Not sRng Is Nothing Then
  fAdd = sRng.Address
  Do
  J = J + 1
  With [A65500].End(xlUp).Offset(1)
  .Value = J
  .Offset(, 1).Resize(, 3).Value = sRng.Resize(, 3).Value
  End With
  Set sRng = Rng.FindNext(sRng)
  Loop While Not sRng Is Nothing And sRng.Address <> fAdd
  End If
Next Cls
Application.ScreenUpdating = True
Randomize
[a3].Resize(, 5).Interior.ColorIndex = 34 + 9 * Rnd() \ 1
End Sub
 

Đính kèm

  • Like
Reactions: Camry
C

Camry

Sơ cấp
25/4/06
50
0
6
Danang
Cảm ơn SA_DQ nhiều, đúng cái mình đang cần đây.
 

Thành viên trực tuyến

Không có thành viên trực tuyến.

Xem nhiều

TEXT LINK