Hàm nối chuỗi cách cột (1 người xem)

Liên hệ QC

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

Nhờ anh chị và các thầy viết giúp hàm như file đính kèm
Em xin cảm ơn
Thử hàm này.
Mã:
Public Function JoinText(Rng As Range) As String
    Dim s As String, i%, j%
    s = ""
    i = 1: j = (i - 1) * 6 + 1
    JoinText = Rng.Cells(1, i).Address
    Do While (j <= Rng.Columns.Count)
        If s = "" Then
            s = Rng.Cells(1, j)
        Else
            If Rng.Cells(1, j) <> "" Then s = s & ";" & Rng.Cells(1, j)
        End If
        i = i + 1
        j = (i - 1) * 6 + 1
    Loop
    JoinText = s
End Function
Cách dùng.
Mã:
=JoinText(I7:AJ7)
 
Upvote 0
Thử hàm này.
Mã:
Public Function JoinText(Rng As Range) As String
    Dim s As String, i%, j%
    s = ""
    i = 1: j = (i - 1) * 6 + 1
    JoinText = Rng.Cells(1, i).Address
    Do While (j <= Rng.Columns.Count)
        If s = "" Then
            s = Rng.Cells(1, j)
        Else
            If Rng.Cells(1, j) <> "" Then s = s & ";" & Rng.Cells(1, j)
        End If
        i = i + 1
        j = (i - 1) * 6 + 1
    Loop
    JoinText = s
End Function
Cách dùng.
Mã:
=JoinText(I7:AJ7)
Em cảm ơn anh ạ
Hàm đã có kết quả đúng rui anh
em muốn hàm có thể chọn số cột có khoảng cách tùy ý , và dấu ngăn cách tùy ý thì như nào hở anh?
Ví dụ: Cú pháp của hàm như sau:
=JoinText("dấu phân cách"; "khoảng cách";I7:AJ7)
 
Upvote 0
Em cảm ơn anh ạ
Hàm đã có kết quả đúng rui anh
em muốn hàm có thể chọn số cột có khoảng cách tùy ý , và dấu ngăn cách tùy ý thì như nào hở anh?
Ví dụ: Cú pháp của hàm như sau:
=JoinText("dấu phân cách"; "khoảng cách";I7:AJ7)
Sửa code lại thế này.
Mã:
Public Function JoinText(seperate As String, jump As Integer, Rng As Range) As String
    Dim s As String, i%, j%
    s = ""
    i = 1: j = (i - 1) * jump + 1
    JoinText = Rng.Cells(1, i).Address
    Do While (j <= Rng.Columns.Count)
        If s = "" Then
            s = Rng.Cells(1, j)
        Else
            If Rng.Cells(1, j) <> "" Then s = s & seperate & Rng.Cells(1, j)
        End If
        i = i + 1
        j = (i - 1) * jump + 1
    Loop
    JoinText = s
End Function
Sử dụng
Mã:
=JoinText(";",6,I7:AJ7)
 
Upvote 0
Function PickyJoin(rg As Range, gap As Long, delim As String) As String
' Joins non-blank strings in range rg (1 row, many columns), with specified interval intvl, and delimeter delim
For i = 1 To rg.Columns.Count Step gap
If rg.Cells(1, i).Value <> "" Then PickyJoin = PickyJoin & delim & rg.Cells(1, i).Value
Next i
PickyJoin = Replace(PickyJoin, delim, "", , 1)
End Function
 
Upvote 0
Đính chính: ở hàm trên, cần sửa những chỗ có "gap" thành "intvl"
Lúc đầun toi viết là gap (khoảng trống ở giữa), nhưng sau xem lại thì từ interval (khoảng cách) đúng hơn.
 
Upvote 0
Upvote 0
Upvote 0
Biết rồi thì cố tránh những từ như vầy. Có thiếu chi cách nói bằng từ ngữ khác.
Cháu cảm ơn Bác
Theo cháu nghĩ như này được không hở Bác
Sao BQT của diễn đàn không báo an ninh mạng để họ bắt những kẻ quấy rối này đi hở Bác.
Theo cháu biết thì luật có đầy đủ chứng cứ mà.
 
Upvote 0
Nếu tức thì cứ như vậy cho đỡ tức đi. Tội gì phải dùng ngôn ngữ của họ. Chẳng lẽ đi đường bị chó sủa thì bò xuống sủa lại nó à?
Một là mình bình tĩnh bỏ đi, đẻ cho nó lkaam tình trang ngậm máu phun người (*). Hai là mình thảy cho nó quả cà nướng trát mỡ, nó táp vào, bỏng nứu rụng răng hết.
(tôi trưởng thành trong xóm nhà lá, có hàng trăm mánh khoé đối đáp với bọn nhà giàu chuyên xua chó béc-giê rượt người nghèo)

(*) hàm huyết phún nhân, tiên ô tự khẩu.
 
Upvote 0
Nếu tức thì cứ như vậy cho đỡ tức đi. Tội gì phải dùng ngôn ngữ của họ. Chẳng lẽ đi đường bị chó sủa thì bò xuống sủa lại nó à?
Một là mình bình tĩnh bỏ đi, đẻ cho nó lkaam tình trang ngậm máu phun người (*). Hai là mình thảy cho nó quả cà nướng trát mỡ, nó táp vào, bỏng nứu rụng răng hết.
(tôi trưởng thành trong xóm nhà lá, có hàng trăm mánh khoé đối đáp với bọn nhà giàu chuyên xua chó béc-giê rượt người nghèo)

(*) hàm huyết phún nhân, tiên ô tự khẩu.
Hi hi... Bác oi, nếu học được đức tính như Bác thì...........
Đố Bác cháu nói gì đó?????
 
Upvote 0
Bạn lầm rồi. Mấy cái từ "đức" ở đâu ra thì chắc bạn quên rồi. Hay là tại lúc "người xưa" văng một mớ bài giảng về "đức" lên diễn đàn thì bạn chưa vào cuộc nên không hề hay biết.
 
Upvote 0
Bạn lầm rồi. Mấy cái từ "đức" ở đâu ra thì chắc bạn quên rồi. Hay là tại lúc "người xưa" văng một mớ bài giảng về "đức" lên diễn đàn thì bạn chưa vào cuộc nên không hề hay biết.
Thui thui...
Chắc bây giờ Bác già rùi
Bác không hiểu gì đâu
hi hi hi........
Cháu cũng ĐANG học tập từ các Bác và mãi mãi học tập các Bác.
(NHƯNG MỪ CHÁU CHỈ HỌC CÁC TÍNH..... )
CÒN CÁC THỨ KHÁC CHÁU KHÔNG HỌC ĐÂU.
Bài đã được tự động gộp:

Bạn lầm rồi. Mấy cái từ "đức" ở đâu ra thì chắc bạn quên rồi. Hay là tại lúc "người xưa" văng một mớ bài giảng về "đức" lên diễn đàn thì bạn chưa vào cuộc nên không hề hay biết.
Cháu nói thật Bác @VetMini nhé!
Vào diễn đàn này không những cháu học được kiến thức. Mà cháu học được rất nhiều điều để trở thành một con.....
Bài đã được tự động gộp:

Thui thui...
Chắc bây giờ Bác già rùi
Bác không hiểu gì đâu
hi hi hi........
Cháu cũng ĐANG học tập từ các Bác và mãi mãi học tập các Bác.
(NHƯNG MỪ CHÁU CHỈ HỌC CÁC TÍNH..... )
CÒN CÁC THỨ KHÁC CHÁU KHÔNG HỌC ĐÂU.
Bài đã được tự động gộp:


Cháu nói thật Bác @VetMini nhé!
Vào diễn đàn này không những cháu học được kiến thức. Mà cháu học được rất nhiều điều để trở thành một con.....
Bác @VetMini cháu chêu lại Bác đó, Bác đừng giận cháu Bác nhé!
hi hi hi......
 
Lần chỉnh sửa cuối:
Upvote 0

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

Back
Top Bottom