Phân biệt tiếng Anh và tiếng Việt trong cell

Chào các bạn,

Có cách nào để phân biệt được ô nào là tiếng Việt, ô nào là Tiếng Anh không các bác.

Chẳng hạn như những ô nào full là tiếng Anh thì ô kế bên là TRUE
Còn nếu có chữ nào mà tiếng Việt thì ô kế bên là FALSE

Các bạn xem file đính kèm nhé

Cảm ơn các bạn

hướng đi có thể thế này
có dấu -> tiếng việt (đơn giản)
không dấu -> tiếng anh
phân tích ở chỗ không dấu
ví dụ từ anh, em: là tiếng việt mà không có dấu nên hiểu lầm qua tiếng anh
vậy làm thế nào để nó hiểu là tiếng việt đây
có 1 hướng củ chuối là đưa toàn bộ từ vựng tiếng anh trong từ điển vào để so sánh, nếu có bất kỳ từ nào trong từ điển thì nó là tiếng anh ( có thể không chính xác)
nếu bạn cung cấp được toàn bộ từ vựng trong từ điển đó thì ok, có thể viết hàm để nhận biết

Chào bạn,
Trong trường hợp mà từ tiếng việt không dấu thì xem như tiếng anh luôn đó bạn.
Ví dụ:
Chung ta la anh em > xem như ô này là tiếng anh
Chúng ta là anh em > ô này là tiếng việt

Chỉ cần một từ trong cell là tiếng Việt (có dấu) thì xem như cell đó tiếng Việt.

Bạn có giải pháp nào không. Giúp mình nhé. Thanks bạn

sửa lại cho phù hợp nhé bạn

Public Function isEnglish(ByVal Rn As Range) As String
    Dim txt As String, i As Long, Arr As Variant
    txt = Rn.Value2
    If IsNumeric(txt) Then isEnglish = "Day la so": Exit Function
    Arr = Split("7845-7847-7849-7851-7853-7855-7857-7859-7861-7863-7871-7873-7875-7877-7879-7889-7891-7893-7895-7897-7899-7901-7903-7905-7907-7913-7915-7917-7919-7921-224-225-7843-227-7841-226-259-273-233-232-7867-7869-7865-234-237-236-7881-297-7883-243-242-7887-245-7885-244-417-250-249-7911-361-7909-432-253-7923-7927-7929-7925", "-")
    Do
        If InStr(UCase$(txt), UCase$(ChrW$(Arr(i)))) > 0 Then
            isEnglish = "Day la tieng viet": Exit Function
        End If
        i = i + 1
    Loop Until i = UBound(Arr)
    isEnglish = "Day la tieng anh"
End Function

Theo định nghĩa này thì có thể giải quyết bằng cách thêm một hàm LOẠI DẤU TIẾNG VIỆT. Sau khi loại dấu xong, so sánh với chuỗi gốc, nếu = suy ra đó là tiếng Anh và ngược lại. Vậy thôi

Cách nào cũng có thể làm được. Mình cảm ơn 2 bạn nhé.

Như cách mà tôi đã nói là vầy:
1> Tạo 1 hàm loại dấu tiếng Việt (hàm này tôi viết đã lâu)

Function RemoveMarks(ByVal Text As String) As String
  Dim CharCode, i As Long
  Dim ResText As String, sTmp As String
  On Error Resume Next
  sTmp = Text
  CharCode = Array(7855, 7857, 7859, 7861, 7863, 7845, 7847, 7849, 7851, 7853, 225, _
                   224, 7843, 227, 7841, 259, 226, 273, 7871, 7873, 7875, 7877, 7879, _
                   233, 232, 7867, 7869, 7865, 234, 237, 236, 7881, 297, 7883, 7889, _
                   7891, 7893, 7895, 7897, 7899, 7901, 7903, 7905, 7907, 243, 242, _
                   7887, 245, 7885, 244, 417, 7913, 7915, 7917, 7919, 7921, 250, _
                   249, 7911, 361, 7909, 432, 253, 7923, 7927, 7929, 7925)
  ResText = "aaaaaaaaaaaaaaaaadeeeeeeeeeeeiiiiiooooooooooooooooouuuuuuuuuuuyyyyy"
  For i = 0 To UBound(CharCode)
    sTmp = Replace(sTmp, ChrW(CharCode(i)), Mid(ResText, i + 1, 1))
    sTmp = Replace(sTmp, UCase(ChrW(CharCode(i))), UCase(Mid(ResText, i + 1, 1)))
  Next
  RemoveMarks = sTmp
End Function

2> Áp dụng vào bảng tính:
Gõ công thức tại B2:

=RemoveMarks(A2)=A2

Kéo fill xuống. Xong!

www.giaiphapexcel.com/diendan/threads/ph%c3%a2n-bi%e1%bb%87t-ti%e1%ba%bfng-anh-v%c3%a0-ti%e1%ba%bfng-vi%e1%bb%87t-trong-cell.128454/#post-805343

Bạn thử với 1 trong 2 công thức sau rồi kiểm nghiệm
1. Ctrl + Shift + Enter
=AND(UNICODE(MID(A1;ROW(INDIRECT("1:"&LEN(A1)));1))<128)

2. =IF(ISERROR(SUMPRODUCT(SEARCH(MID(A1;ROW(INDIRECT("1:"&LEN(A1)));1);"0123456789abcdefghijklmnopqrstuvwxyz.;, ")));"FALSE";"TRUE")

Office cùi thì làm vầy 😀

=AND(ABS(32-(ABS(CODE(MID(SUBSTITUTE(A1,"?"," "),ROW(INDIRECT("1:"&LEN(A1))),1))-63)))<32)
Thiết kế Tổng đãi ngộ (Total Rewards) theo khung SHRM
Khóa học SprinGO phù hợp

Thiết kế Tổng đãi ngộ (Total Rewards) theo khung SHRM

Khóa học “Thiết kế Tổng phần thưởng (Total Reward) chuẩn khung SHRM” giúp bạn nắm vững toàn bộ hệ thống đãi ngộ theo chuẩn...

Xem khóa học
Chia sẻ: