Hàm CONCATENATE không áp dụng được cho công thức mảng (1 người xem)

Người dùng đang xem chủ đề này

khongnhienttt

Thành viên hoạt động
Tham gia
15/7/15
Bài viết
137
Được thích
33
Mình có dãy số từ a1 đến a5 và cần ghép lại phân cách bằng dấu “,” , mình dung công thức mảng lấy được các giá trị cần lấy ra rồi, nhưng tới bước ghép chúng lại bằng hàm CONCATENATE thì không được, cám ơn các bạn
Capture.jpg
 
Mình có dãy số từ a1 đến a5 và cần ghép lại phân cách bằng dấu “,” , mình dung công thức mảng lấy được các giá trị cần lấy ra rồi, nhưng tới bước ghép chúng lại bằng hàm CONCATENATE thì không được, cám ơn các bạn
View attachment 144753

Đương nhiên không được rồi!
Nói chung trong Excel, không có hàm nào có khả năng nối chuỗi từ mảng cả. Phải dùng VBA bạn à
Hàm JoinText tôi viết cũng khá lâu
Mã:
Function JoinText(ByVal Delimiter As String, ParamArray Arrays()) As String
  Dim aTmp, arr(), Item, tmp As String
  Dim i As Long, n As Long
  'On Error Resume Next
  For i = LBound(Arrays) To UBound(Arrays)
    aTmp = Arrays(i)
    If Not IsArray(aTmp) Then aTmp = Array(aTmp)
    For Each Item In aTmp
      If TypeName(Item) <> "Error" Then
        tmp = CStr(Item)
        n = n + 1
        ReDim Preserve arr(1 To n)
        arr(n) = tmp
      End If
    Next
  Next
  If n Then JoinText = Join(arr, Delimiter)
End Function
(Code trên cho vào 1 module nhé)
Để nối chuỗi như yêu cầu của bạn, ta gõ công thức sau:
Mã:
=JoinText(", ",A1:A5)
Vậy là xong!
Hàm này còn có thể nối chuỗi theo điều kiện tùy ý (bạn cứ tự mình khám phá)
 
dạ em thì thường viết vba bằng cách cho dữ liệu đầu vào là range, sao đó mới gán nó thành chuỗi, mà code của thầy thì thuộc dạng thủ thuật rồi, em cám ơn thầy, đó giờ cố tìm cách nối chuỗi trong excel, giờ thì em đã hiểu
 

Bài viết mới nhất

Back
Top Bottom