Xin hàm xắp xếp dữ liệu của bảng vào cột hoặc hàng

Liên hệ QC

nvh611

Thành viên thường trực
Tham gia
20/5/17
Bài viết
228
Được thích
42
Nhờ các bạn trên diễn đàn viết giúp hàm như file đính kèm
 

File đính kèm

  • CT_ Hàm xắp xếp dữ liệu của bảng vào cột hoặc hàng.xlsb
    8.4 KB · Đọc: 11
Bạn

leonguyenz tất nhiên bài này tiêu chí của mình là:
- Xắp xếp dữ liệu của 1 hoặc nhiều bảng vào cột hoặc hàng
1- Trường hợp thứ nhất là lấy toàn bộ các dữ liệu của những bảng đó
2- Trường hợp thứ 2 là lấy dữ liệu ngưng loại bỏ trùng (Nếu trùng thì chỉ lấy 1)
Mong bạn trợ giúp
Cảm ơn bạn!
Bài đã được tự động gộp:


Chào bạn @CHAOQUAY bài này tiêu chí của mình là:
- Xắp xếp dữ liệu của 1 hoặc nhiều bảng vào cột hoặc hàng
1- Trường hợp thứ nhất là lấy toàn bộ các dữ liệu của những bảng đó
2- Trường hợp thứ 2 là lấy dữ liệu ngưng loại bỏ trùng (Nếu trùng thì chỉ lấy 1)
Bài đã được tự động gộp:


Hay quá hay quá, code rất ngắn gọn
Cảm ơn bạn @HieuCD
Bạn @HieuCD ơi bài của mình có tiêu chí như sau
- Xắp xếp dữ liệu của 1 hoặc nhiều bảng vào cột hoặc hàng
1- Trường hợp thứ nhất là lấy toàn bộ các dữ liệu của những bảng đó
2- Trường hợp thứ 2 là lấy dữ liệu ngưng loại bỏ trùng (Nếu trùng thì chỉ lấy 1)
Vậy mong bạn thêm cho mình tiêu chí thứ 2 nhé
Cảm ơn bạn rất nhiều!
Vấn đề không phải là tiêu chí.
Nếu vùng dữ liệu của bạn là bất định thì việc dùng hàm có thể dẫn đến vùng hiển thị mong muốn có thể bị thừa hoặc là thiếu do quá trình nhập hàm.
Cá nhân tôi cho là yêu cầu dùng hàm tự tạo trong trường hợp này là sai lầm.

Chúc bạn may mắn!!!
 
Upvote 0
Bạn Coppy code dán vào, xóa code cũ.
Sử dụng công thức như bài #9.
Cái đó thì mình đã làm
Nhưng mà cú pháp của hàm thì mình không biết
Vì vậy nhờ bạn hướng dẫn cú pháp của hàm dùng cho các trường hợp
Cảm ơn bạn rất nhiều!
Bài đã được tự động gộp:

Vấn đề không phải là tiêu chí.
Nếu vùng dữ liệu của bạn là bất định thì việc dùng hàm có thể dẫn đến vùng hiển thị mong muốn có thể bị thừa hoặc là thiếu do quá trình nhập hàm.
Cá nhân tôi cho là yêu cầu dùng hàm tự tạo trong trường hợp này là sai lầm.

Chúc bạn may mắn!!!
Cảm ơn bạn
Vậy theo bạn thì nên dùng cái gì?
 
Upvote 0
Sử dụng công thức như bài #9:
- Kéo xuống theo từng dòng: =chuyendulieu(TRUE,ROW($A1),$C$2:$E$6)
- Kéo ngang theo từng cột: =chuyendulieu(FALSE,COLUMN(A$1),$C$2:$F$6)
 
Upvote 0
Cái đó thì mình đã làm
Nhưng mà cú pháp của hàm thì mình không biết
Vì vậy nhờ bạn hướng dẫn cú pháp của hàm dùng cho các trường hợp
Cảm ơn bạn rất nhiều!
Bài đã được tự động gộp:


Cảm ơn bạn
Vậy theo bạn thì nên dùng cái gì?
Bạn hỏi thì có ý thế này : Việc này còn tùy thuộc bạn bố trí bảng biểu thế nào. Như bài của bạn có thể dùng sub với lựa chọn vùng trước.
Nếu cố dùng hàm mảng như bạn, tôi tin là kết quả hiển thị sẽ không đáng tin cậy mặc dù các code ở trên đều hoàn toàn chính xác.
 
Upvote 0
Sử dụng công thức như bài #9:
- Kéo xuống theo từng dòng: =chuyendulieu(TRUE,ROW($A1),$C$2:$E$6)
- Kéo ngang theo từng cột: =chuyendulieu(FALSE,COLUMN(A$1),$C$2:$F$6)
Nhưng bởi vì bạn nói là code của 2 bài là 1
Vì vậy khi không lấy trùng và khi lấy toàn bộ dữ liệu thì cú pháp của hàm như nào?
(Vậy thì 2 code của bạn là tách biệt đúng không hả bạn?)
 
Upvote 0
Nhưng bởi vì bạn nói là code của 2 bài là 1
Vì vậy khi không lấy trùng và khi lấy toàn bộ dữ liệu thì cú pháp của hàm như nào?
(Vậy thì 2 code của bạn là tách biệt đúng không hả bạn?)
Sử dụng 1 code thôi, tham khảo file nhé.
 

File đính kèm

  • CT_ Hàm xắp xếp dữ liệu của bảng vào cột hoặc hàng.xlsm
    16.9 KB · Đọc: 5
Upvote 0
Bạn

leonguyenz tất nhiên bài này tiêu chí của mình là:
- Xắp xếp dữ liệu của 1 hoặc nhiều bảng vào cột hoặc hàng
1- Trường hợp thứ nhất là lấy toàn bộ các dữ liệu của những bảng đó
2- Trường hợp thứ 2 là lấy dữ liệu ngưng loại bỏ trùng (Nếu trùng thì chỉ lấy 1)
Mong bạn trợ giúp
Cảm ơn bạn!
Bài đã được tự động gộp:


Chào bạn @CHAOQUAY bài này tiêu chí của mình là:
- Xắp xếp dữ liệu của 1 hoặc nhiều bảng vào cột hoặc hàng
1- Trường hợp thứ nhất là lấy toàn bộ các dữ liệu của những bảng đó
2- Trường hợp thứ 2 là lấy dữ liệu ngưng loại bỏ trùng (Nếu trùng thì chỉ lấy 1)
Bài đã được tự động gộp:


Hay quá hay quá, code rất ngắn gọn
Cảm ơn bạn @HieuCD
Bạn @HieuCD ơi bài của mình có tiêu chí như sau
- Xắp xếp dữ liệu của 1 hoặc nhiều bảng vào cột hoặc hàng
1- Trường hợp thứ nhất là lấy toàn bộ các dữ liệu của những bảng đó
2- Trường hợp thứ 2 là lấy dữ liệu ngưng loại bỏ trùng (Nếu trùng thì chỉ lấy 1)
Vậy mong bạn thêm cho mình tiêu chí thứ 2 nhé
Cảm ơn bạn rất nhiều!
Mã:
Function JoinData(ByVal id As Long, ByVal NoDouble As Boolean, ParamArray sRng()) As Variant
    Dim Res, Rng, Cel, k As Long, tmp As String
    JoinData = ""
    tmp = "|"
    For Each Rng In sRng
      For Each Cel In Rng
        Res = Cel.Value
        If TypeName(Res) <> "Error" Then
          If Len(Res) > 0 Then
            If NoDouble Then
              If InStr(1, tmp, "|" & Res & "|") = 0 Then
                k = k + 1
                If k = id Then JoinData = Res: Exit Function
                tmp = tmp & Res & "|"
              End If
            Else
              k = k + 1
              If k = id Then JoinData = Res: Exit Function
            End If
          End If
        End If
      Next
    Next
End Function
 

File đính kèm

  • Copy of CT_ Hàm xắp xếp dữ liệu của bảng vào cột hoặc hàng.xlsb
    15.4 KB · Đọc: 10
Upvote 0
Mã:
Function JoinData(ByVal id As Long, ByVal NoDouble As Boolean, ParamArray sRng()) As Variant
    Dim Res, Rng, Cel, k As Long, tmp As String
    JoinData = ""
    tmp = "|"
    For Each Rng In sRng
      For Each Cel In Rng
        Res = Cel.Value
        If TypeName(Res) <> "Error" Then
          If Len(Res) > 0 Then
            If NoDouble Then
              If InStr(1, tmp, "|" & Res & "|") = 0 Then
                k = k + 1
                If k = id Then JoinData = Res: Exit Function
                tmp = tmp & Res & "|"
              End If
            Else
              k = k + 1
              If k = id Then JoinData = Res: Exit Function
            End If
          End If
        End If
      Next
    Next
End Function
Anh Hiếu Cái hàm Instr với Dictionary cái nào nhanh hơn anh.Vì em thấy khi mình ghép ký tự nhiều quá có ảnh hưởng gì không ạ,
 
Upvote 0
Mã:
Function JoinData(ByVal id As Long, ByVal NoDouble As Boolean, ParamArray sRng()) As Variant
    Dim Res, Rng, Cel, k As Long, tmp As String
    JoinData = ""
    tmp = "|"
    For Each Rng In sRng
      For Each Cel In Rng
        Res = Cel.Value
        If TypeName(Res) <> "Error" Then
          If Len(Res) > 0 Then
            If NoDouble Then
              If InStr(1, tmp, "|" & Res & "|") = 0 Then
                k = k + 1
                If k = id Then JoinData = Res: Exit Function
                tmp = tmp & Res & "|"
              End If
            Else
              k = k + 1
              If k = id Then JoinData = Res: Exit Function
            End If
          End If
        End If
      Next
    Next
End Function
Cảm ơn ban @HieuCD rất nhiều
Quá chuẩn không cần chỉnh
Chúc bạn cuối tuần vui vui nhiều bạn nhé!
 
Upvote 0
Web KT
Back
Top Bottom