[XIN TRỢ GIÚP] Tìm kiếm và Liệt kê

Ba Tê

Cạo Luôn Khỏi Gội
Tham gia ngày
5 Tháng năm 2009
Bài viết
9,858
Thích
13,765
Tuổi
59
#21
Lần sau gởi file sát thực tế ngay từ đầu để không làm mất thời gian người giúp bạn
Hình như bạn không dùng Option Explicit trong VBA?
Như vậy bạn có thử không cần Dim được không?
Vì Sub của bạn nếu có khai báo Option Explicit thì a, b ... VBA báo lỗi "Có biệt kích"!
 
Lần chỉnh sửa cuối:

HieuCD

Thành viên gạo cội
Tham gia ngày
14 Tháng chín 2010
Bài viết
4,461
Thích
6,249
#22
Hình như bạn không dùng Option Explicit trong VBA?
Như vậy bạn có thử không cần Dim được không?
Vì Sub của bạn nếu có khai báo Option Explicit thì a, b ... VBA báo lỗi "biệt kích"!
Mình không khai báo mặc định Option Explicit, để dể thêm biến và chạy thử ngay, suy nghỉ không bị gián đoạn. Nó cũng dở vì không kiểm tra biến
Biến a và b là thêm vào để biết kết quả lệnh, mình quên xóa:)
 

Ba Tê

Cạo Luôn Khỏi Gội
Tham gia ngày
5 Tháng năm 2009
Bài viết
9,858
Thích
13,765
Tuổi
59
#23
Mình không khai báo mặc định Option Explicit, để dể thêm biến và chạy thử ngay, suy nghỉ không bị gián đoạn. Nó cũng dở vì không kiểm tra biến
Biến a và b là thêm vào để biết kết quả lệnh, mình quên xóa:)
Bởi thế, nếu người khác dùng code có Option Explicit sẽ báo lỗi mà nhiều người không biết tại sao. Khai báo tường minh chẳng "bao lâu".
 
Tham gia ngày
10 Tháng ba 2018
Bài viết
337
Thích
768
#24

NamThienVu

Thành viên chính thức
Tham gia ngày
14 Tháng mười 2008
Bài viết
50
Thích
13
#26
Lần sau gởi file sát thực tế ngay từ đầu để không làm mất thời gian người giúp bạn
Mã:
End Sub
Cảm ơn bác @HieuCD đã chỉ bảo, lúc đầu em cũng đã gửi file giống file gốc, nhưng các bác ở trên bảo đọc "xoắn não" không hiểu gì nên em phải viết lại ví dụ cho đơn giản dễ hiểu ạh!!
 

NamThienVu

Thành viên chính thức
Tham gia ngày
14 Tháng mười 2008
Bài viết
50
Thích
13
#27
Sau khi gởi file tôi thường tải lại xem file mình gởi có đúng là file "mới nhất" mình muốn gởi không.
Tôn trọng người khác cũng là tôn trọng mình!

Dùng Mã Nhân viên ai lại dùng Tên NV.
Chỉnh lại code bài #17:
PHP:
Dạ em cảm ơn bác @Ba Tê, mọi khi em cẩn thận lắm, nhưng lần này không hiểu sao lại sơ suất thế, mong bác lượng thứ!!
Em đã download file bác edit về test thì thấy có lỗi ở sheet "Tong Hop": phần liệt kê nhân viên tên "Việt", "Khác" và "NV Mới 2" bị sai.
Em xin gửi lại 2 file: một của bác và một của em để bác dễ so sánh ạh!!
 

File đính kèm

Ba Tê

Cạo Luôn Khỏi Gội
Tham gia ngày
5 Tháng năm 2009
Bài viết
9,858
Thích
13,765
Tuổi
59
#28
Dạ em cảm ơn bác @Ba Tê, mọi khi em cẩn thận lắm, nhưng lần này không hiểu sao lại sơ suất thế, mong bác lượng thứ!!
Em đã download file bác edit về test thì thấy có lỗi ở sheet "Tong Hop": phần liệt kê nhân viên tên "Việt", "Khác" và "NV Mới 2" bị sai.
Em xin gửi lại 2 file: một của bác và một của em để bác dễ so sánh ạh!!
- Số liệu tôi lấy theo mã Cột P và cột BQ (hay là bạn lấy Mã từ cột khác: N và BK?) các sheet từ T1->T12, so với Mã trên dòng 1 từ I1 sang phải. Bạn kiểm tra lại thứ tự các mã từ I1 sang phải có đúng thứ tự các bảng trong cột B không?
- Sheet "T4" bạn filter cột BQ mã VIETTV xem có số liệu không?
Kiểm tra tương tự cho các trường hợp bạn thấy sai.
 

NamThienVu

Thành viên chính thức
Tham gia ngày
14 Tháng mười 2008
Bài viết
50
Thích
13
#29
- Số liệu tôi lấy theo mã Cột P và cột BQ (hay là bạn lấy Mã từ cột khác: N và BK?) các sheet từ T1->T12, so với Mã trên dòng 1 từ I1 sang phải. Bạn kiểm tra lại thứ tự các mã từ I1 sang phải có đúng thứ tự các bảng trong cột B không?
- Sheet "T4" bạn filter cột BQ mã VIETTV xem có số liệu không?
Kiểm tra tương tự cho các trường hợp bạn thấy sai.
Kính gửi bác @Ba Tê

Em xin phép giải thích lại:
1. Tên CBNV: hiện tại em đang quy định:
+ HUNGTM --> Hùng
+ HAPV1 --> Hà
+ HAIND --> Hải
+ HOAHT3 --> Hoa
+ CUONGKM --> Cường
+ HUYENDTT5 --> Huyền
+ TUANPA4 --> Tuấn
+ VIETTV --> Việt
+ HANHHT1 --> Hạnh (hiện tại chưa phát sinh số liệu, bắt đầu từ tháng 06/2018 sẽ phát sinh số liệu)
+ Nhân viên Mới 1 --> Mới 1 (làm trước dự phòng sẽ tuyển dụng Nhân sự mới trong tháng 06/2018, khi nào phát sinh chỉ việc thay tên bằng tên NS mới)
+ Nhân viên Mới 2 --> Mới 2 (làm trước dự phòng sẽ tuyển dụng Nhân sự mới trong tháng 06/2018, khi nào phát sinh chỉ việc thay tên bằng tên NS mới)
+ Toàn bộ những người khác (những người trước đây có làm việc tại cơ quan nhưng hiện tại đã nghỉ việc, hoặc điều chuyển sang vị trí khác, ví dụ: THUYLV, HUNGVN,......) --> Khác

2. Vùng dữ liệu:
Em đã cố gắng viết theo hướng tối giản nhất để nhân viên của em chỉ việc copy paste value vào bảng tính để ra kết quả (bên em chưa có phần mềm tối ưu BC nên phải làm thủ công bằng tay và các bạn nhân viên gần như không biết gì về excel). Vì thế những cột N, cột O hay cột BJ, BK và BL được ẩn đi để dấu công thức, các bạn nhân viên khi làm báo cáo chỉ copy dữ liệu thô xuất từ hệ thống và paste value vào 2 vùng (P đến U) và (BM đến BR).
Nhu cầu: lấy dữ liệu từ vùng Giải ngân mới trong từng tháng (vùng cột N đến cột U trong từng sheet từ T1 đến T12) (a) và
vùng Thu nợ gốc trong từng tháng (vùng cột BJ đến cột BR trong từng sheet từ T1 đến T12) (b), trong đó yêu cầu:

Vùng Giải ngân mới (a):
- Tên CBNV sẽ lấy căn cứ tại cột N --> Vì cột này mới lấy được tên chung nhóm những CBNV là Khác (như giải thích ở trên), và lấy được tên CBNV là chữ có dấu.
- Cột mục đích cho vay lấy giá trị cột O: để thay thế cho giá trị cột S vì viết tắt dễ hiểu hơn.
Vùng Thu nợ (b):
- Tất cả các giá trị tại vùng (b) này chỉ được lấy khi tương ứng dòng chứa nó có giá trị >=0 tại cột BR (Filter cột BR với điều kiện >=0)
- Tên CBNV sẽ lấy căn cứ tại cột BK --> Vì cột này mới lấy được tên chung nhóm những CBNV là Khác (như giải thích ở trên), và lấy được tên CBNV là chữ có dấu.
- Cột mục đích cho vay lấy luôn giá trị cột BP (hoặc lấy cột BL giống như ở vùng (a) ở trên)

==> Căn cứ Vùng (a) và Vùng (b) để "Liệt kê" vào từng Vùng Thu nợ và Vùng giải ngân của từng CBNV trong sheet "Tong Hop", ví dụ:
+ Vùng Thu nợ (b): Tìm kiếm cứ CBNV nào có tên là "" tại cột BK của sheet "T4" thì lọc và liệt kê sang sheet "Tong Hop" như sau:
Sheet "T4" kết chuyển liệt kê vào sheet "Tong Hop" vùng CBNV "" tương ứng như sau:
BM-->X
BN-->Y
BO-->Z
BL (hoặc BP)-->AA
BR-->AB
+ Vùng Giải ngân mới (a): Tìm kiếm cứ CBNV nào có tên là "" tại cột N của sheet "T4" thì lọc và liệt kê sang sheet "Tong Hop" như sau:
Sheet "T4" kết chuyển liệt kê vào sheet "Tong Hop" vùng CBNV ""tương ứng như sau:
P-->AD
Q-->AE
R-->AF
O-->AG
U-->AH

==> Làm tương tự như vậy với từng CBNV, từ từng sheet từ "T1" đến "T12" lần lượt đưa vào "Liệt kê" tại sheet "Tong Hop"
(Trong file của em gửi dưới đây tại dòng 4 của sheet "Tong Hop" em đã để công thức Test xem kết quả Tổng thu nợ và Giải ngân tại dòng 3 xem có chuẩn "khớp" với dòng 4 hay không.
Ngoài ra, trong sheet "Tong Hop" em muốn tại các cột "Mục đích vay" thì chỉ điền thông tin mục đích vay viết tắt thôi, đọc cho dễ hiểu, chứ liệt kê như lấy từ nguồn BC gốc thì dài lê thê!!)

Trong file bác làm có số liệu phát sinh của NV Mới2 là chưa chuẩn và phần nhân viên "Khác" không phát sinh Thu nợ hay Giải ngân là cũng chưa đúng (thể hiện tại vùng D18:G18) và vùng (D15:E15) tại sheet "Tong Hop" trong file bác làm)

Em xin gửi lại file chuẩn của em, kính nhờ bác làm luôn trên file này để em đỡ ngồi phải sửa lại công thức, do qua nay em có sửa công thức ở những phần hành công việc khác ở sheet khác)

Em cảm ơn rất nhiều ạh!!
 

File đính kèm

NamThienVu

Thành viên chính thức
Tham gia ngày
14 Tháng mười 2008
Bài viết
50
Thích
13
#30
- Sheet "T4" bạn filter cột BQ mã VIETTV xem có số liệu không?
Kiểm tra tương tự cho các trường hợp bạn thấy sai.
Trong file của em gửi thì T4 bạn VIETTV không phát sinh Thu nợ (Filter cột BQ của sheet T4 sẽ không có số liệu), nhưng lại phát sinh Giải ngân mới 2 khoản tổng tiền là 900.000.000đ.
Sang T5 thì bạn VIETTV vừa phát sinh Thu nợ và vừa Giải ngân
 

Ba Tê

Cạo Luôn Khỏi Gội
Tham gia ngày
5 Tháng năm 2009
Bài viết
9,858
Thích
13,765
Tuổi
59
#31
Kính gửi bác @Ba Tê

Em xin phép giải thích lại:
..............................................
Em xin gửi lại file chuẩn của em, kính nhờ bác làm luôn trên file này để em đỡ ngồi phải sửa lại công thức, do qua nay em có sửa công thức ở những phần hành công việc khác ở sheet khác)

Em cảm ơn rất nhiều ạh!!
Tôi chỉ cần bạn xác định lấy mã cột N và cột BK ở các sheets T1 -> T12.
Bạn làm việc cũng vui. Mã là "Hùng" --> Nhập vào vùng tên của "Tạ Mạnh Hùng" ở dòng 1 sheet("Tong hop"). (Ác thiệt!)
Tại dòng 1 sheet Tong hop tôi sửa lại thành "Hùng", Bạn muốn có đầy đủ họ tên thì tra từ Data qua ô bên cạnh.
 

File đính kèm

Top