Bởi vì trước đây không có nên giờ mới gộp lại và đánh mã số, danh sách 2 là danh sách lương do phòng tai chính kế toán quản lý nên mới rắc rối vậy. Bác xem có cách nào giup dược không?
Với những thông tin bạn cung cấp từ đầu topic đến giờ thì bài này có thể giải quyết được. Mình đề xuất 1 hướng giải. Bạn thử xem có được không nhé. Tất nhiên sẽ mất công khá nhiều đấy.
1. Copy danh sách 2 và dán vào một sheet tạm nào đó của file chứa danh sách 1 (Sheet2 chẳng hạn).
2. Sử dụng chức năng Replace để thống nhất tên phòng ban giữa 2 danh sách. Việc này là rất cần thiết để có kết quả đúng.
3. Thêm 1 cột phụ ở danh sách tạm. Chẳng hạn lấy luôn cột A của Sheet2 với công thức cho ô A2 là
=C2&"_"&D2 (nối phòng ban và tên nhân viên lại)
4. Sử dụng công thức sau cho Sheet1 (danh sách 1) và fill công thức cho toàn cột:
M3 (số BHXH)
=IF(F3="hđ","",VLOOKUP(H3&"_"&B3,Sheet2!$A$2:$F$686,5,0))
N3 (Số TK)
=IF(F3="hđ","",VLOOKUP(H3&"_"&B3,Sheet2!$A$2:$F$686,6,0))
5. Copy kết quả của các cột M, N và Paste Values lại chính vùng vừa copy.
6. Xóa Sheet2.
Lưu ý quan trọng: Nếu có phát sinh lỗi #N/A tại hàng nào thì bạn kiểm tra lại tên nhân viên hoặc tên phòng ban xem ở Sheet2 có hay không. Việc này có thể kiểm tra bằng hàm COUNTIF. Chẳng hạn:
- Kiểm tra tên có hay không: O3
=IF(F3="hđ","",COUNTIF(Sheet2!D,B3))
- Kiểm tra phòng ban có hay không: P3
=IF(F3="hđ","",COUNTIF(Sheet2!C:C,H3))
Nếu chỗ nào xuất hiện số 0 thì ở đó không trùng khớp giữa 2 danh sách. Ví dụ: Hàng 5 của danh sách 1 là tên "Nguyễn Thị Mỹ N
ữ", còn hàng 30 của danh sách 2 là "Nguyễn Thị Mỹ N
ử". Bạn cần phải sửa cho đến khi không còn số 0 nào trên 2 cột O, P thì sẽ có kết quả đúng.