Code VBA Excel (Add-ins)
Nối dữ liệu trong các ô thành một chuỗi
CODE:
Function JoinText(ByVal Sep As String, ByVal IgnoreBlanks As Boolean, ParamArray sArray()) As String
Dim tmpArr, SubArr, Arr(), Item, n As Long, tmp As String
'On Error Resume Next
For Each SubArr In sArray
tmpArr = IIf(IsArray(SubArr), SubArr, Array(SubArr))
For Each Item In tmpArr
tmp = IIf(TypeName(Item) = "Error", "", Trim(CStr(Item)))
If IgnoreBlanks = False Or Len(tmp) Then
n = n + 1
ReDim Preserve Arr(1 To n)
Arr(n) = tmp
End If
Next
Next
If n Then JoinText = Join(Arr, Sep)
End Function
Cú pháp: JoinText(Dấu phân cách, bỏ qua giá trị rổng hay không?, Dữ liệu)
Ví dụ:
=JoinText(", ", TRUE, A1:A3) sẽ nối các giá trị khác rổng của vùng A1:A3 thành 1 chuổi với dấu phẩy là dấu phân cách
Hàm này cho phép nối chuổi với những điều kiện phức tạp.... Ví dụ:
=JoinText(" - ",TRUE,IF(FIND("b",$G$1:$G$4),$G$1:$G$4,"")) Nghĩa là trong vùng G1:G4, cell nào có ký tự "b" thì lấy
Hàm cũng cho phép nối các vùng không liên tục... Ví dụ:
=JoinText(", ", TRUE, A1:A5, A7) vân vân... bạn tự khám phá nhé
(Nguồn: http://www.giaiphapexcel.com - ndu96081631)
Áp dụng thực tế với cú pháp: =JoinText("";FALSE;C6:C1997)
Diễn giải chi tiết cú pháp ở trên như sau:
JoinText: Mở Excel lên vào giao diện VBA (Nhấn tổ hợp phím: Alt + F11) Sau đó Insert Module. Paste CODE ở trên vào Module vừa Insert. Xong Run module. Tắt VBA. Hoặc sử dụng file Add-ins (file định dạng .xla)
File Add-ins nối chuỗi (File chứa hàm nối chuỗi - Chỉ những máy có file này mới có hàm nối chuỗi)
"" : Là các chuỗi sẽ được nối tiếp theo nhau, không có khoảng cách. Nếu:
" " : Sẽ có cách khoảng.
";" : Sẽ có dấu ;
...
FALSE: Bỏ qua giá trị rổng.
C6:C1997: Nối dữ liệu trong các ô, từ ô C6 đến ô C87.