• ベストアンサー

エクセルの文字列の指定(制限)設定について

エクセルのひとつのセルに10桁の番号を入力するよう設定したい場合です。 (ちなみにエクセル2007です。) 多くても少なくても間違いで、必ず10桁にならないとエラーとなる、 1~6と9~10桁が数字、7・8桁にはアルファベットからなる番号なので、 それ以外のものが入力された場合はエラーとなる、 そういう設定はセルの書式設定か関数を用いて可能でしょうか? (「123456AA78」というような番号になります。)

質問者が選んだベストアンサー

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

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))

akkin55
質問者

お礼

補足いただきありがとうございます。思っていた設定になりました。

その他の回答 (5)

  • Chiquilin
  • ベストアンサー率30% (94/305)
回答No.6

特に大文字小文字の指定はないみたいなので =AND(RIGHT(TEXT(REPLACE(A1,7,2,""),"0E+00+"),4)="+07+",COUNT(1/(ROW(INDIRECT(RIGHT(A1,4)))<100)))

akkin55
質問者

お礼

思ったような結果になる場合とならない場合があるようでした。 自分でも調べてみたいと思います。 回答ありがとうございました

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.5

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))

akkin55
質問者

お礼

補足もありがとうございました。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.4

データの入力規則にユーザー設定で以下の数式を入れてみてください。 =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))

akkin55
質問者

お礼

【入力した数式は正しくありません。】となってしまいました。 自分でも調べてみたいと思います。ありがとうございました。

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.2

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関数で括ってください。

akkin55
質問者

お礼

ありがとうございます。 設定のときにエラーが出るのですが、結果は思っていた設定になっているようです。 自分でも調べてみたいとおもいます。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

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))

akkin55
質問者

お礼

ありがとうございます。

関連するQ&A

  • エクセルで数値の一致を求め、書式設定を与える

    エクセルに詳しくないので教えていただけませんか? 画像の、BC51 セルに846と数字が入っています。 この数字は単体で、8、4、6と考えていただいて、 それとは別に AA45 セルから AA50セルに4桁の数字が入るのですが、 例えば、AA45セル これには先ほどの 8,4,6の数字のうち4と6の二つの数字が含まれていますよね。 続くAA46セルには、4,5,6,8 ですから、先ほどのBC51セルの数字 8,4,6が3つ含まれています。 この様にBC51セルの数字が二つ含まれている場合と、三つ含まれている場合で画像の様に色付けを毎回自動でやる様な関数ってどのようなものになるのでしょうか? もしくは、ABセルにその結果を求め、条件付書式で実現する事も出来るだろうなと思います。 ちなみにAセルの番号は、セル番号と考えていただいて構いません。 詳しい方、よろしくお願いいたします。

  • Excel 文字列にする関数

    エクセルが苦手なので教えてください! 選別番号で6桁の数字を使っているんですが、頭の数字が0から 始まるものがあり、セルに入力するとその選別番号だけ5桁に なってしまいます。 文字列にすればいいということだけはわかっているのですが、 すでに数字が入っている列に対して、関数を使って以下のような ことはできますか? (1)選別番号が5桁だったら、頭に0をつけて6桁にする、  かつ文字列にする (2)選別番号がすでに6桁だったら、そのまま文字列に変換 宜しくお願いします!

  • エクセル 関数 001 002と文字列で表示した

    お世話になります。 XP/ エクセル2003 使用です。 エクセルの関数で、 数字を3桁で数字を表示したく 下記のように関数を組みました。 (セルの書式は、文字列にしています) 001の場合  =IF(A1="","","001") とし、001が問題なく返ってきます。 次のセルに、002と連番を振っていきたいので  =IF(A2="","",B1+1) としましたが、   2  (002ではない) と返ってきます。(書式は文字列) 002、003、004・・・と続けていきたいのですが、 どのようにすればよろしいでしょうか? ご多用中恐れ入りますが、 よろしくお願いします。

  • エクセルで数字を文字列として確定する

    エクセルで顧客ID10桁の管理をしたいと思っています。 アルファベットなどではなく、数字だけを使用した10桁の顧客IDで 先頭は必ずゼロが4つ並びます。 入力をする際に数値としての要素は、全く必要ないので 純粋に文字列として扱いたいのですが セルの書式で「文字列」としても セルの左上に緑色の三角が表示され ダブルクリックをすると先頭のゼロが削除されてしまいます。 ものすごく作業に不便さを感じるのですが 普通に「abcdefg」と文字列を入力した場合と 全く同じ扱いとするようにはできないのでしょうか? エクセルに詳しい方教えてください。 ちなみに使用しているエクセルは2010です。

  • エクセル文字列の関数について

    エクセルで、例えば、¥15,214みたいな一つのセルに入っている数字があるとします。その数字を一つ一つのセルに A1 1 A2 5 A3 2 A4 1 A5 4 と5桁の分ける場合、どうすればよいのでしょう? MID、RIGHT関数、と試してみましたが、どうも桁がずれたり、分かりません。 ちなみに数字の桁は変更がありますので、5桁の場合もあるし、3桁の場合もあります。あと、¥マークも付けたいと思っています。教えてください。

  • Excelの「’」とセルの書式設定(文字列)の違い

    こんばんわ。 Excelの文字列表示について、教えてください。 数字を入力する際に、先頭に「'」を入力すると 文字列として入力することが出来ますが、 数字が入っているセルのセルの書式設定から 「文字列」に表示形式を変更することとの 違いはなんなんでしょうか? やり方は違うけれど、結果は同じということでしょうか? 「'」を入力すると、データが文字そのものに変わり、 表示形式を変更すると、見た目だけ(左揃えになるなど) 文字列のように見えるだけで、データは 数字のままということなんでしょうか?? また、文字列として入力された数字を Value関数で数値に変換してしまうのと セルの書式設定で「数値」に変更するというものも 同じように、違いが良く分かりません。。。 もう、頭の中が「??」だらけです。 違いを教えていただけたら・・・と思います。 どうぞよろしくお願いいたします<m(__)m>

  • ワード2007の差込印刷 文字列の書式設定

    ワード2007の差込印刷 文字列の書式設定 お世話になります。 ワード2007を使用してエクセル2007で作成した文字列(2桁までの全角数字です。)を、印刷された定型の用紙に差込印刷したいのですが、2桁の数字で位置合わせをすると通常左寄せの書式になっているので、1桁の数字になった場合不自然な形になります((番号:12番=>番号:1■番)と数字と番の間に1文字の空白ができる。)。 桁数が2桁までと決まっている場合右寄せに書式設定することは可能でしょうか。可能なら書式設定方法をご教示ください。

  • エクセルの条件付き書式

    条件付き書式について、指定したセルに入力(数字や文字を問わず)すると、セルの色が変わるよう設定したいのです。 ただ、数字の表示を3桁表示する必要があり、どうしても1~99までの番号には頭に「0」をつける必要があるため、条件付き書式を設定する前に、あらかじめ対象のセルには、セルの書式設定で表示形式を文字列に設定しています。 その設定をすることにより、条件付き書式が実行されません。 ですので、 (1)セルに001~099と表示されるよう入力するとセルの色が変わるやり方 と、 (2)数字ではなく文字を入力したときもセルの色が変わる設定方法 を、ご存知であれば教えてください。 エクセルの知識は「初心者~普通」程度です。 表計算などは出来ますが、関数やマクロはかじってる程度です。 簡単な回答をしていただけるとありがたいです。 よろしくお願いします。

  • EXCELで0001を表示するには?

    EXCELで4桁の数字を入力するのですが、"1","01","001","0001"などのデータがあります。 EXCELで入力すると全て1になってしまいます。 セルの書式設定をいじってみましたがうまくいきませんでした。 どうすればいいでしょうか?

  • Excelで例えば152を1と5と2に別のセルにわけるには

    行政に提出する書類をExcelで定められた書式で作成します。 6桁までの値を入力するのですが 数字を入力するところが一桁ずつセルに分かれています。 入力するときにとても面倒なのです。 17642とどこかに入力すれば1と7と6と4と2を別々のセルに表示させるような関数などありましたら教えてください。

専門家に質問してみよう