- ベストアンサー
エクセルの文字列の指定(制限)設定について
エクセルのひとつのセルに10桁の番号を入力するよう設定したい場合です。 (ちなみにエクセル2007です。) 多くても少なくても間違いで、必ず10桁にならないとエラーとなる、 1~6と9~10桁が数字、7・8桁にはアルファベットからなる番号なので、 それ以外のものが入力された場合はエラーとなる、 そういう設定はセルの書式設定か関数を用いて可能でしょうか? (「123456AA78」というような番号になります。)
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
No1の回答の補足と訂正です。 >7・8桁にはアルファベットからなる番号 私の提示した数式は、7,8桁目が文字列の場合の数式でした。 アルファベットの大文字(A~Z)に限定するなら、以下の数式になります。 =AND(LEN(A2)=10,ISNUMBER(LEFT(A2,6)*1),CODE(MID(A2,7,1))>64,CODE(MID(A2,7,1))<91,CODE(MID(A2,8,1))>64,CODE(MID(A2,8,1))<91,ISNUMBER(RIGHT(A2,2)*1))
その他の回答 (5)
- Chiquilin
- ベストアンサー率30% (94/306)
特に大文字小文字の指定はないみたいなので =AND(RIGHT(TEXT(REPLACE(A1,7,2,""),"0E+00+"),4)="+07+",COUNT(1/(ROW(INDIRECT(RIGHT(A1,4)))<100)))
お礼
思ったような結果になる場合とならない場合があるようでした。 自分でも調べてみたいと思います。 回答ありがとうございました
- eden3616
- ベストアンサー率65% (267/405)
No2です。 以下の場合でも許可されてしまっていたので訂正いたします。 1.3456AA9. 1.3456AA9. 1:3456AA9, 1,3456AA9, 123456AA90 (2が全角) 数式を下記と差し換えてください =AND(AND(LEFT(A1,6)=ASC(INT(LEFT(A1,6))),RIGHT(A1,2)=ASC(INT(RIGHT(A1,2)))),LEN(A1)=10,ISNUMBER(LEFT(A1,6)*1),AND(CODE(MID(A1,7,1))>=65,CODE(MID(A1,7,1))<=90,CODE(MID(A1,8,1))>=65,CODE(MID(A1,8,1))<=90),ISNUMBER(RIGHT(A1,2)*1))
お礼
補足もありがとうございました。
- aokii
- ベストアンサー率23% (5210/22062)
データの入力規則にユーザー設定で以下の数式を入れてみてください。 =AND((LEFT(A1,6)*100+RIGHT(A1,2)*1=LEFT(A1,6)&RIGHT(A1,2))*1),ISERR(MID(A1,7,1)*1),ISERR(MID(A1,8,1)*1))
お礼
【入力した数式は正しくありません。】となってしまいました。 自分でも調べてみたいと思います。ありがとうございました。
- eden3616
- ベストアンサー率65% (267/405)
A1セルを入力対象とすれば、A1セルを選択後に データ>データの入力規則と辿り、 入力値の種類:ユーザー設定 として数式に以下の関数式を貼り付けてください。 =AND(LEN(A1)=10,ISNUMBER(INT(LEFT(A1,6))),AND(CODE(MID(A1,7,1))>=65,CODE(MID(A1,7,1))<=90,CODE(MID(A1,8,1))>=65,CODE(MID(A1,8,1))<=90),ISNUMBER(INT(RIGHT(A1,2)))) 1~6及び9~10文字目が数値かつ、7及び8が大文字英数字(A~Z)であれば入力できますが、 それ以外であれば規制メッセージが表示されます。 ※A1セル以外にする場合は上記数式のA1を該当セルに変更してください ※小文字も許可する場合はCODE関数で大文字英字の範囲A~Z(65~90)に 小文字英字の範囲a~z(97~122)を作成し、OR関数で括ってください。
お礼
ありがとうございます。 設定のときにエラーが出るのですが、結果は思っていた設定になっているようです。 自分でも調べてみたいとおもいます。
- MackyNo1
- ベストアンサー率53% (1521/2850)
A2セル以下に入力するなら、A2セル以下を選択して、「データ」「データの入力規則」で入力値の種類を「ユーザー設定」にして数式欄に以下の式を入力してください。 =AND(LEN(A2)=10,ISNUMBER(LEFT(A2,6)*1),ISTEXT(MID(A2,7,1)),ISTEXT(MID(A2,8,1)),ISNUMBER(RIGHT(A2,2)*1))
お礼
ありがとうございます。
お礼
補足いただきありがとうございます。思っていた設定になりました。