Microsoft Excel (Bài 71): Nối chuỗi trong Excel với ARRAYTOTEXT

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: