Hướng dẫn chi tiết cách chuyển Tiếng Việt có dấu thành không dấu trên Excel

Nội dung được viết bởi Dương Mạnh Quân

Bạn đã bao giờ gặp tình huống phải chuyển Tiếng Việt có dấu thành không dấu trên Excel chưa? Làm thế nào để bỏ dấu tiếng việt trong Excel? Hãy cùng Gitiho đi tìm câu trả lời cho các câu hỏi này nhé. Bật mí là chúng ta có tới 2 phương pháp khác nhau để làm điều này. Hãy tìm hiểu ngay nào.

Dùng Unikey cho Excel để chuyển Tiếng Việt có dấu thành không dấu trong Excel

Unikey là bộ gõ tiếng việt khá phổ biến mà hầu như ai cũng có. Nếu chưa có sẵn ứng dụng này, bạn có thể tải bộ gõ Unikey từ địa chỉ: http://unikey.vn/vietnam/

Sau khi cài đặt xong, chúng ta sẽ thực hiện từng bước như sau:

Bước 1: Xem lại font chữ đang sử dụng

Mỗi font chữ sẽ gắn liền với 1 bộ gõ Unikey (bảng mã) khác nhau. Việc hiểu đúng về các loại font chữ thuộc bảng mã nào sẽ giúp bạn thực hiện thao tác chuyển đổi bỏ dấu chính xác hơn. Dưới đây là một số loại font chữ phổ biến thường sử dụng ở Việt Nam, có thể được sử dụng với Unikey cho Excel:

Các Font như Arial, Times New Roman, Calibri… thuộc bảng mã Unicode

Các Font như .VnTimes, .VnTimesH… (bắt đầu với chữ .Vn) thuộc bảng mã TCVN3

Các Font như VNI-Times… (bắt đầu với chữ VNI) thuộc bảng mã VNI Windows.

Vị trí kiểm tra font chữ nằm ở nhóm Font trên thẻ Home. Ví dụ:

kiểm tra font chữ sử dụng trong excel trên thẻ home

Đoạn nội dung trong vùng A2:A4 có font là Times New Roman, thuộc bảng gõ Unicode.

Bước 2: Sao chép nội dung cần loại bỏ dấu Tiếng Việt trong Excel

Chú ý: Trước khi thực hiện bước này, bạn cần đảm bảo nội dung trong mỗi ô phải được hiển thị đầy đủ (có thể nhìn đầy đủ bằng mắt thường). Nếu hiển thị không đầy đủ có thể khiến Unikey cho Excel chuyển đổi văn bản không chính xác như ý muốn.

Thao tác copy như sau:

Bôi đen vùng ô cần copy (chọn các ô cần copy)

Bấm phím tắt để copy: Ctrl + C (hoặc bấm chuột phải tài vùng đang chọn, bấm chọn mục Copy)

Bước 3: Sử dụng Unikey để thực hiện bỏ dấu Tiếng Việt trong Excel

Việc tiếp theo là bạn bấm chuột phải vào biểu tượng Unikey ở góc bên phải phía dưới màn hình máy tính, chọn mục Công cụ… (phím tắt là Ctrl + Shift + F6):

mở công cụ chuyển đổi của Unikey

Khi thực hiện thao tác này, bảng công cụ (Unikey Toolkit) sẽ mở ra.

Trong bảng chuyển đổi, bạn thực hiện các bước sau:

Hướng dẫn chi tiết cách chuyển Tiếng Việt có dấu thành không dấu trên Excel
  1. Kiểm tra đúng bảng mã Nguồn và mã Đich giống nhau, cùng là bảng mã của font chữ bạn đang sử dụng
  2. Bấm vào Lựa chọn là Loại bỏ dấu
  3. Bấm vào nút Chuyển mã, sẽ xuất hiện thông báo thành công là "Successfully converted":
Hướng dẫn chi tiết cách chuyển Tiếng Việt có dấu thành không dấu trên Excel
  1. Bấm Đóng để đóng bảng chuyển đổi lại (nếu muốn, không bắt buộc)

Bước 4: Dán kết quả vừa thu được ở bước 3 vào vị trí cần lấy kết quả

Tại vị trí muốn lấy kết quả (ví dụ ô B2), bạn bấm lệnh dán (Phím tắt Ctrl + V), chúng ta thu được kết quả như sau:

Hướng dẫn chi tiết cách chuyển Tiếng Việt có dấu thành không dấu trên Excel

Chú ý: Khi dán kết quả sẽ cần sử dụng tới 2 cột (dù khi copy nội dung để chuyển đổi chỉ là 1 cột). Do đó bạn cần đảm bảo luôn có 2 cột trống để hiển thị đầy đủ kết quả mà không làm mất nội dung ở cột khác.

Dùng hàm trong VBA trong Excel để chuyển Tiếng Việt có dấu thành không dấu

Bản thân Excel không cung cấp sẵn hàm để thực hiện việc bỏ dấu tiếng việt. Muốn có hàm để thực hiện việc này, bạn cần biết cách viết hàm VBA trong Excel. Sau đây chúng ta cùng tìm hiểu cách tạo hàm bỏ dấu tiếng việt trong Excel bằng VBA:

Xem thêm: Hướng dẫn từng bước cách viết Macro trong VBA Excel

Bước 1: Mở cửa sổ VBA (phím tắt Alt + F11), tạo mới 1 Module.

Bước 2: Bạn hãy sao chép đoạn code sau đây và dán vào cửa sổ viết code trong Module vừa tạo.

Function bo_dau_tieng_viet(Text As String) As String
  Dim AsciiDict As Object
  Set AsciiDict = CreateObject("scripting.dictionary")
  AsciiDict(192) = “A”
  AsciiDict(193) = “A”
  AsciiDict(194) = “A”
  AsciiDict(195) = “A”
  AsciiDict(196) = “A”
  AsciiDict(197) = “A”
  AsciiDict(199) = “C”
  AsciiDict(200) = “E”
  AsciiDict(201) = “E”
  AsciiDict(202) = “E”
  AsciiDict(203) = “E”
  AsciiDict(204) = “I”
  AsciiDict(205) = “I”
  AsciiDict(206) = “I”
  AsciiDict(207) = “I”
  AsciiDict(208) = “D”
  AsciiDict(209) = “N”
  AsciiDict(210) = “O”
  AsciiDict(211) = “O”
  AsciiDict(212) = “O”
  AsciiDict(213) = “O”
  AsciiDict(214) = “O”
  AsciiDict(217) = “U”
  AsciiDict(218) = “U”
  AsciiDict(219) = “U”
  AsciiDict(220) = “U”
  AsciiDict(221) = “Y”
  AsciiDict(224) = “a”
  AsciiDict(225) = “a”
  AsciiDict(226) = “a”
  AsciiDict(227) = “a”
  AsciiDict(228) = “a”
  AsciiDict(229) = “a”
  AsciiDict(231) = “c”
  AsciiDict(232) = “e”
  AsciiDict(233) = “e”
  AsciiDict(234) = “e”
  AsciiDict(235) = “e”
  AsciiDict(236) = “i”
  AsciiDict(237) = “i”
  AsciiDict(238) = “i”
  AsciiDict(239) = “i”
  AsciiDict(240) = “d”
  AsciiDict(241) = “n”
  AsciiDict(242) = “o”
  AsciiDict(243) = “o”
  AsciiDict(244) = “o”
  AsciiDict(245) = “o”
  AsciiDict(246) = “o”
  AsciiDict(249) = “u”
  AsciiDict(250) = “u”
  AsciiDict(251) = “u”
  AsciiDict(252) = “u”
  AsciiDict(253) = “y”
  AsciiDict(255) = “y”
  AsciiDict(352) = “S”
  AsciiDict(353) = “s”
  AsciiDict(376) = “Y”
  AsciiDict(381) = “Z”
  AsciiDict(382) = “z”
  AsciiDict(258) = “A”
  AsciiDict(259) = “a”
  AsciiDict(272) = “D”
  AsciiDict(273) = “d”
  AsciiDict(296) = “I”
  AsciiDict(297) = “i”
  AsciiDict(360) = "U"
  AsciiDict(361) = "u"
  AsciiDict(416) = "O"
  AsciiDict(417) = "o"
  AsciiDict(431) = "U"
  AsciiDict(432) = "u"
  AsciiDict(7840) = "A"
  AsciiDict(7841) = "a"
  AsciiDict(7842) = "A"
  AsciiDict(7843) = "a"
  AsciiDict(7844) = "A"
  AsciiDict(7845) = "a"
  AsciiDict(7846) = "A"
  AsciiDict(7847) = "a"
  AsciiDict(7848) = "A"
  AsciiDict(7849) = "a"
  AsciiDict(7850) = "A"
  AsciiDict(7851) = "a"
  AsciiDict(7852) = "A"
  AsciiDict(7853) = "a"
  AsciiDict(7854) = "A"
  AsciiDict(7855) = "a"
  AsciiDict(7856) = "A"
  AsciiDict(7857) = "a"
  AsciiDict(7858) = "A"
  AsciiDict(7859) = "a"
  AsciiDict(7860) = "A"
  AsciiDict(7861) = "a"
  AsciiDict(7862) = "A"
  AsciiDict(7863) = "a"
  AsciiDict(7864) = "E"
  AsciiDict(7865) = "e"
  AsciiDict(7866) = "E"
  AsciiDict(7867) = "e"
  AsciiDict(7868) = "E"
  AsciiDict(7869) = "e"
  AsciiDict(7870) = "E"
  AsciiDict(7871) = "e"
  AsciiDict(7872) = "E"
  AsciiDict(7873) = "e"

  AsciiDict(7874) = "E"

  AsciiDict(7875) = "e"

  AsciiDict(7876) = "E"

  AsciiDict(7877) = "e"

  AsciiDict(7878) = "E"

  AsciiDict(7879) = "e"

  AsciiDict(7880) = "I"

  AsciiDict(7881) = "i"

  AsciiDict(7882) = "I"

  AsciiDict(7883) = "i"

  AsciiDict(7884) = "O"

  AsciiDict(7885) = "o"

  AsciiDict(7886) = "O"

  AsciiDict(7887) = "o"

  AsciiDict(7888) = "O"

  AsciiDict(7889) = "o"

  AsciiDict(7890) = "O"

  AsciiDict(7891) = "o"

  AsciiDict(7892) = "O"

  AsciiDict(7893) = "o"

  AsciiDict(7894) = "O"

  AsciiDict(7895) = "o"

  AsciiDict(7896) = "O"

  AsciiDict(7897) = "o"

  AsciiDict(7898) = "O"

  AsciiDict(7899) = "o"

  AsciiDict(7900) = "O"

  AsciiDict(7901) = "o"

  AsciiDict(7902) = "O"

  AsciiDict(7903) = "o"

  AsciiDict(7904) = "O"

  AsciiDict(7905) = "o"

  AsciiDict(7906) = "O"

  AsciiDict(7907) = "o"

  AsciiDict(7908) = "U"

  AsciiDict(7909) = "u"

  AsciiDict(7910) = "U"

  AsciiDict(7911) = "u"

  AsciiDict(7912) = "U"

  AsciiDict(7913) = "u"

  AsciiDict(7914) = "U"

  AsciiDict(7915) = "u"

  AsciiDict(7916) = "U"

  AsciiDict(7917) = "u"

  AsciiDict(7918) = "U"

  AsciiDict(7919) = "u"

  AsciiDict(7920) = "U"

  AsciiDict(7921) = "u"

  AsciiDict(7922) = "Y"

  AsciiDict(7923) = "y"

  AsciiDict(7924) = "Y"

  AsciiDict(7925) = "y"

  AsciiDict(7926) = "Y"

  AsciiDict(7927) = "y"

  AsciiDict(7928) = "Y"

  AsciiDict(7929) = "y"

  AsciiDict(8363) = "d"

  Text = Trim(Text)

  If Text = "" Then Exit Function

  Dim Char As String, _

    NormalizedText As String, _

    UnicodeCharCode As Long, _

    i As Long

  'Remove accent marks (diacritics) from text

  For i = 1 To Len(Text)

    Char = Mid(Text, i, 1)

    UnicodeCharCode = AscW(Char)

    If (UnicodeCharCode < 0) Then

      'See http://support.microsoft.com/kb/272138

      UnicodeCharCode = 65536 + UnicodeCharCode

    End If

    If AsciiDict.Exists(UnicodeCharCode) Then

      NormalizedText = NormalizedText & AsciiDict.Item(UnicodeCharCode)

    Else

      NormalizedText = NormalizedText & Char

    End If

  Next

  bo_dau_tieng_viet = NormalizedText

End Function

Bước 3: Trở về màn hình làm việc chính. Nhờ có VBA trong Excel, bây giờ bạn đã có thể sử dụng hàm bo_dau_tieng_viet để bỏ dấu Tiếng Việt trong Excel được rồi.

Hướng dẫn chi tiết cách chuyển Tiếng Việt có dấu thành không dấu trên Excel

Đặc biệt, ngoài việc tạo ra các hàm theo ý muốn, VBA trong Excel còn giúp bạn tự động hóa các thao tác thường xuyên lặp đi lặp lại, hay biến file Excel thành một phần mềm giúp làm việc hiệu quả hơn. Bạn có thể tìm hiểu khóa học lập trình VBA trong Excel của Gitiho dành cho người mới bắt đầu:

Một số lưu ý:

  • Bạn cần lưu file dưới dạng Enable-macro Workbook (.xlsm) nếu không sẽ mất hết các code đã có (khi đóng file), bởi dạng file thông thường .xlsx không cho phép lưu trữ các đoạn code VBA trong Excel.
  • Code nằm ở file nào thì chỉ file đó sử dụng được mà thôi. Do đó khi mở file khác không có chứa đoạn code trên thì bạn sẽ không thấy hàm bo_dau_tieng_viet.

Xem thêm: Hướng dẫn cách dùng hàm SUMIF trong Excel có ví dụ cụ thể

Tổng kết

Vậy là chúng ta vừa tìm hiểu hai cách chuyển Tiếng Việt có dấu thành không dấu trong Excel: sử dụng Unikey cho Excel hoặc sử dụng VBA. 

Hi vọng các kiến thức trong bài sẽ được các bạn áp dụng thành công!

Khóa học phù hợp với bất kỳ ai đang muốn tìm hiểu lại Excel từ con số 0. Giáo án được Gitiho cùng giảng viên thiết kế phù hợp với công việc thực tế tại doanh nghiệp, bài tập thực hành xuyên suốt khóa kèm đáp án và hướng dẫn giải chi tiết. Tham khảo ngay bên dưới!

/5 - ( bình chọn)

/5 - ( bình chọn)

0 thảo luận

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ thông tin và truyền thông