• ベストアンサー

エクセルの入力規則について

エクセルの入力規則について教えてください。 セルA1に7桁のコードを入力するとします。 7桁のコードは前の6桁を7で割った余りをMOD関数で 出し最後の1桁にしています。 コードが7桁であり、かつ、前の6桁を7で割った余りが末尾1桁の数値と等しくなければ、 エラーメッセージを出して入力を出来ないようにしたいのです。 入力規則のユーザー設定、数式を入れてメッセージを出すことは 可能でしょうか。 どうぞご教授お願いいたします。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

A1セルを選択、あるいはA列を選択したのちに入力規則のユーザー設定で数式として次の式を入力します。 =AND(LEN(A1)=7,MOD(LEFT(A1,6),7)*1=RIGHT(A1,1)*1)

chobizo
質問者

お礼

ご回答ありがとうございます。 この数式で出来ました。 「*1」を入れることで数値となりうまく出来たのだと思います。 本当にありがとうございました。

その他の回答 (2)

回答No.2

入力値の種類」を「ユーザー設定」にし「数式」に =AND(A2>9,A2<10000000,MOD(INT(A2/10),7)=MOD(A2,10)) で、どうでしょう?

chobizo
質問者

お礼

ご回答ありがとうございます。 数式の組み立て方についてまだまだ わかっていない点が多々あるのですが、 どうしてこの式になるのかがわかりません・・・。 初心者過ぎてすみません・・・。

  • Trick--o--
  • ベストアンサー率20% (413/2034)
回答No.1

A1がアクティブとして =mod(int(left(A1,6)),7)=int(right(A1,1)) とすれば左6桁のMod7と右1桁が等しくないと入力できなくなる 桁数が足りないなどの考慮は一切していない。 そのほか、入力規則の実例は参考URIで。

参考URL:
http://www2.odn.ne.jp/excel/waza/validation.html
chobizo
質問者

お礼

ご回答ありがとうございます。 計算式の考え方がよくわかりました。 INT関数を使うというのも全く考えが及びませんでした。 ありがとうございました。