如何确定单元格是否包含非西方文本?(Excel)

Ash*_*tos 3 excel

我有一列包含基于英语/基本拉丁字符的标题的标题,例如:John Smith和非西方/扩展的基于 Unicode 字符的标题,例如:??? 比约克

如何检查 B 列中的单元格是“普通”英文标题还是相反的标题?

任何指示/建议将不胜感激!

提前致谢。

lor*_*i_m 6

您可以在 VBA 代码模块中输入此 UDF。

Function IsLatin(Str As String) As Boolean
IsLatin = True
For i = 1 To Len(Str)
    IsLatin = IsLatin And Abs(AscW(Mid(Str, i, 1)) - 64) < 64
Next i
End Function
Run Code Online (Sandbox Code Playgroud)

然后,如果您的文本在 A 列中,请在单元格 B1 中输入=IsLatin(A1)并向下填充。

...或者在 Excel 2013 中,您可以使用这个通过 CTRL+SHIFT+ENTER 确认的数组公式:

=AND(UNICODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<128)

也是从B1往下填的。

注意CODE不能用于此,因为它将 unicode 转换为拉丁字母,例如 =CODE("?")=CODE("a")两者都返回 63

  • 您这边没有任何问题,右括号在错误的位置。请重试,希望你现在有更好的运气。 (2认同)