Sắp xếp tiếng Việt trong excel 2010

Liên hệ QC

nvthinh93

Thành viên mới
Tham gia
25/7/13
Bài viết
2
Được thích
0
Chào các mọi người, hiện tại em đang muốn sắp xếp tên tiếng việt trong excel nhưng cứ đến các chữ Đ là nó lại lộn xộn hết cả, các add in thì không dùng đc cho excel 2010. Em lên google tìm thì có thấy 1 hướng dẫn là: "Trong Excel có thể viết một user function để mã hóa tiếng việt có dấu thành tiếng việt có mã dấu, như ă->az, â->azw, ê->ez, đ->dz, ô->oz, ơ-> ozw, ư->uz còn dấu sắc ->1, huyền ->2, hỏi ->3, ngã ->4, nặng ->5 đặt ở cuối từ. ví dụ: nguyễn -> nguyezn4, đường -> dzuzozwng2.
ta mã hóa tên rồi đến họ và lót ra một cột kế đó và sort theo cột này sẽ đúng thứ tự". Vậy ai biết hàm này là hàm gì và sử dụng thế nào chỉ em đc ko? Thanks
 
Chào các mọi người, hiện tại em đang muốn sắp xếp tên tiếng việt trong excel nhưng cứ đến các chữ Đ là nó lại lộn xộn hết cả, các add in thì không dùng đc cho excel 2010. Em lên google tìm thì có thấy 1 hướng dẫn là: "Trong Excel có thể viết một user function để mã hóa tiếng việt có dấu thành tiếng việt có mã dấu, như ă->az, â->azw, ê->ez, đ->dz, ô->oz, ơ-> ozw, ư->uz còn dấu sắc ->1, huyền ->2, hỏi ->3, ngã ->4, nặng ->5 đặt ở cuối từ. ví dụ: nguyễn -> nguyezn4, đường -> dzuzozwng2.
ta mã hóa tên rồi đến họ và lót ra một cột kế đó và sort theo cột này sẽ đúng thứ tự". Vậy ai biết hàm này là hàm gì và sử dụng thế nào chỉ em đc ko? Thanks

Tôi không biết cái hàm của bạn.

Tôi xử lý hơi khác. Tôi phân biệt 2 trường hợp khi sắp xếp: phân biệt chữ hoa - thường, và không phân biệt.

1. Phân biệt hoa thường. Tôi chọn ra 212 ký tự và sắp xếp chúng "bằng tay". Tôi được dãy đã sắp xếp như sau - tức tôi cho là thứ tự của các ký tự ấy như sau. Còn nếu bạn chấp nhận thứ tự khác đi thì cũng chả sao. Triết lý là gán cho mỗi ký tự một chuỗi nào đó mà thứ tự của các chuỗi ấy cũng là thứ tự của các ký tự được gán:

Mã:
0123456789:;<=>?@[\]^_{|}~aàảãáạăằẳẵắặâầẩẫấậbcdđeèẻẽéẹêềểễếệfghiìỉĩíịjklmnoòỏõóọôồổỗốộơờởỡớợpqrstuùủũúụưừửữứựvwxyỳỷỹýỵzAÀẢÃÁẠĂẰẲẴẮẶÂẦẨẪẤẬBCDĐEÈẺẼÉẸÊỀỂỄẾỆFGHIÌỈĨÍỊJKLMNOÒỎÕÓỌÔỒỔỖỐỘƠỜỞỠỚỢPQRSTUÙỦŨÚỤƯỪỬỮỨỰVWXYỲỶỸÝỴZ

Bây giờ tôi gán cho các ký tự lần lượt các số từ 1 tới 212. Nếu tôi viết 212 số này trong hệ đếm 16 (tức các chữ số là 0, 1, ..., 9, a, b, c, d, e, f) thì mỗi ký tự trong 212 ký tự ở trên sẽ ứng với 2 ký tự trong chuỗi: "0102...090a0b...0f1011...d0d1d2d3d4"

Chuỗi gán:
Mã:
[COLOR=#ff0000]"0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4"[/COLOR]

Dễ thấy dãy các CHUỖI "01", "02", ..., "09", "0a", "0b", ..., "0f", "10", "11", ..., "d0", "d1", "d2", "d3", "d4" là dãy tăng.

Như vậy thì hàm mã chuỗi sẽ đọc từng ký tự và nếu có trong chuỗi 212 ký tự "cơ bản" thì thay nó bằng 2 ký tự trong chuỗi đỏ đỏ. Nếu không có thì để nguyên. Sau đó thì sắp xếp các chuỗi đã được mã. Thế thôi.

2. Không phân biệt hoa - thường
Chuỗi gán:
Mã:
"0102030405060708090a0b0c0d0e0f101112131415161718191a[COLOR=#0000ff]1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f7071727374757677[/COLOR][COLOR=#ff0000]1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f7071727374757677[/COLOR]"
----------------------
Ta giao kèo thế này: Nếu bạn nhận giao kèo thì tải tập tin đính kèm và kết quả test phải báo lại cho tôi.

Code để mã chuỗi là hàm ma_hoa_chuoi. Có hàm SourceToDest để chuyển đổi mã, hàm BangLoiVn đọc số thành chữ, hàm Sort2DArray để sắp xếp.

Đây là add-in. Trên cơ sở code bạn cũng nên tự tạo add-in cho phù hợp với mình.
 

File đính kèm

  • siwtom_sort.xlam
    67.4 KB · Đọc: 129
Không hiểu sao sau khi dùng add-in của bạn sắp xếp xong thì cái cột tên nó biến mất luôn :(
 
Web KT
Back
Top Bottom