Dạo này mình làm báo cáo lương, có một cái file excel mà dữ liệu nó lộn xộn quá. Cần phải dựa vào mã nhân viên để lấy thông tin phòng ban, chức vụ, rồi dựa vào chức vụ đó để tính lương cơ bản. Làm thủ công thì cực, mà dùng hàm riêng lẻ thì nó cũng hơi rối.
Sau một hồi mò mẫm, mình phát hiện ra cách kết hợp hàm IF và VLOOKUP khá là hiệu quả. Ý tưởng là mình sẽ dùng VLOOKUP để lấy ra thông tin ban đầu, sau đó dùng IF để kiểm tra xem thông tin đó có đúng không, nếu không đúng thì mình sẽ xử lý tiếp hoặc trả về một giá trị khác.
Ví dụ cụ thể:
- Giả sử bạn có một bảng dữ liệu chính ở Sheet1, cột A là Mã NV, cột B là Tên NV.
- Ở Sheet2, bạn có một bảng khác để tra cứu thông tin phòng ban, chức vụ dựa trên Mã NV.
- Và ở Sheet3, bạn có một bảng tra cứu lương cơ bản theo chức vụ.
Để lấy được lương cơ bản cho từng nhân viên, bạn có thể làm như sau:
=IFERROR(VLOOKUP(VLOOKUP(A2, Sheet2!$A$2:$C$100, 2, FALSE), Sheet3!$A$2:$B$50, 2, FALSE), "Không tìm thấy")Trong đó:
VLOOKUP(A2, Sheet2!$A$2:$C$100, 2, FALSE): Lấy ra chức vụ của nhân viên ở ô A2 dựa vào bảng ở Sheet2.VLOOKUP(..., Sheet3!$A$2:$B$50, 2, FALSE): Lấy ra lương cơ bản từ Sheet3 dựa vào chức vụ vừa tìm được.IFERROR(..., "Không tìm thấy"): Xử lý trường hợp không tìm thấy thông tin, trả về chuỗi "Không tìm thấy" thay vì lỗi.
Cách này giúp mình xử lý được các trường hợp dữ liệu không liền mạch, phải tra cứu qua nhiều bước. Mọi người có cao kiến gì hay hơn hoặc gặp tình huống tương tự thì chia sẻ thêm nhé!