Giúp đỡ - Office 2016 thiếu hàm CONCAT , hướng dẫn cách thay thế bằng hàm tương đương

Liên hệ QC

mrhoangsp

Thành viên mới
Tham gia
10/6/09
Bài viết
11
Được thích
2
Chào các bạn.
Mình cài bản Office 2016 về nhưng không có hàm CONCAT như Microsoft giới thiệu tính năng mới.
Mình sử dụng hàm này kết hợp với điều kiện IF , khi dòng 15 có giá trị thì tự động nối dữ liệu của theo cột của dòng 3 và dòng 15 (chung cột) và tiếp tục tìm và nối dữ liệu tương ứng cho các cột kết tiếp.
Khi file này mở trên máy mình thì công thức báo lỗi : '_xlfn.CONCAT(IF($S7:$HX7>0;$S$2:$HX$2&"["&$S7:$HX7&"],";""))
Sau khi tìm hiểu trên mạng ... mình đã tìm và chép add-in cho hàm CONCAT với đoạn mã này thêm vào , sử dụng đơn lẻ thì hoạt động được nhưng mình dùng theo công thức trên, theo mảng thì báo lỗi không dùng được :

The CONCAT Function

Public Function CONCAT(ParamArray Text1() As Variant) As String
'PURPOSE: Replicates The Excel 2016 Function CONCAT
'SOURCE: www.TheSpreadsheetGuru.com

Dim RangeArea As Variant
Dim Cell As Range

'Loop Through Each Cell in Given Input
For Each RangeArea In Text1
If TypeName(RangeArea) = "Range" Then
For Each Cell In RangeArea
If Len(Cell.Value) <> 0 Then
CONCAT = CONCAT & Cell.Value
End If
Next Cell
Else
'Text String was Entered
CONCAT = CONCAT & RangeArea
End If
Next RangeArea

End Function

(chi tiết các bạn xem file đính kèm giùm mình nha ...)
Mình đang học cách đồng bộ dữ liệu qua lại giữa excel và Project nên bị lỗi chổ này chưa tìm ra các khác phục ... nhờ các bạn giúp đỡ.
Cảm ơn !
 

File đính kèm

  • loc noi du lieu co dieu kien.xlsx
    30.5 KB · Đọc: 7
Tên hàm gì mà thô dữ vậy chèn đét thiên địa quỷ thần ơi....
Mình cài bản Office 2016 về nhưng không có hàm CONCAT như Microsoft giới thiệu tính năng mới.
Nói chứ hàm này tích hợp vào Office 2019 trở lên á bạn ơi.

2016 đổ lại có Concatenate y chang Concat thay.
 
Upvote 0
Tên hàm gì mà thô dữ vậy chèn đét thiên địa quỷ thần ơi....

Nói chứ hàm này tích hợp vào Office 2019 trở lên á bạn ơi.

2016 đổ lại có Concatenate y chang Concat thay.
Khác bạn ơi , Concatenate phân biệt nối bằng các dấu phẩy và vị trí từng ô , không tự nối theo mảng như Concat được, với lại nó lại nối có điều kiện nữa nên mình chưa nghĩ ra được hàm nào thay thế .. !
 
Upvote 0
Khác bạn ơi , Concatenate phân biệt nối bằng các dấu phẩy và vị trí từng ô , không tự nối theo mảng như Concat được, với lại nó lại nối có điều kiện nữa nên mình chưa nghĩ ra được hàm nào thay thế .. !
Dùng Hàm tự tạo bằng VBA với điều kiện bạn ghi kết quả muốn có vào vài dòng dữ liệu cụ thể.
 
Upvote 0
Bạn thử hàm này
Mã:
Public Function CONCAT(ParamArray Text1() As Variant) As String
    Dim iVar As Variant, iStr As Variant
    For Each iVar In Text1
        iVar = iVar
        If IsArray(iVar) Then
            For Each iStr In iVar
                CONCAT = CONCAT & iStr
            Next
        Else
            CONCAT = CONCAT & iVar
        End If
    Next
End Function
Hoặc viết vầy cho gọn
Mã:
Public Function CONCAT(ParamArray Text1() As Variant) As String
    Dim iVar As Variant, iStr As Variant
    For Each iVar In Text1
        iVar = iVar
        If Not IsArray(iVar) Then iVar = Array(iVar)
        For Each iStr In iVar
            CONCAT = CONCAT & iStr
        Next
    Next
End Function
 
Upvote 0
Dùng Hàm tự tạo bằng VBA với điều kiện bạn ghi kết quả muốn có vào vài dòng dữ liệu cụ thể.
VBA mình đang ở cấp nhi đồng ah bạn ơi ... :) , mình chỉ biết chạy thôi chứ chưa biết viết và hiểu nó bị lỗi gì khi không chạy được , hàm excel mình dùng thì còn căn bản lắm chưa biết cách dùng hàm cho gọn hơn .. !
Bài đã được tự động gộp:

Bạn thử hàm này
Mã:
Public Function CONCAT(ParamArray Text1() As Variant) As String
    Dim iVar As Variant, iStr As Variant
    For Each iVar In Text1
        iVar = iVar
        If IsArray(iVar) Then
            For Each iStr In iVar
                CONCAT = CONCAT & iStr
            Next
        Else
            CONCAT = CONCAT & iVar
        End If
    Next
End Function
Hoặc viết vầy cho gọn
Mã:
Public Function CONCAT(ParamArray Text1() As Variant) As String
    Dim iVar As Variant, iStr As Variant
    For Each iVar In Text1
        iVar = iVar
        If Not IsArray(iVar) Then iVar = Array(iVar)
        For Each iStr In iVar
            CONCAT = CONCAT & iStr
        Next
    Next
End Function
Cảm ơn bạn mình đã áp dụng thành công ... cái này tiện ích, không cần phải cài đặt Office 2019 để có lệnh này ... :)
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom