如何更新Excel公式以检测新增隐形字符及指定特殊字符
Excel特殊字符检测公式更新方案
现有检测范围
当前Excel文件可检测以下特殊字符:
- 长破折号(–)
- 弯撇号(’)
- ï(示例:naïve)
- 非断字破折号(‑)
原有检测公式(Q-T列第6行单元格)
对应上述字符的检测公式如下:
长破折号(–)
=IFERROR(TRANSPOSE(TEXTSPLIT(TEXTJOIN(", ", TRUE, IF(ISNUMBER(FIND("–", A6:I1000)), CHAR(64+COLUMN(A6:I1000)) & ROW(A6:I1000), "")), ", ", , TRUE)), "No matches found")
弯撇号(’)
=IFERROR(TRANSPOSE(TEXTSPLIT(TEXTJOIN(", ", TRUE, IF(ISNUMBER(FIND("’", A6:I1000)), CHAR(64+COLUMN(A6:I1000)) & ROW(A6:I1000), "")), ", ", , TRUE)), "No matches found")
ï(示例:naïve)
=IFERROR(TRANSPOSE(TEXTSPLIT(TEXTJOIN(", ", TRUE, IF(ISNUMBER(FIND("ï", A6:I1000)), CHAR(64+COLUMN(A6:I1000)) & ROW(A6:I1000), "")), ", ", , TRUE)), "No matches found")
非断字破折号(‑)
=IFERROR(TRANSPOSE(TEXTSPLIT(TEXTJOIN(", ", TRUE, IF(ISNUMBER(FIND("‑", A6:I1000)), CHAR(64+COLUMN(A6:I1000)) & ROW(A6:I1000), "")), ", ", , TRUE)), "No matches found")
数据重置VBA代码
用于清空指定区域数据的VBA代码:
Sub ClearData() 'ClearData Range("A6:L1000").Select Selection.ClearContents Range("A1").Select End Sub
需求更新:新增隐形字符检测
需更新上述公式,使其能够识别隐形字符(如U+A0这类粘贴操作中易被移除的字符)。测试文本如下:
See what's hidden in your string…or be behind ‑-–’
可通过在线字符检测工具确认目标隐形字符的具体编码,再修改公式中的FIND函数参数,替换为对应隐形字符的编码(如用CHAR(160)表示U+A0),即可实现对含此类隐形字符单元格的识别。
内容的提问来源于stack exchange,提问作者Shiela




