如何在 Excel 中标记包含特殊字符但允许使用逗号的列中的所有行?

如何在 Excel 中标记包含特殊字符但允许使用逗号的列中的所有行?

在超级用户上找到一篇旧帖子用户试图标记 A 列中包含特殊字符的所有行。其中一个答案包括条件格式解决方案:

=SUMPRODUCT((CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<48)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<>45))+SUMPRODUCT((CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))>57)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<65))+SUMPRODUCT((CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))>90)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<97)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<>95))+SUMPRODUCT((CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))>122)*1)

此公式检查每个文件名的每个字符,并确定其 ASCII 码是否超出允许的字符值。允许的字符包括(AZ、az、0-9、下划线和破折号)。

我的需要是几乎完全一样,只是我还需要允许逗号,但我没有足够的天赋来弄清楚如何修改代码以允许逗号。有谁能帮忙吗?

答案1

编辑:我回去读了原始评论。这个公式应该有效。

=SUMPRODUCT((CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<48)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<>45)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<>44))+SUMPRODUCT((CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))>57)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<65))+SUMPRODUCT((CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))>90)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<97)*(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<>95))+SUMPRODUCT((CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))>122)*1)

我在上面的公式中添加了这一部分:

(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))<>44)

44是 的 ASCII 等价物comma。因此,此位将处理comma


我看到您更改了问题。您能提供一些示例值吗A1

我不太明白你提供的公式 -ROW(INDIRECT("1:"&LEN(A1)))永远是 1;所以我不知道调用它有什么意义。


只需从另一个链接更改此行:

RegEx.Pattern = "[^A-Za-z0-9_-]"

对此:

RegEx.Pattern = "[^A-Za-z0-9_\-,]"

相关内容