Hàm tìm kiếm lấy giá trị cuối cùng nó tìm được.

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

kh0jy3n

Thành viên thường trực
Tham gia
21/4/12
Bài viết
345
Được thích
115
Dear All
Mn cho em hỏi tý có ai biết hàm tìm kiếm nào lấy giá trị cuối cùng nó tìm thấy không ạ?
không dùng hàm Xlookup và Lookup vì hai hàm này khá nặng làm chậm file .
Em đang dùng Office -2016

Tks all !
 

File đính kèm

  • VD HÀM TÌM KIẾM.xlsx
    19.5 KB · Đọc: 16
Dear All
Mn cho em hỏi tý có ai biết hàm tìm kiếm nào lấy giá trị cuối cùng nó tìm thấy không ạ?
không dùng hàm Xlookup và Lookup vì hai hàm này khá nặng làm chậm file .
Em đang dùng Office -2016

Tks all !
Bạn dùng thử hàm tự tạo bên dưới
chú ý ở GPE không nên chêm tiếng Ăng-Lê vào trong bài viết nha.
Cú pháp:
Mã:
=Seach_GPE(giá trị cần tìm,cột chứa giá trị cần tìm,cột kết quả)
Mã:
Function Seach_GPE(ma As String, code_column As Range, Result_column As Range) As Variant
    Dim i&, nA&, nB&
    For i = 1 To code_column.Rows.Count
        If code_column.Cells(i, 1).Value = ma Then
            nA = i
        End If
    Next i
    If nA <> 0 Then
        If nA <= Result_column.Rows.Count Then
            nB = nA
        End If
    End If
    If nB <> 0 Then
        Seach_GPE = Result_column.Cells(nB, 1).Value
    Else
        Seach_GPE = ""
    End If
End Function
 

File đính kèm

  • VD HÀM TÌM KIẾM.xlsm
    25.5 KB · Đọc: 12
Cớ sao từ chối LOOKUP khi nó là thuốc chuyên dụng chữa trị vụ "tìm giá trị cuối cùng"?
Đã dùng đúng cách chưa?
Thử tại I5, bao tốc độ:

Mã:
=LOOKUP(2,1/($E$5:$E$12=H5),$F$5:$F$12)
 
Em làm dc rồi tuyệt vời luôn ^^!
Bài đã được tự động gộp:

Hàm này thì em biết nhưng file của em khá nhiu dữ liệu nên bị chậm quá .
tks anh nhé !
 
Em làm dc rồi tuyệt vời luôn ^^!
Bài đã được tự động gộp:

Hàm này thì em biết nhưng file của em khá nhiu dữ liệu nên bị chậm quá .
tks anh nhé !
Nếu hàm UDF chạy OK thì chịu khó cải thiện nó 1 chút
For i = 1 To code_column.Rows.Count
If code_column.Cells(i, 1).Value = ma Then
nA = i
End If
Next i
If nA <> 0 Then
If nA <= Result_column.Rows.Count Then
nB = nA
End If
End If
If nB <> 0 Then
Seach_GPE = Result_column.Cells(nB, 1).Value
Else
Seach_GPE = ""
End If
End Function[/CODE]
Nếu tìm giá trị cuối thì sao bạn không loop từ dưới lên và khi tìm thấy thì gán giá trị sau đó thoát là vừa đẹp?
Nếu loop từ 1 như bạn làm thì bắt buộc phải lặp hết cả cột mới ra giá trị cuối cùng.

PHP:
Option Explicit
Function Seach_GPE(ma As String, code_column As Range, Result_column As Range) As Variant
Dim i&
For i = code_column.Rows.Count To 1 Step -1
    If code_column.Cells(i, 1).Value = ma Then
        Seach_GPE = Result_column.Cells(i, 1).Value
        Exit Function
    End If
Next i
Seach_GPE = ""
End Function
 
Nếu hàm UDF chạy OK thì chịu khó cải thiện nó 1 chút

Nếu tìm giá trị cuối thì sao bạn không loop từ dưới lên và khi tìm thấy thì gán giá trị sau đó thoát là vừa đẹp?
Nếu loop từ 1 như bạn làm thì bắt buộc phải lặp hết cả cột mới ra giá trị cuối cùng.

PHP:
Option Explicit
Function Seach_GPE(ma As String, code_column As Range, Result_column As Range) As Variant
Dim i&
For i = code_column.Rows.Count To 1 Step -1
    If code_column.Cells(i, 1).Value = ma Then
        Seach_GPE = Result_column.Cells(i, 1).Value
        Exit Function
    End If
Next i
Seach_GPE = ""
End Function
Bác oi cho cháu hỏi là nếu mã hàng đó có nhiều khách hàng mà muốn lấy hết tất cả các tên khách hàng nối lại với nhau thì sửa code như nào hở Bác?
 

File đính kèm

  • VD HÀM TÌM KIẾM.xlsm
    25.5 KB · Đọc: 6
Cớ sao từ chối LOOKUP khi nó là thuốc chuyên dụng chữa trị vụ "tìm giá trị cuối cùng"?
...
Tính giải thích cái vụ "cớ sao". Nhưng may quá, chính thớt đã giải thích rồi.
Hồi nào giờ, dân GPE hễ thấy có cớ dùng VBA thì file tự động phình lên hàng nửa triệu dòng.
Hàm này thì em biết nhưng file của em khá nhiu dữ liệu nên bị chậm quá .
 
Dear All
Mn cho em hỏi tý có ai biết hàm tìm kiếm nào lấy giá trị cuối cùng nó tìm thấy không ạ?
không dùng hàm Xlookup và Lookup vì hai hàm này khá nặng làm chậm file .
Em đang dùng Office -2016

Tks all !
Nếu dùng hàm mà chậm thì dùng PowerQuerry xem sao. Office 2016 có cái này rồi
Mã:
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Grouped Rows" = Table.Group(Table.SelectRows(Source,each [#"MÃ HÀNG "]<>null), {"MÃ HÀNG "}, {{"TÊN HÀNG", each List.Last([#"TÊN HÀNG "])}})
in
    #"Grouped Rows"
 
Cái này chưa biết sài như nào :pP
 
Dear All
Mn cho em hỏi tý có ai biết hàm tìm kiếm nào lấy giá trị cuối cùng nó tìm thấy không ạ?
không dùng hàm Xlookup và Lookup vì hai hàm này khá nặng làm chậm file .
Em đang dùng Office -2016

Tks all !
Thử công thức này:
I5=INDEX($F$5:$F$12,AGGREGATE(14,6,ROW($A$1:$A$10)/($E$5:$E$12=H5),1))
 
cảm ơn bác nhe tý em thử xem thế nào nhưng hình như Office-2016 không có hàm AGGREGATE.
Bài đã được tự động gộp:

Em chuyên tiếng Trung bác ơi. Bác có tài liệu tiếng việt ko gửi em tham khảo với.
 
Web KT
Back
Top Bottom