Excel で、特殊文字を含みながらコンマを許可する列のすべての行にフラグを設定する方法を教えてください。

Excel で、特殊文字を含みながらコンマを許可する列のすべての行にフラグを設定する方法を教えてください。

スーパーユーザーで古い投稿を見つけたユーザーは、特殊文字を含む列 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_\-,]"

関連情報