如何在 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_\-,]"

相關內容