Chữ có dấu thành chữ không dấu hoa

Liên hệ QC

dongthuan

Thành viên mới
Tham gia
20/10/08
Bài viết
12
Được thích
0
Trong excel mình không biết có công thức hoặc hàm nào đổi chữ có dấu thành chữ không dấu, nhờ các huynh chỉ giúp. Ví dụ: cột A1 = Nguyễn Văn Đường ===> B1 = NGUYEN VAN DUONG. Xin cám ơn
 
Trong excel mình không biết có công thức hoặc hàm nào đổi chữ có dấu thành chữ không dấu, nhờ các huynh chỉ giúp. Ví dụ: cột A1 = Nguyễn Văn Đường ===> B1 = NGUYEN VAN DUONG. Xin cám ơn
Hổng có hàm nào làm việc này đâu ---> Phải dùng VBA để lập trình hàm tự tạo thôi
 
Upvote 0
Chữ có dấu thành chữ không dâu

Trong excel minh không biết công thức hoặc hàm nào chuyển chữ có dấu thành không dấu nhờ các huynh chỉ giúp. Vi du: cột A1= Nguyễn văn Đường ===> B1= NGUYEN VAN DUONG. Xin cám ơn.
 
Upvote 0
Vậy nhờ ndu96081631 chĩ giúp hàm tự tạo cám ơn nhiều.
 
Upvote 0
Hàm này thì làm được thôi, cả VNI, TCVN3 và Unicode, nhưng khá mất thời gian nên chưa thế làm ngay giúp bạn được. Bạn cho địa chỉ mail đi, làm xong mình mail cho nhé.
 
Upvote 0
Trong excel mình không biết có công thức hoặc hàm nào đổi chữ có dấu thành chữ không dấu, nhờ các huynh chỉ giúp. Ví dụ: cột A1 = Nguyễn Văn Đường ===> B1 = NGUYEN VAN DUONG. Xin cám ơn
Trong excel có 1 hàm là UPPER để chuyển chữ thưòngt hành chữ hoa. Tuy nhiên em cũng chưa biết là có hàm nào bỏ dấu được không. Với những trường hợp như thế này, em chỉ hay dùng Unikey để bỏ dấu và chuyển sang chữ hoa, rất nhanh và tiện ạ. Bác thử xem thế nào nhé.
 
Upvote 0
Gửi bạn dongthuan! Mình đã có cùng thắc mắc như bạn và đã được bạn nmhung49 trả lớp ở diễn đàn Các Add-ins cho Excel, mình xin copy gửi ý kiến của bạn nmhung49 như sau:
"Bạn copy dữ liệu rồi mở chương trình unikey lên nhấp chuột phải chọn công cụ hoặc phím tắt Ctrl + Shift + F6 đánh dầu check vào ô loại bỏ dầu sau đó nhấn chuyển mã, rồi trở lại file excel paste lại là được
Nếu không có bộ gõ tiếng Việt bạn vào đây down về
http://www.download.com.vn/download/...2BdI3eIA%3D%3D ".
Bạn hãy làm theo, mình đã thực hiện và thấy kết quả rất tốt. Chúc bạn thành công.​
 
Upvote 0
Hàm này thì làm được thôi, cả VNI, TCVN3 và Unicode, nhưng khá mất thời gian nên chưa thế làm ngay giúp bạn được. Bạn cho địa chỉ mail đi, làm xong mình mail cho nhé.
Mình đang thắc mắc không biết với font TCVN3 thì bằng cách nào người ta phân biệt được HOA thường ta? Hay là không cần phân biệt, muốn đổi HOA, thường thì tự người dùng đổi font (H)
(Lâu lâu quay lại font TCVN3 lại thấy mắc cười ghê...)
 
Upvote 0
Trong excel mình không biết có công thức hoặc hàm nào đổi chữ có dấu thành chữ không dấu, nhờ các huynh chỉ giúp. Ví dụ: cột A1 = Nguyễn Văn Đường ===> B1 = NGUYEN VAN DUONG. Xin cám ơn
Hàm VBA đây bạn ơi! Cú pháp là tên font đang dùng. Add-Ins dùng cho 3 font. TCVN3, Unicode, VNI. Đính kèm Add-Ins là 1 file check hàm.
 
Upvote 0
Trong excel mình không biết có công thức hoặc hàm nào đổi chữ có dấu thành chữ không dấu, nhờ các huynh chỉ giúp. Ví dụ: cột A1 = Nguyễn Văn Đường ===> B1 = NGUYEN VAN DUONG. Xin cám ơn
Nếu dùng hàm thì không được vì hàm không hỗ trợ bỏ dấu, dùng VBA hì được hoặc bạn có thể dùng Unikey để chuyển mã, nhớ chọn thêm tùy chọn để bỏ dấu và chuyển sang in hoa
[video=youtube;G2kfFlHZ1N0]http://www.youtube.com/watch?v=G2kfFlHZ1N0[/video]
 
Upvote 0
I. Biểu diễn tiếng Việt và bỏ dấu

Biểu diễn Tiếng Việt trên máy tính thực tế là sự kết hợp các mã ký tự từ bảng mã máy tính theo trật tự nào đó cùng với bộ phông. Theo cấu trúc tiếng Việt, ta có nguyên âm sau đó thêm dấu. Tỉnh tổng thể, ta có 134 cách kết hợp các nguyên âm và dấu.
Trước đây, khi đa số các ứng dụng trên máy tính chưa hỗ trợ bảng mã Unicode, các nhà nghiên cứu của ta sử dụng bảng mã ASCII với 256 ký tự cơ bản để thể hiện tiếng Việt theo đó, cách sử dụng ký tự biểu diễn nguyên âm có dấu khác nhau được gọi là bộ mã khác nhau và có 2 cách cơ bản sau:
1. Các phụ âm thì khỏi phải bàn, với các nguyên âm, có dấu người ta lựa chọn một số mã ký tự để thể hiện chẳng hạn, với các nguyên âm "á/à/ả/ã/ạ", người ta sử dụng các ký tự "¸/µ/¶/·/¹" để biểu diễn (đối với bảng mã TCVN-ABC).
Cách này người ta gọi là bộ mã 1 byte (các bảng mã TCVN-ABC, VPS, VPSII ...vv).

2. Cách khác, người ta sử dụng 2 ký tự để biểu diễn một nguyên âm theo nguyên tắc [ký tự biểu diễn nguyên âm có mũ hoặc không mũ] + [Ký tự biểu diễn dấu]
Chẳng hạn sử dụng [AÙ/AØ/AÛ/AÕ/AÏ] để biểu diễn [Á/À/Ả/Ã/Ạ] trong đó A là nguyên âm và Ù để biểu diễ dấu sắc ....vv
Cách này người ta gọi là bộ mã 2 bytes (các bảng mã VNI, B.K. HCM 2 ...)

Nhưng nếu chỉ làm như thế thì vẫn chưa thành tiếng Việt. Các nhà lập trình đã sử dụng thêm một công cụ nữa là bộ phông chữ để hiển thị các ký tự lạ mắt thành chữ trên màn hình dưới dạng tiếng Việt.
Việc này đơn giản giống như việc lắp một cái kính biến hình để khi ta quan sát một đồ vật qua kính thì nó có hình dạng khác nhau, bộ phông có vai trò như cái kính.
Về ưu nhược thì tôi không viết cụ thể vì có nhiều người viết rồi.

Giai đoạn trước khi có Unicode thì với các ngôn ngữ khác, người ta cũng chỉ sử dụng cách kết hợp như vậy để biểu diễn (tiếng Trung, tiếng Thái, Nhật ..vv) trong đó cách sử dụng thứ 2 được ứng dụng triệt để và với nhóm ký tự phức tạp, có khi người ta dùng đến 3,4,5 bytes ( như tiếng Trung).

Thấy rõ hạn chế này của ASCII, khoảng 15 năm trước người ta nghĩ đến Unicode với số lượng ký tự trong bộ mã tăng lên rất nhiều bằng cách tăng số byte cho bộ mã, chẳng hạn với mã Unicode 2 bytes, người ta có thể lưu trữ đại diện được hơn 65xxx ký tự.
Trong giai đoạn này, người Việt ta đã đăng ký chính thức 134 nguyên âm có dấu của mình trong bộ mã Unicode. Đây cũng là thời điểm rộ lên các tranh cãi về làm thế nào để chuyển đổi và thống nhất mã tiếng Việt. Tuy nhiên, cuối cùng thì nhà nước cũng đã nhất thể được việc ứng dụng tiếng Việt trên máy tính trong đó bộ mã dựng sẵn được dùng tương đối rộng rãi (đây cũng là bộ mã tôi vừa nói trên, bộ mã có đầy đủ 134 nguyên âm có dấu).

Quay lại chủ đề này, việc thay đổi từ có dấu sang không dấu chỉ đơn giản là việc: Thay thế các nguyên âm có dấu trong chuỗi thành không dấu. Như thế với Unicode dựng sẵn thì cách làm là thế trong chuỗi cứ có chữ á thì thay bằng a ....vv. Với chuỗi kiểu VNI trong đó có sử dụng ký tự đánh dấu thì đơn giản là loại bỏ các ký tự đánh dấu là xong cho nhanh. Còn với TCVN-ABC,, cách làm là tương tự với Unicode.
Như vậy, không có hàm dựng sẵn trong Excel có thể làm việc này mà ta phải viết một hàm để làm điều đó. Để biết cách làm, các bạn có thể xem tiếp cận có trong bài viết về chuyển đổi bảng mã, có nhiều trong diễn đàn này nhé.

II. Phân biệt Hoa, thường

Với TCVN, người ta chả có cách nào để biểu diễn được cả các nguyên âm có dấu theo cách viết thường và hoa do sự hạn chế của bộ mã 256 ký tự ASCII, do đó họ phải viện đến bộ phông chữ theo đó, với phông này, bất kể ký tự đầu vào là gì thì nó cũng hiển thị là hoa. Chẳng hạn 2 ký tự a và A sẽ được hiển thị là A khi dùng phông chữ .VnTimeH. Do đó trong TCVN người ta chỉ có thể đoán được chuỗi là hoa hay thương nhờ việc sử dụng phông của chuỗi (có chữ H sau tên phông).
Với chuỗi bị mất phông (tức là không được áp đặt dùng phông chữ nào), thì cách duy nhất là đoán thông qua việc người dùng nhập vào. Đa phần các bác nhà ta, khi gõ chữ hoa hay nhấn caps lock hoặc Shift vì thế đôi khi đoạn chữ khi chưa áp dụng phông chữ hoa sẽ có dạng TêN TốI Là .... vậy áp dụng một thuật toán nhỏ để kiểm tra tình trạng ký tự trong chuỗi là có thể đoán được xác xuất sử dụng.
Tuy nhiên, cách này là rất củ chuối và độ chính xác không cao. Hic, đến nay chưa có ai co một giải pháp triệt để về chuyển đổi bảng mã....
 
Lần chỉnh sửa cuối:
Upvote 0
bạn xài tạm hàm vb6

Public Function KhongDau(s As String) As String
Dim i, oldCh$, newCh$
For i = 1 To Len(s)
oldCh = AscW(Mid(s, i, 1))
Select Case oldCh
Case 192, 193, 7840, 7842, 195, 258, 7856, 7854, 7862, 7858, 7860, 194, 7846, 7844, 7852, 7848, 7850: newCh = "A"
Case 224, 225, 7841, 7843, 227, 259, 7857, 7855, 7863, 7859, 7861, 226, 7847, 7845, 7853, 7849, 7851: newCh = "a"
Case 272: newCh = "D"
Case 273: newCh = "d"
Case 232, 233, 7865, 7867, 7869, 234, 7873, 7871, 7879, 7875, 7877: newCh = "e"
Case 200, 201, 7864, 7866, 7868, 202, 7872, 7870, 7878, 7874, 7876: newCh = "E"
Case 236, 237, 7883, 7881, 297: newCh = "i"
Case 204, 205, 7882, 7880, 296: newCh = "I"
Case 242, 243, 7885, 7887, 245, 417, 7901, 7899, 7907, 7903, 7905, 244, 7891, 7889, 7897, 7893, 7895: newCh = "o"
Case 210, 211, 7884, 7886, 213, 416, 7900, 7898, 7906, 7902, 7904, 212, 7890, 7888, 7896, 7892, 7894: newCh = "O"
Case 249, 250, 7909, 7911, 361, 432, 7915, 7913, 7921, 7917, 7919: newCh = "u"
Case 217, 218, 7908, 7910, 360, 431, 7914, 7912, 7920, 7916, 7918: newCh = "U"
Case 7923, 253, 7925, 7927, 7929: newCh = "y"
Case 7922, 221, 7924, 7926, 7928: newCh = "Y"
Case Else: newCh = ChrW(oldCh)
End Select
KhongDau = KhongDau & newCh
Next
End Function
 
Upvote 0
Web KT

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

Back
Top Bottom