- ベストアンサー
Excelの入力規則について質問です。
Excelの入力規則について質問です。 入力規則を日付にしたいのですか、リストの値欄にカンマ区切りで 1,2,3~ 31 と入力するしか方法は無いでしょうか? 1:31の様に、1~31みたいに入力は出来ないものでしょうか? 理想を言えば、月の末日まで表示出来ればうれしいのですが・・・。 ご存知の方、アドバイスよろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
日付について月の末日までが入力できるようにセル範囲を指定して入力規則を設定する場合ですがその場合でも年や月が判らずに月の末日を決めることはできません。例えば今月の1日から月末までの日にちが入力でき、他の月の日付が入力できないようにするのでしたら次のようにして入力規則を設定することができます。 例えばA1からA50セルを範囲として選び、「データ」タブの「データの入力規則」から「データの入力規則」を選択します。入力値の種類では「日付」を選び、次の日付からの窓には次の式を入力します。 =DAY(DATE(YEAR(TODAY()),MONTH(TODAY()),1)) 次の日付までの窓には次の式を入力してOKします。 =DAY(DATE(YEAR(TODAY()),MONTH(TODAY())+1,0)) これでA1セルからA50セルには今月なら1から31までの数値を入力することができます。 なお、月が変わっても2月を除いては30日までは入力できますね。31日については入力しているときの月によって入力できる時もあるでしょう。
その他の回答 (4)
- fmajin
- ベストアンサー率61% (75/122)
基本的には、1~31の日にちを指定するのが面倒ということなのでしょうから、No.1の回答にある通り、オートフィルなどを利用して、セルに1~31の数値を入力しておいて、そのセル範囲を[データの入力規則]ダイアログの[元の値]欄に指定すればよろしいのでは? その際、1~31の日にちは別シートに入力したほうが扱いやすいですが、その場合は、入力したセル範囲に「名前」を定義しておいて、[データの入力規則]ダイアログの[元の値]欄にその「名前」を指定してください。[元の値]欄をクリックして選択したあと、[F3]キーを押すと[名前の貼り付け]ダイアログが表示されるので、このダイアログから簡単に名前を挿入することができます。 で、該当月の月末日までリストに表示するという応用です。 たとえば図のように、「年」「月」「日」と列を用意して、「日」のリストを左の「年」「月」に応じて、変化させるものとします。 (1)ここでは「Sheet2」のA1~A31セルに「1」~「31」までの連番をオートフィルで入力しておくものとします。 (2)図のD3セルのように日にちの選択リストを設定するセルを選択しておいて、名前の定義を実行します。Excel97-2003なら[挿入]→[名前]→[定義]コマンド、2007/2010なら[数式]タブ→[名前の定義]ボタンです。 (3)表示された[名前の定義]ダイアログの[名前]欄に「日付リスト」など適当な名前を入力して、[参照範囲]欄に次のような数式を入力します。 =OFFSET(Sheet2!$A$1,0,0,DAY(DATE(!B3,!C3+1,0)),1) セル番地は、実際の表のセル番地に合わせて適宜変更してください。指定する際には、絶対参照記号の「$」の有無や「!B3」や「!C3」の先頭に「!」を付けることなど忘れないようにしてください。 「Sheet2!$A$1」が日にちの一覧を入力した先頭のセルを指定していて、「!B3」が各シートの「年」を入力しているB3セル、「!C3」が各シートの「月」を入力しているセルを示しています。名前定義する際に、D3セルを選択しているので、「B3」セルはD3セルから2つ左、というような位置関係で定義しています。 この「DAY(DATE(!B3,!C3+1,0))」の部分で、該当月の月末日までの日数を計算し、「Sheet2!$A$1」からその日数分のセルをOFFSET関数で指定するという仕組みです。 (4)D3~D100など、日にちを入力するセルを適当に選択して、[入力規則]コマンドを実行し、[データの入力規則]ダイアログで[リスト]を選び、[元の値]欄に(3)で定義した名前を「=日付リスト」のように指定します。 以上で、各行で「年」と「月」に応じた月末日までが、選択リストに表示されるようになるはずです。 お試しください。
- kagakusuki
- ベストアンサー率51% (2610/5101)
今仮に、A1セルに年の数が入力されていて、B1セルに月の数が入力されていて、その年と月に合わせて、入力可能な範囲を変える場合には、次の様にされると良いと思います。 メニューの[データ]をクリック ↓ 現れた選択肢の中の[入力規則]をクリック ↓ 現れた「データの入力規則」ウィンドウの[設定]タグをクリック ↓ 「入力値の種類」欄で「整数」を選択 ↓ 「データ」欄で「次の値の間」を選択 ↓ 「最小値」欄に「1」を入力 ↓ 「最大値」欄に次の数式を入力 =DAY(DATE(A1,B1+1,)) ↓ 「データの入力規則」ウィンドウの[OK]ボタンをクリック 尚、A1セルやB1セルに入力されているデータが、表示通りの数値データではなく、シリアル値である場合には、設定する数式を次の数式に変更なさって下さい。 =DAY(DATE(YEAR(A1),MONTH(B1)+1,)) 又、入力される日付が、入力月の日付に限定されていて、特に年や月の数値が表示されているセルは存在しない場合には、設定する数式を次の数式に変更なさって下さい。 =DAY(DATE(YEAR(NOW())),MONTH(NOW())+1,)) 又、入力される日付が、入力時の前月の日付に限定されていている場合には、設定する数式を次の数式に変更なさって下さい。 =DAY(DATE(YEAR(NOW())),MONTH(NOW()),)) 又、入力される日付が、入力時の次の月の日付に限定されていている場合には、設定する数式を次の数式に変更なさって下さい。 =DAY(DATE(YEAR(NOW())),MONTH(NOW())+2,))
- KURUMITO
- ベストアンサー率42% (1835/4283)
入力規則というのは例えばA1セルからA50セルの範囲を選んでから設定しますが、その中のセルには設定した範囲の日付以外のデータは入力できないようにするものですがそれでよいのですか?。 しかしながら、最後の理想を言えば月の末日まで表示できればうれしいとありますので、月の初めの日付から月の末日までの日付を表示したいということでしょうか? 後者の場合では単に月だけを指定したのではいけませんね。年も指定しないと特に2月などでは末日が変わりますので。 そこで月の初めの日にちを表示させるセルには、例えばA2セルには2010/10/1のように入力してください。その後に一つ下のセルのA3セルには次の式を入力して下方(A33)にオートフィルドラッグします。 =IF(MONTH(A$2+ROW(A1))<>MONTH(A$2),"",A$2+ROW(A1)) 40453のような数値が表示されますがかまうことなくA2セルからA33セルを範囲として選択します。その後に右クリックして「セルの書式設定」から「表示形式」のタブで「ユーザー定義」を選択し、種類の窓には d"日" と入力してOKします。 これでA2セルに入力した月での日付が1日から月末まで表示されることになります。
- fujiponxx
- ベストアンサー率32% (186/580)
どこか別の場所に書いておいて リストで、範囲指定すればいいのではないでしょうか?