Việc nối chuỗi trong Excel thường được thực hiện bằng toán tử “&” hoặc bằng hàm CONCATENATE. Tuy vậy việc nối nhiều chuỗi, hoặc nối theo điều kiện là rất khó. Với hàm ArrayToText mọi việc sẽ đơn giản hơn nhiều.
Import file mArrayToText.bas vào vba:
- ALT+F11.
- Chuột phải vào workbook chọn Import File…
- Chọn file mArrayToText.bas.
Sau khi Import file thành công, bạn có trong thay hàm ArrayToText với nguyên mẫu:
- ArrayToText(vArray, PhanTach)
- Array: Mảng, vùng,..
- PhanTach: kiểu text, là dấu phân tách, bỏ qua sẽ là “;”
- Trả lại chuỗi, ghép từ các phần tử của mảng, có dấu phân tách.
- Ghép các phần tử của mảng thành chuỗi, nếu ô bị lỗi thì bỏ qua. Ghép từ trái sang phải, từ trên xuống dưới.
Nối chuỗi từ một cột khi bỏ qua PhanTach, khi đó dấu phân cách là “;”:
Nối chuỗi từ một dòng, với dấu PhanTach là khoảng trắng:
Nối chuỗi từ một vùng nhiều hàng, nhiều cột:
- Thứ tự ghép là từ trái sang phải, tử trên xuống dưới.
- Nếu cần ngược lại hãy nghĩ tới hàm TRANSPOSE.
Nối chuỗi theo điều kiện:
- Bản chất ArrayToText không có khả năng nối chuỗi theo điều kiện, nhưng nó lại bỏ qua những phần tử lỗi. Những phần tử không thỏa mãn điều kiện chỉ việc thay bằng na() là chúng ta đã có một hàm nối chuỗi trong Excel theo điều kiện. Điều này cho phép ta nối chuỗi theo những điều kiện vô cùng phức tạp cũng không vấn đề gì.
- Nối các chuỗi trong “Số Thùng” nếu cột “Mã vật tư” là “A”.
- Nếu phần tử “Mã vật tư” là “A” thì trả lại phần tử tương ứng trong “Số Thùng”, ngược lại sẽ trả lại na(). Kết quả cuối cùng sẽ do ArrayToText ghép nối.
Nối chuỗi từ nhiều cột riêng biệt có xét thêm điều kiện:
- Nếu “Mã Vật Tư” là “a” thì sẽ ghép “Số thùng” & “(” & SL & “”)”
- Phối hợp với công thức mảng, bạn sẽ bất khả chiến bại với việc nối chuỗi:
Sử dụng VBA giúp ích rất nhiều trong công việc: giúp bạn tăng tốc trong quá trình xử lý trên Excel, giúp lập các báo cáo tự động, điều khiển các chương trình khác như Word, Power Point, Outlook … giúp biến file Excel của bạn trở thành 1 phần mềm chuyên nghiệp …
2 Th10 2020
2 Th10 2020
2 Th10 2020
2 Th10 2020
2 Th10 2020
2 Th10 2020