Cần hỗ trợ công thức Vlookup nhiều sheet theo điều kiên (1 người xem)

  • Thread starter Thread starter MaxanB
  • Ngày gửi Ngày gửi
Liên hệ QC

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

Tôi tuân thủ nội quy khi đăng bài

MaxanB

Thành viên mới
Tham gia
17/4/24
Bài viết
8
Được thích
0
Xin chào các bạn trong diễn đàn. Nhờ các bạn hỗ trợ để có thể rút ngắn công thức hoặc công thức khác thay thế. Xin cảm ơn.
 

File đính kèm

Xin chào các bạn trong diễn đàn. Nhờ các bạn hỗ trợ để có thể rút ngắn công thức hoặc công thức khác thay thế. Xin cảm ơn.
1740544603134.png
Phải viết lại cái đoạn Sumif nên hơi dài nhỉ, chưa tối ưu lắm. Góp tạm đã hì. Thêm 1 cột để ghi tên các sheet vào đó.
=LOOKUP(2,0/SUMIFS(INDIRECT("'"&$G$4:$G$9&"'!C:C"),INDIRECT("'"&$G$4:$G$9&"'!b:b"),B4),SUMIFS(INDIRECT("'"&$G$4:$G$9&"'!C:C"),INDIRECT("'"&$G$4:$G$9&"'!b:b"),B4))
 

File đính kèm

View attachment 307296
Phải viết lại cái đoạn Sumif nên hơi dài nhỉ, chưa tối ưu lắm. Góp tạm đã hì. Thêm 1 cột để ghi tên các sheet vào đó.
=LOOKUP(2,0/SUMIFS(INDIRECT("'"&$G$4:$G$9&"'!C:C"),INDIRECT("'"&$G$4:$G$9&"'!b:b"),B4),SUMIFS(INDIRECT("'"&$G$4:$G$9&"'!C:C"),INDIRECT("'"&$G$4:$G$9&"'!b:b"),B4))
Chào các bạn, cũng bảng dữ liệu như trên, giờ minh muốn tìm sp1 bán gần nhất là tháng mấy (hiện tên tháng thay vì số lượng). Mong các bạn giúp đỡ.
 
Chào các bạn, cũng bảng dữ liệu như trên, giờ minh muốn tìm sp1 bán gần nhất là tháng mấy (hiện tên tháng thay vì số lượng). Mong các bạn giúp đỡ.
Công thức mình chưa viết được, nhưng bạn có thể tham khảo code VBA như dưới, Function đó sẽ lấy tên Sheet đưa vào kết quả
Mã:
Function TimThangCuoi(SP As String) As String
    Dim ws As Worksheet
    Dim ketQua As String
    
    ketQua = ""
    
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name = Application.Caller.Worksheet.Name Then GoTo TiepTheo
        
        If Not ws.Cells.Find(What:=SP, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False) Is Nothing Then
            ketQua = ws.Name
        End If
        
TiepTheo:
    Next ws
    
    If ketQua = "" Then
        TimThangCuoi = "Khong tim thay"
    Else
        TimThangCuoi = ketQua
    End If
End Function
 

File đính kèm

Công thức mình chưa viết được, nhưng bạn có thể tham khảo code VBA như dưới, Function đó sẽ lấy tên Sheet đưa vào kết quả
Mã:
Function TimThangCuoi(SP As String) As String
    Dim ws As Worksheet
    Dim ketQua As String
   
    ketQua = ""
   
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name = Application.Caller.Worksheet.Name Then GoTo TiepTheo
       
        If Not ws.Cells.Find(What:=SP, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False) Is Nothing Then
            ketQua = ws.Name
        End If
       
TiepTheo:
    Next ws
   
    If ketQua = "" Then
        TimThangCuoi = "Khong tim thay"
    Else
        TimThangCuoi = ketQua
    End If
End Function
Cảm ơn bạn đã hỗ trợ.
 
Web KT

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

Back
Top Bottom