Bạn làm vào file excel rồi gửi lên đây sẽ có kết quả nhéView attachment 199265
e có 1 bảng giá trị như này, e muốn khi nhập vào ô "D1" giá trị 2000 thì nó sẽ show hết KQ năm 2000 sang cột e. e Dùng vlookup thì nó chỉ hiện thị giá trị đầu tiên thôi ạ. em cảm ơn
đây bạn xem giúp mình vớiBạn làm vào file excel rồi gửi lên đây sẽ có kết quả nhé
đây bạn xem giúp mình với
E1=IFERROR(INDEX($C$1:$C$500,AGGREGATE(15,6,ROW($B$1:$B$500)/($B$1:$B$500=$D$1),ROW($A1))),"")
cảm ơn b nhé. bạn có thể nói qua giúp mình về dẫy công thức này ko ạMã:E1=IFERROR(INDEX($C$1:$C$500,AGGREGATE(15,6,ROW($B$1:$B$500)/($B$1:$B$500=$D$1),ROW($A1))),"")
Thử:View attachment 199265
e có 1 bảng giá trị như này, e muốn khi nhập vào ô "D1" giá trị 2000 thì nó sẽ show hết KQ năm 2000 sang cột e. e Dùng vlookup thì nó chỉ hiện thị giá trị đầu tiên thôi ạ. em cảm ơn
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i&, dk, k&
Dim DL, b(1 To 100, 1 To 1)
If Target.Address = "$D$1" Then
dk = [D1].Value
DL = Sheets(1).Range("B1:C11")
Application.ScreenUpdating = False
For i = 1 To UBound(DL)
If DL(i, 1) = dk Then
k = k + 1: b(k, 1) = DL(i, 2)
End If
Next
If i Then
Range("E1:E100").ClearContents
Range("E1").Resize(i) = b
End If
End If
End Sub
Tại sao không fillter luôn trên dữ liệu nhỉ?View attachment 199265
e có 1 bảng giá trị như này, e muốn khi nhập vào ô "D1" giá trị 2000 thì nó sẽ show hết KQ năm 2000 sang cột e. e Dùng vlookup thì nó chỉ hiện thị giá trị đầu tiên thôi ạ. em cảm ơn
Gì mà nhiều 69 dữ vậy bạnCho các fiên bản excel khác:
=IF(ISERROR(INDEX($C$1:$C$9,SMALL(IF($B$1:$B$9=$D$1,ROW($B$1:$B$9),"6969696969"),1+ROW(A1)-ROW($A$1))-ROW($C$1)+1)),"",INDEX($C$1:$C$9,SMALL(IF($B$1:$B$9=$D$1,ROW($B$1:$B$9),"6969696969"),1+ROW(A1)-ROW($A$1))-ROW($C$1)+1))
Bác đọc từ chữ thứ 2 là sẽ thành 96 ạ.Gì mà nhiều 69 dữ vậy bạnĐổi thành 96 cho nó lành mạnh
![]()
Chơi cho vui:Mọi người cho mình hỏi có thể sử dụng các hàm trong excel để giải quyết: Trường hợp khi ở ô D1 mình nhập vào kiểu 2000,2001 thì ở cột E sẽ list ra kết quả tương ứng trong cột C không ạ.
E1=IFERROR(OFFSET($C$1,AGGREGATE(15,6,ROW($1:$11)/(--MID(SUBSTITUTE($D$1,",",REPT(" ",100)),(COLUMN($A:$J)-1)*100+1,100)=$B$1:$B$11),ROW($A1))-1,),"")
Hoặc:
E1=IFERROR(OFFSET($C$1,AGGREGATE(15,6,ROW($1:$11)/(FIND($B$1:$B$11,SUBSTITUTE($D$1," ",""))>0)/($B$1:$B$11<>""),ROW($A1))-1,),"")
Hoặc
E1=IFERROR(OFFSET($C$1,AGGREGATE(15,6,ROW($1:$11)/COUNTIF($D$1,"*"&$B$1:$B$11&"*")/($B$1:$B$11<>""),ROW($A1))-1,),"")
Chạy ngon rồi. Cảm ơn bác đã làm chơi.Chơi cho vui:
Enter fill xuống.Mã:E1=IFERROR(OFFSET($C$1,AGGREGATE(15,6,ROW($1:$11)/(--MID(SUBSTITUTE($D$1,",",REPT(" ",100)),(COLUMN($A:$J)-1)*100+1,100)=$B$1:$B$11),ROW($A1))-1,),"") Hoặc: E1=IFERROR(OFFSET($C$1,AGGREGATE(15,6,ROW($1:$11)/(FIND($B$1:$B$11,SUBSTITUTE($D$1," ",""))>0)/($B$1:$B$11<>""),ROW($A1))-1,),"") Hoặc E1=IFERROR(OFFSET($C$1,AGGREGATE(15,6,ROW($1:$11)/COUNTIF($D$1,"*"&$B$1:$B$11&"*")/($B$1:$B$11<>""),ROW($A1))-1,),"")
Thân.
Bác cho e hỏi thêm:Chơi cho vui:
Enter fill xuống.Mã:E1=IFERROR(OFFSET($C$1,AGGREGATE(15,6,ROW($1:$11)/(--MID(SUBSTITUTE($D$1,",",REPT(" ",100)),(COLUMN($A:$J)-1)*100+1,100)=$B$1:$B$11),ROW($A1))-1,),"") Hoặc: E1=IFERROR(OFFSET($C$1,AGGREGATE(15,6,ROW($1:$11)/(FIND($B$1:$B$11,SUBSTITUTE($D$1," ",""))>0)/($B$1:$B$11<>""),ROW($A1))-1,),"") Hoặc E1=IFERROR(OFFSET($C$1,AGGREGATE(15,6,ROW($1:$11)/COUNTIF($D$1,"*"&$B$1:$B$11&"*")/($B$1:$B$11<>""),ROW($A1))-1,),"")
Thân.
Phiên bản Excel 2003 không dùng hai hàm Aggregate() và Iferror() nên bạn thử dùng cách sau:Bác cho e hỏi thêm:
1.Nếu sử dụng excel 2003 thì có làm đc không ạ.
2.Đếm tất cả các giá trị ở bảng cột B:C thỏa mãn ô D1 (nhập dạng 2000,2001) và giá trị cột C=ô D2 (D2="Dũng 3" chẳng hạn)[Dùng Excel 2003 trở lên]
F1=IF(COUNT(1/COUNTIF($E$1,"*"&$B$1:$B$11&"*")/($B$1:$B$11<>"")/($D$1:$D$11=$E$2))>=ROW(A1),OFFSET($C$1,SMALL(IF(COUNTIF($E$1,"*"&$B$1:$B$11&"*")*($B$1:$B$11<>"")*($D$1:$D$11=$E$2),ROW($1:$11)),ROW($A1))-1,),"")
Trên cả mong chờ. Không cần bẫy lội. E cảm ơn bác.Phiên bản Excel 2003 không dùng hai hàm Aggregate() và Iferror() nên bạn thử dùng cách sau:
Thay vì như bạn yêu cầu là tìm tên "Dũng 3", chỉ có 1 dòng hiện nên không có "đã", tôi cho thêm 1 cột C: chứa tỉnh thành của đối tượng, và chỉ lọc đối tượng nào thỏa: E1 chứa các năm, và ô E2 chứa tỉnh thành cần lọc.
Kết thức bằng CTrl+Shift+Enter.Mã:F1=IF(COUNT(1/COUNTIF($E$1,"*"&$B$1:$B$11&"*")/($B$1:$B$11<>"")/($D$1:$D$11=$E$2))>=ROW(A1),OFFSET($C$1,SMALL(IF(COUNTIF($E$1,"*"&$B$1:$B$11&"*")*($B$1:$B$11<>"")*($D$1:$D$11=$E$2),ROW($1:$11)),ROW($A1))-1,),"")
Thân.