私スーパーユーザーで古い投稿を見つけたユーザーは、特殊文字を含む列 A のすべての行にフラグを設定しようとしていました。回答の 1 つに、条件付き書式のソリューションが含まれていました。
=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_\-,]"