• ベストアンサー

Excel:関数と入力規則

セル[A2]に入力規則>設定タブ>入力値の種類で「ユーザー設定」、数式に「=LENB(A2)<=16」 と設定しています。 この設定によりこのセルには全角8文字もしくは半角16文字を超えての入力を禁止させています。 その隣のセル[B2]にはセル[A2]の入力値がそのまま自動表示されるように「=A2」とし、かつ入力規則>設定タブ>入力値の種類で「ユーザー設定」、数式に「=LENB(A2)<=12」 と設定しています。 この設定によりこのセルには全角6文字もしくは半角12文字を超えての入力を禁止させています。 例えば、セル[A2]への入力文字が全角6文字以内であれば問題ないのですが、8文字になった場合、セル[B2]の入力規則が無視され、8文字で表示されてしまうのです。 これは仕方がないのでしょうか? ちなみにセル[B2]の関数を無視して直接セル[B2]に入力するのは入力規則が正常に反応し、全角7文字以上は入力できません。 何か良い方法があれば御教示願います。

  • Youyou
  • お礼率64% (2254/3473)

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

  • ベストアンサー
  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.2

B2に手入力するわけではないので、B2の入力規則は不要。 で、B2に次の式を入れる   =LEFTB(A2,12) 要するにA2の文字列から12文字(半角)以内を取出す。 外しましたらご容赦!  

Youyou
質問者

お礼

ありがとうございます。 全然外してないです。

その他の回答 (1)

  • banshibo
  • ベストアンサー率53% (7/13)
回答No.1

あくまで入力規則は、そのセルに値が入力された時にチェックするものです。 つまり値を参照で表示するようにしているだけでは、入力規則には触れないのです。(入力されているのはA2ですから。) これはExcelの仕様です。 どうしてもというのであれば、B2の入力規則は外してしまって、 その上で、B2に↓のように入力してはどうでしょうか? =IF(A2="","",IF(LENB(A2)<=12,A2,"A列の文字数が12byteを超えています。修正してください。")) これは次のように挙動します。 (1) A2に何も入力されていない場合、B2には何も表示されません。 (2) A2に何か入力されていて、12byte以下の場合、B2にはA2が表示されます。 (3) A2に何か入力されていて、12byteより大きい場合、B2には「A列の文字数が12byteを超えています。修正してください。」と表示されます。 これでどうでしょうか?

Youyou
質問者

お礼

ありがとうございます。 勉強になりました。

関連するQ&A

  • 複数条件の入力規則について

    セル内を以下の条件で入力規則を設定しようとしました。 ①全角文字で18文字、半角文字で36文字以上の入力を制限する ②セル内改行を禁止する ①と②は各々個別に制限動作するようにする データの入力規則で、入力値の種類を「ユーザー設定」にし、数式を 「=OR(LENB(A1)<=36,COUNTIF(A1,"*"&CHAR(10)&"*")=0)」と設定したところ、 ①全角文字で18文字、半角文字で36文字以上の文字列が入力出来てしまう ②全角文字で18文字、半角文字で36文字以内でセル内改行が出来てしまう ③全角文字で18文字、半角文字で36文字以上でセル内改行が禁止される というように、私の意図した通りの制限動作になりませんでした。 重いあぐねて、数式を 「=AND(LENB(A1)<=36,COUNTIF(A1,"*"&CHAR(10)&"*")=0)」と設定したら、 正常に動作しました。 これでは、私の知識では、「OR」と「AND」の使い方が真逆になっているとしか思えません。 この浅薄な私の勘違いを明瞭に説明いただける方がいらっしゃれば、ご教授よろしくお願いたします。

  • Excel:セルへの入力規則

    Excel2003です。 [データ]→[入力規則]→[設定]で入力値の種類を「ユーザー設定」にし、数式に「=LENB(E3)<=16」 さらに [データ]→[入力規則]→[日本語入力]でIME 日本語入力を半角カタカナに設定し、半角カタカナ という設定でE3セルを半角カタカナで16文字以内に制約させています。 しかし、この設定ですと確かに文字種は半角カタカナになりますが、文字種を変更することも出来てしまいます。 これを半角カタカナ以外は入力禁止にすることは出来ないのでしょうか?同時に半角カタカナ16文字以内、という制約付です。 よろしくお願いします。

  • EXCEL入力規則で文字数制限

    EXCEL2002です。 A列に入力規則をかけ、全角20文字、半角40文字以内にしたいと思っています。 「エクセル技道場→入力規則→全角5文字、半角10文字」を参考にさせていただき、以下の式で入力規則のユーザー設定を行いました。 =AND(ISTEXT(A1),LENB(A1)<=40) この場合、最初の文字が半角の場合に制限数以下でもエラーメッセージが出てしまいます。 最初の文字が全角でも半角でも制限数以下であればエラーメッセージが出ないようにする方法はありますか? よろしくお願いします。 http://www2.odn.ne.jp/excel/waza/validation.html#SEC10

  • エクセル 入力規則設定方法

    全角のみで25文字以内の設定を行いたいと思っておりますが、 A1のセルに下記の入力規則設定を行った場合 [ユーザー設定]⇒.[数式] =AND(A1=JIS(A1),LEN(A1)<=25) 先頭からいくつか数字(全角でも)のみが並ぶとエラーになってしまいます。 また、 [文字列長さ]⇒.[最大値] 25以下 この場合も、数字のみですといくらでも入力が可能であり、しかも16番目の数字が0(ゼロ)に 変化してしまいました。 どこか、何かの設定方法が悪いと思うのですが、 本来設定したい内容としては、 ●そのA1セルに、半角英数字を入力しても全角に変換し、文字数としてカウントする。 ●上記のように、数字のみが10個並んだとしても許可して全角文字に変化させる。 これを設定したいのです。 どうか教授いただけないでしょうか。 宜しくお願いします。

  • Excelの入力規則 バイト数で指定2

    http://oshiete1.goo.ne.jp/qa3332783.html で質問した者です。 よく分からないまま質問を締め切ってしまったので、もう一度質問させてください。 > 「ユーザー設定」 > 数式に > =LENB(B4)<=10 とすることでB4セルをバイト数で制限かけることが出来る事はわかったのですが、列全体で指定するとき、列を選んで入力規則からユーザ設定するところで、=LENB(*) <=10の「*」のところは何と書けばよいでしょうか? 度々すみませんが宜しくお願いします。

  • エクセルでセルに入力制限をしたいのですが。

    例えばA1のセルには全角で10文字まで、B1のセルには半角カナで10文字までという入力制限ができるでしょうか?入力規則で設定したところ、文字数制限はできるのですが、半角,全角の区別をしてくれません。 よろしくお願いします。

  • Excel2003 強烈な入力規則

    お世話になります。 表題の件でご相談が御座います。 「通常の入力規則」ではなく、「強烈な入力規則」の方法を模索しています。 通常の入力規則では、例え「半角英数」という設定をしていても「全角英数」をコピペで貼り付けたら 全角のまま貼り付けられてしまいますよね? これを「半角でないと貼り付けられない」では手間がかかり困るので、「半角にして張り付けてしまう」ぐらいの 強力な入力規則の方法を探しております。 そんな方法は御座いませんでしょうか? ご存知の方がいらっしゃいましたら ご教示ください。 宜しくお願い致します。

  • Excel:PHONETIC関数でアルファベット・数字を半角にしたい

    Excel2003です。 セル[A2]に文字入力し、セル[G2]に下記数式を設定し、フリガナを半角カタカナで表示させています。 =SUBSTITUTE(SUBSTITUTE(PHONETIC(A2),"(株)",""),"(有),"") ※式中の(株)(有)は本来は記号(機種依存文字)です。 このとき、セル[A2]に全角ひらがな、カタカナ、漢字を入力した場合はセル[G2]には半角カタカナで表示するのですが、全角数字やアルファベットを入力した場合に、セル[G2]にはそのまま全角文字で表示されてしまいます。 これらを半角文字で表示させることは出来ないでしょうか? もちろんひらがな、カタカナ、漢字は従来どおり半角カタカナで表示させつつ、です。 よろしくお願いいたします。

  • エクセルの入力規則で半角英数字と一部記号のみ許可

    お世話になります。 OS環境はWin8.1 64Bitにてエクセル2013を使用しております。 質問させて頂きたいのは、入力規則の条件設定で ユーザー設定とした際の数式についての話になります。 B2セルが入力を行うセルなのですが、入力を許可したい のは、半角英数字(大文字及び小文字)及びハイフンと アンダースコアの2つの記号のみとし、それ以外の文字 や記号が入力された場合、エラーメッセージを出力する という設定にしたいと思っています。 また、文字数はランダムで5文字の時もあれば50文字の時も あります。その文字の中に半角英数字及びハイフンと アンダースコア以外の文字が含まれている場合にエラー メッセージを出したいと言うことです。 そこで、下記のURLに記載されている内容を参考に数式を 下記のように設定してみました。 [参考にしたURL] http://www.excel.studio-kazu.jp/kw/20100916000406.html [実際に設定した数式] =AND(COUNT(FIND(MID(UPPER(B2)&REPT(0,68),ROW($1:$68),1),"ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-_"))=68,LENB(B2)<69) 結果、思い通りに半角英数字及びハイフンとアンダースコア 以外の文字や記号を入力した際、エラーメッセージが出力 されました。 所が、一旦エクセルファイルを保存して終了した後に もう一度そのファイルを開き、先ほどの入力規則を設定した B2セルへ文字や記号を入力してみた所、半角英数字及び ハイフンとアンダースコアも含めて何を入力してもエラー メッセージが出力されるようになってしまいました。 何度このファイルを開きなおしても同様でして、また、 別のPCで開いても同様でした。 そこで、もう一度B2セルの入力規則設定画面を開き、 数式部分を一旦削除後すぐに同じ数式を入力してOKとすると、 今度はエラーメッセージが出なくなりました。 が、ファイルを保存して終了後に再度開き直すと、やっぱり 何の文字を入力してもエラーメッセージが出力される 現象が再現してしまいます。 この現象は、数式自体が間違えている事によるものなの でしょうか? それとも他の原因によるものなのでしょうか? 何卒お力添えの程宜しくお願い致します。

  • Excel:入力規則>文字列(長さ指定)

    この設定項目の中で最小値「0」最大値「8」にすると9文字以上の文字列は入力できなくなりますが、この文字は全角・半角の区別が出来ないようです。 ここで全角文字の場合は「8文字」までで半角文字の場合は「16文字」まで、といったような設定は出来ないのでしょうか? 入力規則以外の方法でも構いません。 よろしくお願い致します。

専門家に質問してみよう