Xóa dữ liệu từng cột theo giá trị lớn nhất

quanthienhan

Thành viên hoạt động
Tham gia ngày
4 Tháng hai 2007
Bài viết
120
Được thích
3
Điểm
670
Tuổi
39
Mọi người xem giúp em có code hay cách nào để giải quyết các bước em làm thủ công thế này không ạ..
 

File đính kèm

CHAOQUAY

Thành viên tích cực
Tham gia ngày
24 Tháng tám 2018
Bài viết
862
Được thích
843
Điểm
360

quanthienhan

Thành viên hoạt động
Tham gia ngày
4 Tháng hai 2007
Bài viết
120
Được thích
3
Điểm
670
Tuổi
39
nghĩa là mình có thể chủ động xóa số lượng cột dữ liệu theo mình muốn - tự động có thể chạy hết các cột...
 

CHAOQUAY

Thành viên tích cực
Tham gia ngày
24 Tháng tám 2018
Bài viết
862
Được thích
843
Điểm
360
nghĩa là mình có thể chủ động xóa số lượng cột dữ liệu theo mình muốn - tự động có thể chạy hết các cột...
Bạn chay thử code tự động này
Mã:
Sub XoaCotMax_TuDong()
Dim Nguon, Dong, Cot
Dim Tong, Tong_
Dim Kq
Dim i, j, k, x, z, t
With Sheet1
    Kq = .Range("a5").CurrentRegion
    Dong = UBound(Kq)
    Cot = UBound(Kq, 2)
    Tong_ = .Range("a1:l3")
End With
x = Cot
Do While x > 0
    Nguon = Kq
    Tong = Tong_
    z = 0
    For j = 1 To Cot
        If z < Tong(1, j) * 100 + Tong(2, j) Then
            z = Tong(1, j) * 100 + Tong(2, j)
            t = j
        End If
    Next j
    t = CLng(Left(t, 2))
    ReDim Kq(1 To Dong - Tong(1, t), 1 To Cot)
    For j = 1 To Cot
        Kq(1, j) = Nguon(1, j)
        If j <> t Then Tong_(1, j) = 0
    Next j
    z = 1
    x = 0
    For i = 2 To Dong
        If Nguon(i, t) = 0 Then
            z = z + 1
            For j = 1 To Cot
                Tong_(1, j) = Tong_(1, j) + Nguon(i, j)
                x = x + Tong_(1, j)
                Kq(z, j) = Nguon(i, j)
            Next j
        End If
    Next i
    Dong = Dong - Tong(1, t)
    Tong_(1, t) = 0
Loop
Sheet1.Range("n1:y93").Clear
Sheet1.Range("n5").Resize(UBound(Nguon), Cot) = Nguon
Sheet1.Range("n1").Resize(UBound(Tong), UBound(Tong, 2)) = Tong
End Sub
 

quanthienhan

Thành viên hoạt động
Tham gia ngày
4 Tháng hai 2007
Bài viết
120
Được thích
3
Điểm
670
Tuổi
39
Sao mình chạy không được bạn.. bạn có thể cho vào file luôn giúp mình được không ..Cảm ơn nhiều..
 

quanthienhan

Thành viên hoạt động
Tham gia ngày
4 Tháng hai 2007
Bài viết
120
Được thích
3
Điểm
670
Tuổi
39
Bác CHAOQUAY có thể chạy cụ thể giúp em dc không.. mà code trên chạy thì mình có biết, hoặc đánh dấu những cột nào đã được xóa hay không ? cái này em rất cần, và khi muốn thay đổi ( số lượng cột bị xóa ) ta phải thay số liệu nào..Cảm ơn bác nhiều....
 

CHAOQUAY

Thành viên tích cực
Tham gia ngày
24 Tháng tám 2018
Bài viết
862
Được thích
843
Điểm
360
Sao mình chạy không được bạn.. bạn có thể cho vào file luôn giúp mình được không ..Cảm ơn nhiều..
Bạn làm như sau : nhấn alt+F8 -> run hoac enter
Bài đã được tự động gộp:

Bác CHAOQUAY có thể chạy cụ thể giúp em dc không.. mà code trên chạy thì mình có biết, hoặc đánh dấu những cột nào đã được xóa hay không ? cái này em rất cần, và khi muốn thay đổi ( số lượng cột bị xóa ) ta phải thay số liệu nào..Cảm ơn bác nhiều....
Tức là hiển thị từng bảng qua các bước chạy code à bạn?
 

File đính kèm

quanthienhan

Thành viên hoạt động
Tham gia ngày
4 Tháng hai 2007
Bài viết
120
Được thích
3
Điểm
670
Tuổi
39
có thể đánh dấu hoặc tô màu các cột đã được code chạy xóa dữ liệu.... như mình làm thủ công thì.. các cột bị xóa là.. 1.2.3.4.5.8.9 .. cột còn lại là 0.6.7.... mình đánh dấu thứ tự như ô A5...
Bài đã được tự động gộp:

Bạn cho mình hỏi.. mình muốn chạy nhiều giữ liệu hơn thì thay thông số nào... trên ví dụ xét 93 hàng thôi.. mình muốn lên 200 thì thay vào đâu..thank..
 

CHAOQUAY

Thành viên tích cực
Tham gia ngày
24 Tháng tám 2018
Bài viết
862
Được thích
843
Điểm
360
có thể đánh dấu hoặc tô màu các cột đã được code chạy xóa dữ liệu.... như mình làm thủ công thì.. các cột bị xóa là.. 1.2.3.4.5.8.9 .. cột còn lại là 0.6.7.... mình đánh dấu thứ tự như ô A5...
Cột nào đã xóa thì trên dòng 1 = 0 mà bạn
Bạn cho mình hỏi.. mình muốn chạy nhiều giữ liệu hơn thì thay thông số nào... trên ví dụ xét 93 hàng thôi.. mình muốn lên 200 thì thay vào đâu..thank..
Số liệu bắt đầu từ a5, mấy dòng cũng được
 

quanthienhan

Thành viên hoạt động
Tham gia ngày
4 Tháng hai 2007
Bài viết
120
Được thích
3
Điểm
670
Tuổi
39
Cột nào đã xóa thì trên dòng 1 = 0 mà bạn

Số liệu bắt đầu từ a5, mấy dòng cũng được
- ý mình là . nếu như xoa giá trị các cột theo giá trị nhiều nhất hiện tại... như ví dụ trên.. cột E có tổng giá trị là 28 lớn nhất.. sau khi mình Sort&filter để xóa đi các giá trị mình muốn... thì mình lại có Cột I có tổng giá trị lớn nhất... và mình lại Sort&filter để xóa đi các giá trị mình muốn...
sau các bước như thế thì Cột A = 0.... ( trong khi cột A chưa được xóa.. hay là không phải xóa ) .. và mình muốn biết và đánh dấu các cột được code xóa .. và các cột không và chưa được code xóa đã = 0 . như trường hợp cột A của ví dụ trên... .. mình cần biết các cột có tổng giá trị = 0 khi đã được code chạy qua.....
 

CHAOQUAY

Thành viên tích cực
Tham gia ngày
24 Tháng tám 2018
Bài viết
862
Được thích
843
Điểm
360
- ý mình là . nếu như xoa giá trị các cột theo giá trị nhiều nhất hiện tại... như ví dụ trên.. cột E có tổng giá trị là 28 lớn nhất.. sau khi mình Sort&filter để xóa đi các giá trị mình muốn... thì mình lại có Cột I có tổng giá trị lớn nhất... và mình lại Sort&filter để xóa đi các giá trị mình muốn...
sau các bước như thế thì Cột A = 0.... ( trong khi cột A chưa được xóa.. hay là không phải xóa ) .. và mình muốn biết và đánh dấu các cột được code xóa .. và các cột không và chưa được code xóa đã = 0 . như trường hợp cột A của ví dụ trên... .. mình cần biết các cột có tổng giá trị = 0 khi đã được code chạy qua.....
Bạn muốn hiển thị kết quả như thế nao
 

quanthienhan

Thành viên hoạt động
Tham gia ngày
4 Tháng hai 2007
Bài viết
120
Được thích
3
Điểm
670
Tuổi
39
mình có đánh dấu các cột từ 0 -> 9 của hàng A5.. nếu được có thể tô màu các ô đó . đánh dấu nhận biết các cột đã được code chạy xóa... như vậy các ô.. 12345.89 sẽ được tô màu... Cảm ơn
 

CHAOQUAY

Thành viên tích cực
Tham gia ngày
24 Tháng tám 2018
Bài viết
862
Được thích
843
Điểm
360
mình có đánh dấu các cột từ 0 -> 9 của hàng A5.. nếu được có thể tô màu các ô đó . đánh dấu nhận biết các cột đã được code chạy xóa... như vậy các ô.. 12345.89 sẽ được tô màu... Cảm ơn
Thử file này xem đã đúng ý bạn chưa
 

File đính kèm

quanthienhan

Thành viên hoạt động
Tham gia ngày
4 Tháng hai 2007
Bài viết
120
Được thích
3
Điểm
670
Tuổi
39
Thử file này xem đã đúng ý bạn chưa
OK quá chuẩn rồi bạn ơi... mà còn một chút nữa... sao mình xóa bớt dữ liệu gốc .. chạy code thì báo lỗi .. cũng như mình pate thêm giữ liệu nữa vào chạy code đều báo lỗi không được.. nhờ bạn xem giúp thêm chút nữa... Cảm ơn.
 

CHAOQUAY

Thành viên tích cực
Tham gia ngày
24 Tháng tám 2018
Bài viết
862
Được thích
843
Điểm
360
OK quá chuẩn rồi bạn ơi... mà còn một chút nữa... sao mình xóa bớt dữ liệu gốc .. chạy code thì báo lỗi .. cũng như mình pate thêm giữ liệu nữa vào chạy code đều báo lỗi không được.. nhờ bạn xem giúp thêm chút nữa... Cảm ơn.
Lỗi thế nào bạn gửi file lên
 

quanthienhan

Thành viên hoạt động
Tham gia ngày
4 Tháng hai 2007
Bài viết
120
Được thích
3
Điểm
670
Tuổi
39
mình copy lại dữ liệu gốc pate vô chạy code thì ok.. nhưng khi copy thử dữ liệu bên Sheet2 vô chạy code thì báo lỗi...không được..bạn xem giúp mình ..thank.
 

File đính kèm

quanthienhan

Thành viên hoạt động
Tham gia ngày
4 Tháng hai 2007
Bài viết
120
Được thích
3
Điểm
670
Tuổi
39
đúng rồi bạn.. dòng 1 là tổng của từng cột..để mỗi lần delete mình cần lấy giá trị tổng cột nào lớn nhất để delete tiếp.. ( dòng 3 là tổng lúc đầu chưa delete từng cột -).. mình làm thủ công . nên khi delete đên trường hợp có 2 cột bằng nhau.. mình sẽ so sánh giá trị tổng cột lúc đầu ở dòng thứ 3.. cột nào có giá trị lớn hơn mình sẽ ưu tiên delete cột đó....
 
Top Bottom