Mr.hieudoanxd
Thành viên thường trực
- Tham gia
- 25/10/19
- Bài viết
- 322
- Được thích
- 150
Để xử lý hàm tìm kiếm trả về nhiều giá trị trong các hàm khác nhau em thường sử dụng 2 hàm tự tạo sau
sau đó sử dụng hàm nối
Nhược điểm của 2 hàm trên chỉ trả về 1 giá trị duy nhất, công thức khá lòng vòng khi muốn trả về nhiều giá trị trên các ô, =SplitText(ManyLookup(.....,ROWS($1:1))
Em muốn các anh tạo giúp UDF trả về nhiều giá trị trên các ô giống công thức mảng của Office 365 (không sử dụng Ctrl+Shift+Enter) và giải thuật cho các trường hợp muốn tạo hàm như thế, em có THam khảo một số hàm UDF của anh HeSanbi nhưng nó quá sức với em để hiểu.
Cảm ơn mọi người trước ạ!
Function ManyLookup(Lookup_Value As Variant, _
Area_Lookup As Range, _
Area_Result As Range, _
Optional ByVal Delimiter As String = " ") As Variant
Application.ScreenUpdating = False
On Error Resume Next
Dim a As Long, kq As Variant
kq = ""
For a = 1 To Area_Lookup.Cells.count
If Lookup_Value = Area_Lookup.Cells(a) Then
If kq = "" Then
kq = Area_Result.Cells(a)
Else: kq = kq & Delimiter & Area_Result.Cells(a)
End If
End If
Next a
ManyLookup = kq
Application.ScreenUpdating = True
End Function
sau đó sử dụng hàm nối
Function SplitText(Text As String, Delimiter As String, Number As Long) As String
Dim Rept As String, Repl As String, le As Long
On Error Resume Next
le = Len(Text)
Rept = WorksheetFunction.Rept(" ", le + 1)
Repl = Replace(Text, Delimiter, Rept)
SplitText = Trim(Mid(Repl, (Number - 1) * le + 1, le))
End Function
Nhược điểm của 2 hàm trên chỉ trả về 1 giá trị duy nhất, công thức khá lòng vòng khi muốn trả về nhiều giá trị trên các ô, =SplitText(ManyLookup(.....,ROWS($1:1))
Em muốn các anh tạo giúp UDF trả về nhiều giá trị trên các ô giống công thức mảng của Office 365 (không sử dụng Ctrl+Shift+Enter) và giải thuật cho các trường hợp muốn tạo hàm như thế, em có THam khảo một số hàm UDF của anh HeSanbi nhưng nó quá sức với em để hiểu.
Cảm ơn mọi người trước ạ!
Lần chỉnh sửa cuối: