Vấn đề không phải là tiêu chí.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!
Bạn Coppy code dán vào, xóa code cũ.
Cái đó thì mình đã làmBạn Coppy code dán vào, xóa code cũ.
Sử dụng công thức như bài #9.
Cảm ơn bạnVấ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!!!
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.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ì?
Nhưng bởi vì bạn nói là code của 2 bài là 1Sử 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)
Sử dụng 1 code thôi, tham khảo file nhé.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?)
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!
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 ạ,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ềuMã: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
Dữ liệu ít thì dùng InStr, nhiều thì dùng Dic sẽ chạy nhanh hơn nhiềuAnh 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 ạ,