[[20100916000406]] 『入力規則で半角英数字+一部記号のみ許可したい』(はやしだ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『入力規則で半角英数字+一部記号のみ許可したい』(はやしだ)

こんばんは。
入力規則で、半角英数字と-./@_の記号だけ許可したいです。(他の記号はダメ)

以前半角英字のみ(数字も記号もダメ)で、下記のようにしたので、今回もアルファベットの後ろ部分に数字と許可したい記号を付け足せばいいのかと思っていたのですが、何故か数字だけ上手くいきません。
半角英字と記号はうまくいったのに・・・!

今回は保存の関係で別のセルに式を入れて参照というのも難しいですし・・・。
どうかアドバイスをお願いします。

=AND(COUNT(FIND(MID(UPPER(A1)&REPT(0,68),ROW($1:$68),1),"ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-./@_"))=LEN(A1),LENB(A1)<69)

ちなみにエクセルのバージョンはExcel 2007です。


 後ろに0を加えているので、このようにするのは、どうでしょう? (PENSIONER)

 =AND(COUNT(FIND(MID(UPPER(A1)&REPT(0,68),RO($1:$68),1),
 "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-./@_"))=68,LENB(A1)<69)

 ?*^が検索対象にないのであればFIND関数のかわりにSEARCH関数を使うことでUPPER関数を外せますね。
 (独覚)

(はやしだ)

すみません!説明と式を間違えていました!

上記の式はまず入力規則の設定で引っ掛かってしまうので、数字を抜かして設定していました……。

=AND(COUNT(FIND(MID(UPPER(A1)&REPT(0,68),ROW($1:$68),1),"ABCDEFGHIJKLMNOPQRSTUVWXYZ-./@_"))=LEN(A1),LENB(A1)<69)

お手数ですが、上記を踏まえて再度アドバイスをお願いいたします。

PENSIONERさん

このセルには必ずしも68字記入するわけではないので、LENを使用していたのですが…。
なるほど、参考になります。

独覚さん

大文字と小文字を分けたいので、FINDとUPPERを使用していたのですが、SEARCHでもわけてくれるのでしょうか?


 式内でUPPAER関数で大文字に変換してからFIND関数で検索しているため大文字小文字の区別をしないのだと判断したので
 SEARCH関数の使用を勧めました。

 >大文字と小文字を分けたいので
 と、大文字・小文字を区別するのであればFIND関数を使ったうえでUPPER関数を外さないとならないかと。
 (独覚)

(はやしだ)

解決できました!

PENSIONERさんも独覚さんも、ご回答ありがとうございます。

しかし、それによって別の問題が起きたので、新しく別で質問をいたしました。
そちらの方のご回答も何卒よろしくお願いします。


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.