Search This Blog

Tuesday, July 7, 2015

[Excel] Nối nhanh nội dung các Cell trong 1 Range thay vì dùng hàm CONCATENATE()

Hôm nay ngồi quằn quại với đống report bằng Excel, cảm thấy phát khùng lên vì hàm CONCATENATE() của Excel nó không cho truyền vào 1 range, mà bắt phải truyền vào từng Cell, thế là lòi ra cái hàm macro này.
Tác dụng: nối (concatenate) dữ liệu từ nhiều Cell trong 1 RANGE với delimiter tùy chọn.
Cách dùng: Alt+F11 , Add new module, copy&paste đoạn source bên dưới và tận hưởng việc nối cell bây giờ dễ dàng hơn bao giờ hết.
Trước kia: để nối nội dung của các cell từ A1~A5, giữa các nội dung có dấu phẩy (,) thì phải gõ
 =CONCATENATE(A1,",",A2,",",A3,",",A4,",",A5) 
Hãy tưởng tượng khi bạn phải nối nội dung của 50 Cells :'(
Bây giờ thì chỉ cần
 =CONCAT(A1:A5,",") 

Function concat(useThis As Range, Optional delim As String) As String
' this function will concatenate a range of cells and return one string
' useful when you have a rather large range of cells that you need to add up
Dim retVal, dlm As String
retVal = ""
If delim = Null Then
dlm = ""
Else
dlm = delim
End If
For Each cell In useThis
If CStr(cell.Value) <> "" And CStr(cell.Value) <> " " Then
retVal = retVal & CStr(cell.Value) & dlm
End If
Next
If dlm <> "" Then
retVal = Left(retVal, Len(retVal) - Len(dlm))
End If
concat = retVal
End Function
view raw concat.vb hosted with ❤ by GitHub

PHÂN BIỆT QUẢN TRỊ VÀ QUẢN LÝ

PHÂN BIỆT QUẢN TRỊ VÀ QUẢN LÝ Hội đồng quản trị, tiếng Anh là BOD (Board Of Directors). Còn Ban giám đốc hay Ban quản lý tiếng Anh là BOM (B...