2014年10月22日水曜日

エクセルの入力規則の数式を使って複雑な制限を実現する例

エクセルの入力規則の数式を使って複雑な制限を実現する例です:
例えばA1セルで以下の入力を許可する:

①整数数字の入力(例)123
②整数数字-整数数字(例)123-456

以下やり方:
1.まず、「1-1」を入力すると「1月1日」とエクセルが余計のことをするので、まずセルを「文字列」にしましょう

2.数字を許す→データ→入力規則→ユーザー設定→数式:
  条件①整数数字の入力について、本来なら数式に「=ISNUMBER(A1)」で話は済んだが、こちら「文字列」にしたせいで、ISNUMBERは常にFALSE
  解決方法は「=NOT(ISERROR(INT(A1)))」を使います。

3.また、条件②整数数字-整数数字を追加すると、数式が一気に複雑になります
  「=OR(NOT(ISERROR(INT(A1))),AND(NOT(ISERROR(FIND("-",A1))),NOT(ISERROR(INT(MID(A1,1,FIND("-",A1)-1)))),NOT(ISERROR(INT(MID(A1,FIND("-",A1)+1,LEN(A1)))))))」

注意!!数式が複雑すぎで、長すぎで入れなくなってしまう可能性があります!! ↓↓↓
「A1」を自己参照の「INDIRECT(ADDRESS(ROW(),COLUMN()))」に変換しようとしたら、数式を長すぎで入れなくなってしまった…
  

0 件のコメント:

コメントを投稿