chipheo_nd
Thành viên mới

- Tham gia
- 15/6/09
- Bài viết
- 7
- Được thích
- 0


Mình có dữ liệu như File đính kèm, giờ muốn gộp giá trị trong các cột thành một ô như sau (B-C;D-E) và bỏ qua các dòng mà giá trị ở Cột C và E là 0.
Ví dụ: Như dữ liệu trên thì sẽ gộp thành một ô là: 1990-5;1991-1;1994-10;1995-7;1998-5.
Thanks các b!
Option Explicit
Sub abc()
Dim St() As String, i As Integer, R As Range
With Sheets(1).Range("G2:H12")
For Each R In .Cells
If R.Value <> "" Then
i = i + 1
ReDim Preserve St(1 To i)
St(i) = R.Value
End If
Next R
[J1] = Join(St, "; ")
End With
End Sub
Mình có dữ liệu như File đính kèm, giờ muốn gộp giá trị trong các cột thành một ô như sau (B-C;D-E) và bỏ qua các dòng mà giá trị ở Cột C và E là 0.
Ví dụ: Như dữ liệu trên thì sẽ gộp thành một ô là: 1990-5;1991-1;1994-10;1995-7;1998-5.
Thanks các b!
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
=JoinText(";",IF(C2:C12,B2:B12&"-"&C2:C12,1/0),IF(E2:E12,D2:D12&"-"&E2:E12,1/0))