Phổ Biến 5/2024 # Hướng Dẫn Chức Năng Mail Merge Trong Excel # Top 7 Yêu Thích

Bạn đã học qua cách dùng các hàm và các kỹ thuật phức tạp trong excel, Hôm nay tôi hướng dẫn các bạn cách làm một ứng dụng nho nhỏ nhưng rất hữu ích, đặt biệt nó rất cần thiết đối với các bạn kế toán thường phải làm tem nhãn để dán lên tài sản cố định, hay các bạn nhân viên hành chính nhân sự phải in phiếu lương, thư mời…

Ví dụ tôi có bản danh sách nhân viên nằm ở Sheet2 như sau:

Và trên phiếu lương tôi cần xuất 3 thông tin xuất hiện đó là Mã Nhân Viên, Họ tên nhân viên và Phòng ban.

Theo danh sách bên trên thì mỗi nhân viên ứng với 1 con số ở bên cột No. Như vậy Cách đơn giản nhất là dùng Hàm Vlookup để gọi thông tin của từng nhân viên dựa trên số thứ tự của nó tương ứng. do đó tôi thiết kế một cái nhãn ở một trang tính khác như sau:

A B 1 Số thứ Tự 2 3 Mã Nhân Viên =vlookup(B1,sheet2!A:D,4,0)4 Họ Và Tên =vlookup(B1,sheet2!A:E,5,0)

5 Phòng Ban =vlookup(B1,sheet2!A:F,6,0)

Mỗi khi bạn nhập các số từ 1 cho đến số cuối cùng trong bản danh sách trên thì mọi thông tin của nhân viên đó được gọi ra để bạn tiến hành in.Và lưu ý là số thứ tự trong cột A không được trùng nhau.

Tuy nhiên cách làm như trên thì mỗi lần in chỉ hiện ra thông tin của một nhân viên trên một trang giấy như thế thì mất thời gian và tốn kém khi danh sách nhân viên, hay tài sản dài hàng trăm, hàng ngàn dòng.

Lúc này đòi hỏi ta thiết kết lại trang in sao cho mối lần in là nhiều nhất (tùy theo khổ giấy in đặc biệt là loại giấy có thiết kế và định dạng sẵn có keo dán.

Ở đây tôi in trên nền giấy in sẵn A5 với bốn nhãn nên tôi thiết kế trang in tương ứng như sau:

Cũng theo cách làm trên mỗi khi ta nhập một giá trị tương ứng với số thứ tự trong cột A của sheet2 vào ô D3 thì các nhãn sẽ tự động điền thông tin của 4 nhân viên có số thứ tự liền kề với giá trị của ô D3.

Như vậy thay vì in 1 lần 1 người như ở cách làm thứ 1, lúc này một lần in ta có thể in được 4 người. Nếu khổ giấy của bạn có thể in nhiều hơn thì bạn chỉ việc copy cả ba dòng chứa mã nhân viên, Họ Tên và phòng ban rồi dán xuống bên dưới. hoặc bên phải. Sau đó chỉnh sửa lại giá trị Lookup_value của hàm Vlookup thành D3+4; D3+5 v.v.

Đến đây thì ứng dụng hoàn thành 90% rồi. Sở dĩ như vậy vì nếu bạn làm việc cho công ty lớn, mỗi phòng ban có nhiều người, Nếu in theo thứ tự từ 1~ hết nhân viên trong công ty sau đó mới bọc nhãn ra, sắp xếp lại rồi bàn giao cho từng phòng. Làm như thế này cũng rất mất thời gian phân loại và sắp xếp sau khi in.

Lúc này bạn nghĩ đến việc làm sao để in theo phòng ban để không phải sắp xếp các bản in?

Cách thứ nhất,rất đơn giản đó là bạn chuyển sang Sheet2 chứa danh sách nhân viên, ta thiết lập chức năng Data Filter ở dòng thứ 1 rồi dùng chức năng Sort để sắp sếp cột Phongban theo thứ tự Alphabet, và sau đó đánh số lại cột No (Cột A), Lúc này ta có thể in theo từng phòng ban rồi.

Cách thứ 2:Như bạn thấy ở danh sách nhân viên bên trên tôi có thêm cột P.ban_No được đánh số thứ tự theo số người trong mỗi phòng ban. Đây là điểm mấu chốt của cách 2, Vậy làm sao để đánh số thứ tự theo từng phòng ban? Ta dùng Hàm IF để thực hiện việc đánh số tự động.

Để Hàm Vlookup tìm kiếm chính xác và không bị lỗi thì ta phải thiết lập Data Validation cho cột phòng ban ở danh sách nhân viên (Sheet2) và ô D1 của trang in

Lưu ý lúc này Lookup_Array là vùng từ cột C:F, và công thức hàm bên trên ta có thể lấy vùng tham chiếu từ C:F áp dụng cho tất cả các công thức trên.

Tối ưu thêm kết quả in:

Theo thiết lập trên thì ta đã hoàn chỉnh được chức năng in tự động giống với Merge Mail rồi, tuy nhiên sẽ có vấn đề phát sinh trong quá trình in, ví dụ như trang in bị rách một phần, làm cho chất lượng của một vùng nào đó của kết quả in bị xấu hoặc bị mất, lúc này ta muốn in lại một nhân viên bất kỳ mà không phải dò tìm nhân viên đó ở vị trí nào trong danh sách.

Giả sử như cột A đã được đánh số theo thứ tự từ 1 ở dòng số 2 thì, ta sẽ định vị được vị trí của nhân viên là kết quả của Hàm Match trừ đi 1 đơn vị. từ đó ta dùng hàm Vlookup để trả về số thứ tự của nó trong mỗi phòng ban, nó thuộc phòng ban nào.

Ta đặt công thức ở cột C2 như sau: =Vlookup(MATCH(D2,Sheet2!D:D,0)-1,Sheet2!A:B,2,0)&” “&Vlookup(MATCH(D2,Sheet2!D:D,0)-1,Sheet2!A:F,6,0)

lúc này mỗi khi nhập mã nhân viên vào ô D2 thì C2 sẽ hiện ra vị trí của nhân viên đó ở phòng ban nào. Căn cứ vào đó ta sẽ nhập lại tùy chọn ở ô D1 và D3 và in lấy kết quả.

Thêm một ý tưởng nữa là chúng ta sẽ dự báo số lần in cho mỗi một phòng ban và số lần in còn lại để giúp ta chuẩn bị giấy in tốt hơn.

Dự báo số trang in (ô D4) : Ta dùng Hàm CountIF để đếm số nhân viên căn cứ vào giá trị của ô D4 (Phòng ban) sau đó chia số nhân viên trong mỗi lần inC4=countif(sheet2!D:D,Sheet1!D1)D4=C4/ 4

Dự báo số trang in còn lại (ô D5) ta dùng Hàm And để kết hợp với Hàm IF để xuất ra các hướng dẫn cho người in.