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.
Cảm ơn bạn đã hỗ trợ.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 đỡ.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))
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ả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 đỡ.
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ợ.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