Hỏi về lọc giá trị Max Min 1 điều kiện? (1 người xem)

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

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

nad582

Thành viên thường trực
Tham gia
7/6/11
Bài viết
317
Được thích
48
Chào các a (c) GPE, e có vấn đề về cách lọc max và min như sau:
1. e có bảng dữ liệu cột A và B (cột A là tên, cột B là trị số), viết code xác định giá trị nhỏ nhất (Min) và giá trị lớn nhất (Max) ở cột B dựa theo tên cột A, các giá trị còn lại "delete rows"
hình minh họa:
dữ liệu: View attachment 121711 kết quả: View attachment 121713
e chân thành cảm ơn.
 
chào các a (c) gpe, e có vấn đề về cách lọc max và min như sau:
1. E có bảng dữ liệu cột a và b (cột a là tên, cột b là trị số), viết code xác định giá trị nhỏ nhất (min) và giá trị lớn nhất (max) ở cột b dựa theo tên cột a, các giá trị còn lại "delete rows"
hình minh họa:
Dữ liệu: View attachment 121711 kết quả: View attachment 121713
e chân thành cảm ơn.
theo mình nghĩ kết quả trả về như thế này mới gọn chứ nhỉ .
Sao lại có 2 lần min và 2 lần max làm chi cho rối
TÊN Min Max
T1 0 4
T2 0 5
 
Chào các a (c) GPE, e có vấn đề về cách lọc max và min như sau:
1. e có bảng dữ liệu cột A và B (cột A là tên, cột B là trị số), viết code xác định giá trị nhỏ nhất (Min) và giá trị lớn nhất (Max) ở cột B dựa theo tên cột A, các giá trị còn lại "delete rows"
e chân thành cảm ơn.

Bạn làm theo file đính kèm
 

File đính kèm

Về đề bài của e thì e tìm đc code và chỉnh sửa đúng theo yêu cầu của e (đúng với số liệu cũ) rồi nhưng khi sử dụng với số liệu khác thì bị lỗi 1 vài chỗ mong a (c) xem và hiệu chỉnh lại giúp. e chân thành cảm ơn:
Mã:
Sub max_min()    Dim n, m, i As Integer
    Dim FrameLeng As Single
    n = 2
    m = n
    Sheets("SoLieu").Activate
    Do While Sheets("SoLieu").Cells(n, "A") <> ""
        If Cells(n, 1) = Cells(n - 1, 1) Then
            If Cells(n, 2) = 0 Then
                n = n + 2
            ElseIf Cells(n, 2) > 0 And Cells(n, 2) < FrameLeng Then
                If (Cells(n, 2)) <= (Cells(n + 1, 2)) Then
                    Rows(n).Delete
                Else
                    For i = 1 To 10
                        Cells(n + 1, i) = Cells(n, i)
                    Next i
                End If
            Else
                n = n + 1
            End If
        Else
            m = n
            Do Until Cells(m + 1, 1) > Cells(m, 1) Or Cells(m + 1, 1) = ""
                m = m + 1
            Loop
            FrameLeng = Cells(m, 2)
            n = n + 2
        End If
    Loop
End Sub
sử dụng với số liệu cũ thì đúng, với số liệu mới View attachment 121787thì bị lỗi 1 vài chỗ View attachment 121788.
 
Bạn tham khảo 1 cách làm như sau

Thử chép số liệu của bạn vô 2 trang tính & chạy macro xem thử kết quả sẽ ra sao?
 

File đính kèm

e không làm đc như của a ChanhTQ@ , nhưng các a (c) có thể hiệu chỉnh code ở bài #4 đc không vì cách đó chạy giồng ý e, nhưng e ko làm đc? nếu ko thì có thể làm cách khác cũng đc, nhưng sao cho để hiểu tý? e cảm ơn nhiều! có gì chưa hiểu e sẽ chú thích thêm!!
 
. . vì cách đó chạy giồng ý e, nhưng e ko làm đc?. . .
Theo mình hiểu, cách đó đúng với í bạn do nó xóa những dòng thừa chứ gì?
Để vậy thì chỉ cần chép đè toàn bộ kết quả lên trang 'SoLieu' thôi.
nhưng các a (c) có thể hiệu chỉnh code ở bài #4 đc không vì cách đó chạy giồng ý
Chuyện sửa code của người khác là rất ngại, do khối công việc tăng gấp đôi;
Riêng chuyệnh đọc & dịch code để hiểu fương fáp của tác giả đã là 1 vấn đề rồi!
 
Theo mình hiểu, cách đó đúng với í bạn do nó xóa những dòng thừa chứ gì?
đúng vậy do nó chạy delete rows từng dòng thừa đi.
Để vậy thì chỉ cần chép đè toàn bộ kết quả lên trang 'SoLieu' thôi.
Mặc dù là như vậy, đối với số liệu cũ thì đúng nhưng khi e chép số liệu mới vào thì nó vẫn còn 1 vài dòng thừa ko xóa đi. vì vậy e nhờ các a(c) giúp e hiệu chỉnh code lại cho dù pass những số liệu khác thì vẫn đúng.

Chuyện sửa code của người khác là rất ngại, do khối công việc tăng gấp đôi;
Riêng chuyệnh đọc & dịch code để hiểu fương fáp của tác giả đã là 1 vấn đề rồi!
đúng là để hiểu code của người khác tốn nhiều thời gian, gây nhiều khó vì với code ở bài #4 e cũng rất lâu mới có thể chỉnh lại cho đúng với ý mình nhưng nó đúng có trường hợp 1 thôi, còn số liệu khác thì đúng. nếu ko chỉnh đc code bài #4 thì nhờ a(c) viết code khác đơn giản hơn giúp e. chân thành cảm ơn.
 
Web KT

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

Back
Top Bottom