Trong Excel 365, hoặc Office 2016 mới có hàm TEXTJOIN, vậy làm thế nào để chúng ta có hàm TEXTJOIN tự tạo để dùng cho những phiên bản Office cũ hơn hoặc không đăng ký bản quyền theo gói. May thay chúng ta có VBA và có thể tự viết hàm tự tạo để nối chuỗi, nối các ô trong Excel với nhau.
Xem nhanh
Mình đặt lại tên là JOINTEXT để tránh việc trùng tên với hàm TEXTJOIN khi các bạn dùng Office có sẵn hàm đó.
Cách dùng thì tương tự, với cú pháp: JOINTEXT(Ký tự phân cách, Lọc bỏ trống, Vùng nối chuỗi)
Để dùng hàm này, bạn có thể copy đoạn code VBA sau. Mở Notepad (Windows + R, rồi gõ: notepad xong Enter), rồi dán đoạn code này vào, sau đó lưu lại dưới tên tên JOINTEXT.bas.
Sau đó mở file Excel cần áp dụng, và nhấn ALT+F11. Sau đó click phải vào Project là file bạn đang dùng, chọn Import Module, rồi chọn file .bas vừa lưu trên để đưa hàm này vào trong File Excel bạn cần sử dụng. Vậy là bạn có thể sử dụng được hàm tự tạo này rồi.
Tương tự hàm SUMIF, COUNTIF, hay AVERAGEIF, nay bạn hoàn toàn có thể tạo ra hàm JOINIF để nối các chuỗi theo điều kiện mình quy định để nối chuỗi từ nhiều dòng của 1 cột vào 1 ô theo điều kiện. Với cú pháp như sau:
=JOINIF(Vùng điều kiện, Điều kiện, Vùng kết quả nối chuỗi, Ký tự phân cách, Lọc bỏ trùng, Hiển thị điều kiện)
Cách dùng cũng tương tự với JOINTEXT, bạn lưu copy & lưu đoạn code bên dưới với tên JOINIF.bas, sau đó Import vào file cần dùng là có thể vận dụng được hàm này.
[sociallocker id=”3047″][/sociallocker]
Với hàm JOINIFS, cũng như SUMIF ta có SUMIFS để liệt kê nhiều vùng điều kiện và điều kiện hơn. Với cú pháp như sau:
=JOINIFS(Ký tự phân cách, Lọc bỏ trùng, Vùng kết quả gộp, Vùng điều kiện 1, Điều kiện 1,…, Vùng điều kiện n, Điều kiện n)
Cách làm cũng tương tự cho 2 hàm trên, tuy nhiên nếu bạn cho cùng 1 Module, thì nên gộp lại hàm UniqueArray thành 1 hàm rồi dùng chung cho cả 2 hàm. Còn mặc định, mình đã đổi tên cho bạn vận dụng mà không bị xung đột.
[sociallocker id=”3047″][/sociallocker]
Với hàm TEXTJOIN có sẵn trong Excel 365, Excel 2016, hoặc Excel 2019 bạn có thể vận dụng để ghép chuỗi tương tự như JOINTEXT, nếu bạn muốn vận dụng hàm theo mảng và dùng kết hợp IF thì vẫn được.
Để xuống dòng trong cùng 1 ô, bạn có thể sử dụng ký tự đặc biệt: CHAR(10) & CHAR(13) làm ký tự phân cách khi nối chuỗi.