Giúp mình về việc hiện hết dữ liệu khi nhập 1 giá trị tương ứng

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

smldt96

Thành viên mới
Tham gia
30/6/18
Bài viết
17
Được thích
0
Giới tính
Nữ
1531211372082.png



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
 
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
Thử:
PHP:
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
 
Cho 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))
 
Của bác đây, dùng được vlookup nhé :v
 

File đính kèm

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 ạ.
 
Cho 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))
Gì mà nhiều 69 dữ vậy bạn --=0 Đổi thành 96 cho nó lành mạnh :icon_sadangel2:
 
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 ạ.
Chơi cho vui:
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,),"")
Enter fill xuống.
Thân.
 

File đính kèm

Lần chỉnh sửa cuối:
Chơi cho vui:
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,),"")
Enter fill xuống.
Thân.
Chạy ngon rồi. Cảm ơn bác đã làm chơi.
 
Chơi cho vui:
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,),"")
Enter fill xuống.
Thân.
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]
 
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]
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.
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,),"")
Kết thức bằng CTrl+Shift+Enter.
Thân.
 

File đính kèm

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.
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,),"")
Kết thức bằng CTrl+Shift+Enter.
Thân.
Trên cả mong chờ. Không cần bẫy lội. E cảm ơn bác.
 
Web KT

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

Back
Top Bottom