Hàm điều kiện để nối chuỗi trong mảng (2 người xem)

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

ongcusike

Thành viên mới
Tham gia
10/3/08
Bài viết
48
Được thích
8
Giới tính
Nữ
Nghề nghiệp
LAS-XD
Nhờ giúp Hàm điều kiện để nối chuỗi trong mảng

Nhờ a chị em giúp em có công thức nào mà khi thấy ô cột I có từ (đang gửi ) thì nối các mã code (bin) ở cột C lại với nhau không ,ngăn cách với nhau bằng dấu phẩy ,
đây là file ạ
 

File đính kèm

Lần chỉnh sửa cuối:
Nhờ a chị em giúp em có công thức nào mà khi thấy ô cột I có từ (đang gửi ) thì nối các mã code (bin) ở cột C lại với nhau không ,ngăn cách với nhau bằng dấu phẩy ,
đây là file ạ
Bạn sử dụng hàm VBA này thử xem
Mã:
Public Function GhepChuoi(VungDK As Range, VungGhep As Range) As String
Dim arr(), i As Long, cot1 As Long, cot2 As Long
ReDim arr(0)
cot1 = VungDK.Column
cot2 = VungGhep.Column
For i = VungDK.Row To VungDK.Row + VungDK.Rows.Count
    If Cells(i, cot1).Value = "Ðang g" & ChrW(7917) & "i" Then
        arr(UBound(arr)) = Cells(i, cot2).Value
        ReDim Preserve arr(UBound(arr) + 1)
    End If
Next i
ReDim Preserve arr(UBound(arr) - 1)
GhepChuoi = Join(arr, ",")
End Function
Sử dụng như sau:
Mã:
=GhepChuoi(I7:I16,C7:C16)
Tham số đầu là vùng điều kiện, tham số sau là vùng cần ghép lại.
 
em chưa biết cách dùng VBA :(
a có thể chỉ rõ hơn được ko?
 
em chưa biết cách dùng VBA :(
a có thể chỉ rõ hơn được ko?

Mình cũng chưa biết cách dùng VBA nên mình sẽ làm vầy
ghi vào ô K7

Mã:
=IFERROR( LOOKUP(2,1/($I$6:I6=I7),$K$6:K6) & "," & C7,C7)

fill xuống hết bảng

sau đó ghi vào ô C21

Mã:
=LOOKUP(2,1/($I$7:$I$16="Đang gửi"),$K$7:$K$16)
 
Bạn sử dụng hàm VBA này thử xem
Mã:
Public Function GhepChuoi(VungDK As Range, VungGhep As Range) As String
Dim arr(), i As Long, cot1 As Long, cot2 As Long
ReDim arr(0)
cot1 = VungDK.Column
cot2 = VungGhep.Column
For i = VungDK.Row To VungDK.Row + VungDK.Rows.Count
    If Cells(i, cot1).Value = "Ðang g" & ChrW(7917) & "i" Then
        arr(UBound(arr)) = Cells(i, cot2).Value
        ReDim Preserve arr(UBound(arr) + 1)
    End If
Next i
ReDim Preserve arr(UBound(arr) - 1)
GhepChuoi = Join(arr, ",")
End Function
Sử dụng như sau:
Mã:
=GhepChuoi(I7:I16,C7:C16)
Tham số đầu là vùng điều kiện, tham số sau là vùng cần ghép lại.
mình vừa thử đoạn code đó vào nhưng toàn thấy báo lỗi NAME
 
Mình cũng chưa biết cách dùng VBA nên mình sẽ làm vầy
ghi vào ô K7

Mã:
=IFERROR( LOOKUP(2,1/($I$6:I6=I7),$K$6:K6) & "," & C7,C7)

fill xuống hết bảng

sau đó ghi vào ô C21

Mã:
=LOOKUP(2,1/($I$7:$I$16="Đang gửi"),$K$7:$K$16)
thanks bạn,cách làm của bạn đúng ý mình rùi.
tiện thể bạn có thể giải thích qua cho mình cú pháp lệnh vừa rùi ko?
áp dụng vào mà k hiểu code lệnh nên niềm vui mới đc 1/2
thanks bạn trước
 
em chưa biết cách dùng VBA :(
a có thể chỉ rõ hơn được ko?
Mình chỉ biết cách củ chuối này:
Mã:
=SUBSTITUTE(TRIM(IF(I7="Đang gửi",C7,"")&" "&IF(I8="Đang gửi",C8,"")&" "&IF(I9="Đang gửi",C9,"")&" "&IF(I10="Đang gửi",C10,"")
&" "&IF(I11="Đang gửi",C11,"")&" "&IF(I12="Đang gửi",C12,"")&" "&IF(I13="Đang gửi",C13,"")&" "&IF(I14="Đang gửi",C14,"")
&" "&IF(I15="Đang gửi",C15,"")&" "&IF(I16="Đang gửi",C16,""))," ",",")
 
Mình chỉ biết cách củ chuối này:
Mã:
=SUBSTITUTE(TRIM(IF(I7="Đang gửi",C7,"")&" "&IF(I8="Đang gửi",C8,"")&" "&IF(I9="Đang gửi",C9,"")&" "&IF(I10="Đang gửi",C10,"")
&" "&IF(I11="Đang gửi",C11,"")&" "&IF(I12="Đang gửi",C12,"")&" "&IF(I13="Đang gửi",C13,"")&" "&IF(I14="Đang gửi",C14,"")
&" "&IF(I15="Đang gửi",C15,"")&" "&IF(I16="Đang gửi",C16,""))," ",",")
cột C của mình có hàng trăm,hàng nghìn dòng mà dùng dòng lệnh như của bạn k ổn
 
Nhờ a chị em giúp em có công thức nào mà khi thấy ô cột I có từ (đang gửi ) thì nối các mã code (bin) ở cột C lại với nhau không ,ngăn cách với nhau bằng dấu phẩy ,
đây là file ạ

Bạn xem file này, enable macros khi mở file.
 

File đính kèm

các thầy giúp em thêm 1 lần nữa với.
khi cột I có số "đang gửi ">5 ,thì tại cột C21 nó chỉ lấy 5 mã của cột C,còn phần thừa chuyển sang C22 (lấy 5 mã),thừa chuyển tiếp sang C23.(lấy 5 mã ),thừa chuyển tiếp sang Cn (lấy max là 5 mã).....
 
các thầy giúp em thêm 1 lần nữa với.
khi cột I có số "đang gửi ">5 ,thì tại cột C21 nó chỉ lấy 5 mã của cột C,còn phần thừa chuyển sang C22 (lấy 5 mã),thừa chuyển tiếp sang C23.(lấy 5 mã ),thừa chuyển tiếp sang Cn (lấy max là 5 mã).....

Xem file này lần nữa,copy công thức xuống khi gặp "-" thì ngưng.
Code này hạn chế tối đa 1.000 ô "Đang gửi" thôi nhé.
 

File đính kèm

Mượn bài #4 để làm 5 mã
 

File đính kèm

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

Back
Top Bottom