Xin giúp đỡ v/v Lọc dữ liệu max min theo nhóm? (4 người xem)

Liên hệ QC

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

magicxlll

Thành viên mới
Tham gia
22/3/12
Bài viết
5
Được thích
0
Mình có bảng tính là nội lực dầm xuất từ etabs.
Giờ mình muốn lọc Giá trị Max và Min của cột M3 theo từng loại dầm (mỗi dầm lọc còn 2 giá trị)
Các bạn có cách nào giúp mình
p/s: bảng tính đính kèm mình lọc theo các thủ công rất tốn thời gian. Mong các cao nhân giúp đỡ!
Mình cảm ơn!
 

File đính kèm

Mình có bảng tính là nội lực dầm xuất từ etabs.
Giờ mình muốn lọc Giá trị Max và Min của cột M3 theo từng loại dầm (mỗi dầm lọc còn 2 giá trị)
Các bạn có cách nào giúp mình
p/s: bảng tính đính kèm mình lọc theo các thủ công rất tốn thời gian. Mong các cao nhân giúp đỡ!
Mình cảm ơn!
=Max(If(vung dieu kien= dieu kien,vung du lieu,"")
=Min(If(vung dieu kien= dieu kien,vung du lieu,"")
Kết thúc :ctrl + shift + Enter
Hoặc
INDEX(MAX(('vung dieu kien=dieu kien)*(vung du lieu)),1)
INDEX(MIN(('vung dieu kien=dieu kien)*(vung du lieu)),1)
 
Không biết đúng ý bạn không...
Mình làm trong Sheet Tang 1...
Đầu tiên mình lọc ra danh sách Beam bằng Remove Duplicates sau đó mình dùng hàm bên dưới để tính max theo dạng hàm mảng cho mã Beam ở ô M2... Nhập xong công thức thì nhấn Nhấn Ctrl + Shift + Enter
Sau đó fill xuống bên dưới cho hết...
Mã:
=MAX(IF($B$2:$B$7449=M2,J2:J7449,""))

Tương tự đối với giá trị MIN
Mã:
=MIN(IF($B$2:$B$7449=M2,J2:J7449,""))
 

File đính kèm

Cảm ơn 2 bạn.
Vậy có cách nào để mình lọc ra bảng kết quả giống như bên sheet "LOC TANG 1" mà mình làm thủ công không ạ? (các giá trị cột "Load" và "Loc" cũng theo luôn)
Trân trọng!
 
Cảm ơn 2 bạn.
Vậy có cách nào để mình lọc ra bảng kết quả giống như bên sheet "LOC TANG 1" mà mình làm thủ công không ạ? (các giá trị cột "Load" và "Loc" cũng theo luôn)
Trân trọng!

Bạn tham khảo chức năng Pivot Table thay vì dùng hàm nhé... Thân...
 
Không biết đúng ý bạn không...
Mình làm trong Sheet Tang 1...
Đầu tiên mình lọc ra danh sách Beam bằng Remove Duplicates sau đó mình dùng hàm bên dưới để tính max theo dạng hàm mảng cho mã Beam ở ô M2... Nhập xong công thức thì nhấn Nhấn Ctrl + Shift + Enter
Sau đó fill xuống bên dưới cho hết...
Mã:
=MAX(IF($B$2:$B$7449=M2,J2:J7449,""))

Tương tự đối với giá trị MIN
Mã:
=MIN(IF($B$2:$B$7449=M2,J2:J7449,""))
Mình kiểm tra thì thấy kết quả các các dầm bên dưới không đúng :(
 
Chạy code sau thử xem:

Mã:
Option Explicit
Public Sub GPE()
Dim C As Byte, Dic As Object, Tem As String
Dim Arr, dArr, I As Long, J As Long, K As Long, DMaxMin As Double
Arr = Sheet1.Range("A2", Sheet1.Range("A65000").End(3)).Resize(, 10).Value2
ReDim dArr(1 To UBound(Arr), 1 To 5)
Set Dic = CreateObject("Scripting.Dictionary")
For I = 1 To UBound(Arr)
Tem = Arr(I, 1) & Arr(I, 2) & Arr(I, 3)
DMaxMin = Arr(I, 10)
    If Dic.Exists(Tem) Then
    If Arr(I, 3) = "COMB1 MAX" Then
        If dArr(Dic.Item(Tem), 5) < DMaxMin Then
            dArr(Dic.Item(Tem), 5) = DMaxMin
            dArr(Dic.Item(Tem), 4) = Arr(I, 4)
        End If
    Else
        If dArr(Dic.Item(Tem), 5) > DMaxMin Then
            dArr(Dic.Item(Tem), 5) = DMaxMin
            dArr(Dic.Item(Tem), 4) = Arr(I, 4)
        End If
    End If
    Else
        K = K + 1
        Dic.Add Tem, K
        For J = 1 To 4
            dArr(K, J) = Arr(I, J)
        Next J
            dArr(K, 5) = DMaxMin
    End If
Next I
    Sheet2.Range("A2:E65000").ClearContents
    Sheet2.Range("A2").Resize(K, 5).Value = dArr
Set Dic = Nothing
End Sub
Tuyệt vời, đúng là cái mình cần.
Mình chẳng biết gì về VBA. mày mò trên mạng để tìm cách chạy code của bạn. Kết quả rất ưng ý.
Không biết có cách nào để tạo 1 file như vậy để sau này mình áp dụng cho các bảng lọc khác tương tự để khỏi cần mỗi lần lọc thì chạy lại code?
Cảm ơn mọi người rất nhiều!
 
Web KT

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

Back
Top Bottom