Sắp xếp các nội dung trong bảng theo thứ tự abc

Liên hệ QC

Hungguitarx

Thành viên mới
Tham gia
4/11/08
Bài viết
5
Được thích
0
Mình mới lập 1 bảng danh sách lớp có STT,họ tên,điểm kiểm tra, nhưng chưa biết cách sắp xếp theo vần abc cho đúng thứ tự, ai có thể chỉ hộ mình với!
 

File đính kèm

  • SortTcvn.zip
    197 KB · Đọc: 716
Bạn có thể dùng Add-in mà bạn Cop_kh gửi tặng. Còn nếu không muốn dùng add-in cho lằng nhằng thì bạn có thể sử dụng cách đơn giản hơn nhiều:
1. Bạn nhập riêng cột họ lót và cột tên.
2. Bạn chọn hết bảng tính (không nên chọn cột số thứ tự).
3. Vào menu Data --> Sort --> Chọn cột tên (ví dụ cột C) --> Chọn Ascending --> Bấm nút kiểm Header Row (nếu khối bạn chọn có dòng tiêu đề) --> OK.

Còn nếu bạn đã nhập cột họ và tên chung thì bạn có thể dùng các công thức sau (Cái này mình tham khảo của 1 bạn trên diễn đàn - Xin lỗi vì ăn cắp bản quyền). Sau đó thì dùng chức năng Sort đã nói ở trên.

I>.TÁCH HỌ
1>. =LEFT(TRIM(A2),FIND(" ",TRIM(A2))-1)
+ TRIM(A2): Cắt bỏ những khoảng trắng thừa trong chuỗi. Tạo ra chuỗi Họ và tên theo chuẩn. + FIND(" ",TRIM(A2)) : Tìm vị trí khoảng trắng đầu tiên trong chuỗi.
+ FIND(" ",TRIM(A2))-1: Tìm chiều dài Họ cần tách
2>. =TRIM(LEFT(SUBSTITUTE(TRIM(A2)," "," "),7))
+ SUBSTITUTE(TRIM(A2)," "," "): Tìm và thay thế chiều dài khoảng trắng trong chuỗi từ 1 lên 6.
+
LEFT(SUBSTITUTE(TRIM(A2)," "," "),7): Cắt chuỗi từ bên trái qua phải với 7 ký tự (Trả về Chuỗi Họ).
+
TRIM(LEFT(SUBSTITUTE(TRIM(A2)," "," "),7)): Cắt bỏ khoảng trắng thừa trong Chuỗi Họ tìm được. 3>. =REPLACE(TRIM(A2),FIND(" ",TRIM(A2)),30,"")
+
FIND(" ",TRIM(A2)) : Tìm vị trí khoảng trắng đầu tiên trong chuỗi.
+ REPLACE(TRIM(A2),FIND(" ",TRIM(A2)),30,"") : Thay thế chuỗi bắt đầu từ vị trí khoảng trắng đầu tiên đến hết chuỗi (chuỗi con trong chuỗi Họ và tên) bằng rỗng.
II>. TÁCH TÊN LÓT
1>. {=MID(TRIM(A2),FIND(" ",TRIM(A2))+1,MAX((MID(TRIM(A2),ROW($1:$50),1)=" ")*ROW($1:$50))-FIND(" ",TRIM(A2)))}
+ ROW($1:$50) : Tạo ra một mảng gồm 50 phần tử từ 1->50
+ MID(TRIM(A2),ROW($1:$50),1) : Cắt giữa chuỗi của chuỗi Họ và tên với vị trí bắt đầu từ 1 ->50, với chiều dài chuỗi cần cắt là 1 ký tự. ----Hàm trên sẽ trả về một mảng gồm 50 phần tử.vừa có ký tự thường, vùa có khoảng trắng và ký tự rỗng.
+ MID(TRIM(A2),ROW($1:$50),1)=" " : Toán tử so sánh 50 phần tử tìm được với ký tự khoảng trắng. ----Toán tử trên sẽ trả về một mảng gồm 50 phần tử True or False, Nếu so sánh đúng thì trả về True, ngược lại là False.
+ MID(TRIM(A2),ROW($1:$50),1)=" ")*ROW($1:$50) : Toán tử tạo ra một mảng gồm 50 phần tử (mảng số) ----Nếu phần tử nào là False thì sẽ trả về 0, Là TRUE thì trả về số ứng với vị trí của phần tử TRUE đó.
+ MAX((MID(TRIM(A2),ROW($1:$50),1)=" ")*ROW($1:$50)) : Tìm ra phần tử có giá trị lớn nhất trong mảng số tìm được ở trên. ----Hàm trên sẽ trả về vị trí khoảng trắng lớn nhất trong chuỗi Họ và tên.
+ MAX((MID(TRIM(A2),ROW($1:$50),1)=" ")*ROW($1:$50))-FIND(" ",TRIM(A2)) : Trả về chiều dài của Tên lót.
+ MID(TRIM(A2),FIND(" ",TRIM(A2))+1,MAX((MID(TRIM(A2),ROW($1:$50),1)=" ")*ROW($1:$50))-FIND(" ",TRIM(A2)))
- Hàm cắt giữa chuỗi Họ và tên với vị trí bắt đầu là vị trí khoảng trắng đầu tiên +1, với chiều dài chuỗi cần cắt đã tìm ở trên.
+ {} : Ký hiệu của hàm mảng, sau khi gõ xong công thức, nhấn Ctrl+Shift+Enter, các toán tử mảng sẽ bắt đầu hoạt động.
III. TÁCH TÊN:
1>. =TRIM(RIGHT(SUBSTITUTE(TRIM(A2)," "," "),7))
+ Diễn giải công thức tương tự như mục 2 phần Tách Họ.
2>. {=MID(TRIM(A2),MAX((MID(TRIM(A2),ROW($1:$50),1)=" ")*ROW($1:$50))+1,7)}
+ MAX((MID(TRIM(A2),ROW($1:$50),1)=" ")*ROW($1:$50))
: Tìm vị trí khoảng trắng lớn nhất trong chuỗi Họ và Tên.
+ MAX((MID(TRIM(A2),ROW($1:$50),1)=" ")*ROW($1:$50))+1 : Tìm vị trí đầu tiên của chuỗi Tên.
+ MID(TRIM(A2),MAX((MID(TRIM(A2),ROW($1:$50),1)=" ")*ROW($1:$50))+1,7) : Cắt chuỗi Họ và Tên với chiều dài chuỗi cần cắt là 7.
3>. {=RIGHT(TRIM(A2),LEN(TRIM(A2))-MAX((MID(TRIM(A2),ROW($1:$50),1)=" ")*ROW($1:$50)))}
+ LEN(TRIM(A2))
: Tìm chiều dài chuẩn của chuỗi Họ và Tên.
+ MAX((MID(TRIM(A2),ROW($1:$50),1)=" ")*ROW($1:$50)) : Tìm vị trí khoảng trắng lớn nhất trong chuỗi Họ và Tên.
+ LEN(TRIM(A2))-MAX((MID(TRIM(A2),ROW($1:$50),1)=" ")*ROW($1:$50)) : Tìm chiều dài của chuỗi Tên cần tách. + RIGHT(TRIM(A2),LEN(TRIM(A2))-MAX((MID(TRIM(A2),ROW($1:$50),1)=" ")*ROW($1:$50))) : Cắt phải chuỗi Họ và Tên.
4>. {=REPLACE(TRIM(A2),1,MAX((MID(TRIM(A2),ROW($1:$50),1)=" ")*ROW($1:$50)),"")} + MAX((MID(TRIM(A2),ROW($1:$50),1)=" ")*ROW($1:$50)): Tìm vị trí khoảng trắng lớn nhất trong chuỗi Họ và Tên.
+ REPLACE(TRIM(A2),1,MAX((MID(TRIM(A2),ROW($1:$50),1)=" ")*ROW($1:$50)),"") : Thay thế chuỗi không chứa tên bằng rỗng.
5>. =RIGHT(TRIM(A2),LEN(TRIM(A2))-FIND("-",SUBSTITUTE(TRIM(A2)," ","-",LEN(TRIM(A2))-LEN(SUBSTITUTE(A2," ","")))))
+ SUBSTITUTE(A2," ","")
: Thay thế ký tự khoảng trắng trong chuỗi Họ và Tên bằng rỗng. + LEN(SUBSTITUTE(A2," ","")) : Tìm chiều dài chuỗi Họ và Tên sau khi bỏ đi khoảng trắng. + LEN(TRIM(A2))-LEN(SUBSTITUTE(A2," ","")) : Tìm số khoảng trắng trong chuỗi Họ và Tên ban đầu.
+ SUBSTITUTE(TRIM(A2)," ","-",LEN(TRIM(A2))-LEN(SUBSTITUTE(A2," ",""))) : Thay thế ký tự " " bằng "-" ở vị trí " " lớn nhất trong chuỗi.
+ FIND("-",SUBSTITUTE(TRIM(A2)," ","-",LEN(TRIM(A2))-LEN(SUBSTITUTE(A2," ","")))) : Tìm vị trí của ký tự "-" trong chuỗi.
+ LEN(TRIM(A2))-FIND("-",SUBSTITUTE(TRIM(A2)," ","-",LEN(TRIM(A2))-LEN(SUBSTITUTE(A2," ","")))) : Tìm chiều dài chuỗi Tên cần tách.
Hoành tráng quá phải không (Bạn chỉ cần copy 1 trong những cách trên ở từng mục tách họ, lót, tên vào ô mình muốn - dòng đỏ, màu xanh là giải thích công thức). Bạn có thể vào mục tìm kiếm. Chủ đề này đã được thảo luận rất nhiều
 
Lần chỉnh sửa cuối:
xin cám ơn nhiều. Tôi đang bí cái này
 
Web KT
Back
Top Bottom