Bài toán Sort có điều kiện

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

trexanh

Thành viên mới
Tham gia
22/8/09
Bài viết
9
Được thích
2
Dear các bạn,

Mình có một danh sách nhân viên khá dài (trên trăm nhân viên), được xếp loại A.B,C,D. Việc update danh sách thường xuyên nên phần xếp loại cứ lộn xộn và phải Sort thủ công hoài.

Vậy, trong excell có công thức nào để cho việc sort đó diễn ra tự động hay không?
VD: Sheet 1 : bảng nhập liệu
Sheet 2 : bảng kết quả (file đính kèm) : sắp sếp ds theo xếp loại, sau đó theo họ tên.

Cám ơn
Trexanh
 

File đính kèm

View attachment ngoc.xlsmình có bài này xin hoi các bạn giup mình, mình cần đếm tần xuất hiên của mã hàng trong tháng với điều kiện là hàng xuất đi, ko tính hàng nhập kho, ( trong cot Kho xuất có danh dấu "town" . Hồi âm sớm giúp mình nhé
 
Dear các bạn,

Mình có một danh sách nhân viên khá dài (trên trăm nhân viên), được xếp loại A.B,C,D. Việc update danh sách thường xuyên nên phần xếp loại cứ lộn xộn và phải Sort thủ công hoài.

Vậy, trong excell có công thức nào để cho việc sort đó diễn ra tự động hay không?
VD: Sheet 1 : bảng nhập liệu
Sheet 2 : bảng kết quả (file đính kèm) : sắp sếp ds theo xếp loại, sau đó theo họ tên.

Cám ơn
Trexanh

Nếu là mình thì: Cứ nhập vào mỗi khi có phát sinh mới sau đó dùng macro để sắp xếp là xong. (không cần phải dùng thêm sheet 2).
 

File đính kèm

Nếu là mình thì: Cứ nhập vào mỗi khi có phát sinh mới sau đó dùng macro để sắp xếp là xong. (không cần phải dùng thêm sheet 2).
Bạn có thể thay đoạn Code:
PHP:
Sub xep()
    i = Range("B6500").End(xlUp).Row
    Range("B3:C" & i).Select
    Selection.Sort Key1:=Range("c3"), Order1:=xlAscending, Key2:=Range("b3") _
        , Order2:=xlAscending, Header:=xlYes, OrderCustom:=1
    Range("B" & i).Select
End Sub
Bằng đoạn code dưới đây sẽ gọn hơn:
PHP:
Sub xep()
Range("B3:C" & [B65536].End(xlUp).Row).Sort [C3], 1, [B3], , 2, Header:=xlYes
End Sub
Chúc vui.
 
View attachment 32250mình có bài này xin hoi các bạn giup mình, mình cần đếm tần xuất hiên của mã hàng trong tháng với điều kiện là hàng xuất đi, ko tính hàng nhập kho, ( trong cot Kho xuất có danh dấu "town" . Hồi âm sớm giúp mình nhé

Bạn dùng hàm sumproduct nhé!
F4=SUMPRODUCT((PS!$D$4:$D$153=Tong!A4)*(PS!$F$4:$F$153="TOWN"))
 
Nếu là mình thì: Cứ nhập vào mỗi khi có phát sinh mới sau đó dùng macro để sắp xếp là xong. (không cần phải dùng thêm sheet 2).

Mình áp dụng công thức của bạn sao không được ? sai ở đâu ? nhờ bạn hướng dẫn dùm.

Cám ơn.
Trexanh
 

File đính kèm

Bạn có thể thay đoạn Code:
PHP:
Sub xep()
    i = Range("B6500").End(xlUp).Row
    Range("B3:C" & i).Select
    Selection.Sort Key1:=Range("c3"), Order1:=xlAscending, Key2:=Range("b3") _
        , Order2:=xlAscending, Header:=xlYes, OrderCustom:=1
    Range("B" & i).Select
End Sub
Bằng đoạn code dưới đây sẽ gọn hơn:
PHP:
Sub xep()
Range("B3:C" & [B65536].End(xlUp).Row).Sort [C3], 1, [B3], , 2, Header:=xlYes
End Sub
Chúc vui.
Hay quạ Mình cũng gặp trường hợp nạy Nhưng thú thật đọc xong mù tit. Tự trách mình chưa học tợi
XinPHP bỏ chút thời gian giải thích cho mình cái Sub đó nhẹ
Cám ơn nhiều
 
Thuật toán của bạn ấy là khi thêm 1 dòng thì dùng 1 cái Macro để sắp xếp lại như sau:

Sub xep()
i = Range("B6500").End(xlUp).Row 'Tương đương với việc đặt chuột ở ô B6500 ấn Ctr và mũi tên lên. Dùng để xác định số thứ tự của Dòng chứa tên người cuối cùng i ví dụ là 31
Range("B3:C" & i).Select ' Vùng từ B3 đến Ci được chọn
Selection.Sort Key1:=Range("c3"), Order1:=xlAscending, Key2:=Range("b3") _
, Order2:=xlAscending, Header:=xlYes, OrderCustom:=1 ' Sắp xếp vùng được chọn theo thứ tự abc tăng dần của cột B
Range("B" & i).Select ' Ô B31 được chọn
End Sub


Have fun
 
Web KT

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

Back
Top Bottom