Giúp về ghép giá trị các Cột lại với nhau có điều kiện (1 người xem)

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

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!
 

File đính kèm

xem formula trong file nhé!
 

File đính kèm

thanks b! Ý mình muốn kết hợp ở 1 ô b à. Tại 1 ô nào đó thì sẽ hiển thị là : 1990-5;1991-1;1994-10;1995-7;1998-5
 
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!

Bạn dùng cột phụ G, H, sau đó chạy Code sau:
PHP:
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

- Có File để bạn tham khảo
 

File đính kèm

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!

Có thể dùng hàm JoinText
1> Chèn code dưới đây vào module:
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
2> Áp dụng
Công thức trên bảng tính:
Mã:
=JoinText(";",IF(C2:C12,B2:B12&"-"&C2:C12,1/0),IF(E2:E12,D2:D12&"-"&E2:E12,1/0))
Bấm Ctrl + Shift + Enter để kết thúc
--------------------
Với JoinText, hình như là đụng đến nối chuỗi có điều kiện (điều kiện tùy ý) là nó xơi được tuốt
Ẹc... Ẹc...
 

File đính kèm

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

Back
Top Bottom