前回に続いて入力規則についてとりあげます。
問題文を再掲します。表の一部を変更しました。
![](https://blogimg.goo.ne.jp/user_image/63/b9/bd8db91694405a2d003ddff21c81c5f2.jpg)
上の表で
1.セル範囲[B7:B14]のカタログ名を入力する際、セル範囲[E7:E17]のデータをドロップダウンリストから選択できるように入力規則を設定してください。
2.セル[B18]の「希望納期」を入力する際、、セル[C2]の「依頼日」から7日目以降の日付しか入力できないように入力規則を設定してください。
また、7日目より前の日付を入力した場合には、次のようなエラーメッセージが表示されるようにしてください。
スタイル:停止
タイトル:希望納期エラー
エラーメッセージ:希望納期は依頼日から7日目以降にしてください。
リスト入力について
①リスト入力させるセルを選択
②[データの入力規則]画面の[入力値の種類]をリストにして、
③[元の値]に半角コンマを介して
「東京,横浜,名古屋,大阪,京都」などと入力
④[OK]クリック
リストがある場合には
①入力規則を設定する範囲を選択
②[元の値]の範囲としてリスト範囲jの「$E$3:$E$12」などとして入力して[OK]クリック
これが問題1の解答です。
「LED AQUOS LC-22K9-W」などの面倒な入力を素早く、しかも間違いなくできるわけで、エクセルの素晴らしい機能の1つです。
[入力時メッセージ]について
入力規則をせっていしただけでは、不正なデータが入力されたときに、エラーメッセージは表示されますが、どのようなデータを入力すればわかりません。入力規則では、セルを選択したときにポップヒントを表示してデータに関する説明を表示できます。
[データの入力規則]ダイアログボックスの[入力時メッセージ]タブでセル選択時のメッセージを[タイトル]に「配布部数」、[メッセージ]欄に「100部単位の数字を入力してください」などと設定できる
[エラーメッセージ]について
不正なデータが入力されたときにエラーの原因を知らせるメッセージを表示させることができます。
[エラーメッセージ]タブの[スタイル]で[停止]、[注意]、[情報]を選択できます。
[停止]は条件に合わない場合入力できないようにするときに使います。これが既定で普通の使い方です。
[注意]はデータを入力しなおすか、そのまま続行する場合に使用します。
[情報]は注意を促しいたいLED AQUOS LC-22K9-WLED AQUOS LC-22K9-Wときに利用します。
既定では
![](https://blogimg.goo.ne.jp/user_image/7b/35/b46dbc54c925a94d43f9b39af2da6f2b.jpg)
このようなメッセージが表示されますが、オリジナルなメッセージを表示させることもできます
![](https://blogimg.goo.ne.jp/user_image/2e/ce/f0d1a0bd5b0d34a3ed25dcea77712828.jpg)
これが問題2の解答ですが、その前に次のような設定をします。
![](https://blogimg.goo.ne.jp/user_image/1f/5a/e65ee75a3bc07b4b0e9660901d8a3ad0.jpg)
この問題をさらにメーカー別に液晶テレビの型式を表示させる問題だとどうでしょう。
![](https://blogimg.goo.ne.jp/user_image/2d/10/a91d36669b688fa8cd9a05d7bc154ef1.jpg)
この問題になるといっそう実用的になると思いますが・・・
①まず、シャープの液晶テレビの一覧であるセル範囲[F7:F11]、[F17:F24]に「シャープ」、「東芝」などの名前を付けておきます。
②メーカーのところはメーカー別にリスト入力できるようにします。①でつけた名前と完全に一致させる必要があります。
③セル範囲[C7:C14]を選択し、[入力規則]ダイアログボックスの[設定]タブで[入力値の種類]を「リスト」にして[元の値]に「=INDIRECT(B7)」と入力し、[OK]をクリックします。
INDIRECT関数を使うところがポイントです。
この関数はセルに入力されている文字列を介して間接的にセル範囲を指定する関数で、この場合のセル[C7]はセル[B7]を参照していますが、[B7]セルに入力されているのは「シャープ」という文字列なので、同じ「シャープ」という名前が付けられたセル範囲[F7:F14]を指定することになるというわけです。
この関数は使えます。いろいろな場面で活躍します。このような有用な関数こそMOSに出題すべきと思いますが、範囲外です。
さらに、メーカーとカタログ名の間に列を挿入して、」「テレビ」以外にも「DVDレコーダー」、「デジカメ」、「冷蔵庫」、「洗濯機」などの分類を追加することもできます。たくさんの表を用意して、それぞれに異なる名前、例えば「シャープテレビ」などとし、INDIRECT関数に使用する名前も「シャープ」、「テれビ」などを「&」を使用して結合させればできるはずです。
そのほか、数式を使えば、
重複データのを入力できないよういするには
[元の値]に「COUNTIF(B:B,B3)=1」などと入力するとB3から下のB列のデータの重複を防ぐことができます。
WEEKDAY関数を使えば、平日しか入力できないようにしたり、土日しか入力できないようにすることができます。
もちろん手入力しても入力規則は機能しますが、コピー貼り付け、オートフィルなどで入力する場合は機能しませんので注意が必要です。
問題文を再掲します。表の一部を変更しました。
![](https://blogimg.goo.ne.jp/user_image/63/b9/bd8db91694405a2d003ddff21c81c5f2.jpg)
上の表で
1.セル範囲[B7:B14]のカタログ名を入力する際、セル範囲[E7:E17]のデータをドロップダウンリストから選択できるように入力規則を設定してください。
2.セル[B18]の「希望納期」を入力する際、、セル[C2]の「依頼日」から7日目以降の日付しか入力できないように入力規則を設定してください。
また、7日目より前の日付を入力した場合には、次のようなエラーメッセージが表示されるようにしてください。
スタイル:停止
タイトル:希望納期エラー
エラーメッセージ:希望納期は依頼日から7日目以降にしてください。
リスト入力について
①リスト入力させるセルを選択
②[データの入力規則]画面の[入力値の種類]をリストにして、
③[元の値]に半角コンマを介して
「東京,横浜,名古屋,大阪,京都」などと入力
④[OK]クリック
リストがある場合には
①入力規則を設定する範囲を選択
②[元の値]の範囲としてリスト範囲jの「$E$3:$E$12」などとして入力して[OK]クリック
これが問題1の解答です。
「LED AQUOS LC-22K9-W」などの面倒な入力を素早く、しかも間違いなくできるわけで、エクセルの素晴らしい機能の1つです。
[入力時メッセージ]について
入力規則をせっていしただけでは、不正なデータが入力されたときに、エラーメッセージは表示されますが、どのようなデータを入力すればわかりません。入力規則では、セルを選択したときにポップヒントを表示してデータに関する説明を表示できます。
[データの入力規則]ダイアログボックスの[入力時メッセージ]タブでセル選択時のメッセージを[タイトル]に「配布部数」、[メッセージ]欄に「100部単位の数字を入力してください」などと設定できる
[エラーメッセージ]について
不正なデータが入力されたときにエラーの原因を知らせるメッセージを表示させることができます。
[エラーメッセージ]タブの[スタイル]で[停止]、[注意]、[情報]を選択できます。
[停止]は条件に合わない場合入力できないようにするときに使います。これが既定で普通の使い方です。
[注意]はデータを入力しなおすか、そのまま続行する場合に使用します。
[情報]は注意を促しいたいLED AQUOS LC-22K9-WLED AQUOS LC-22K9-Wときに利用します。
既定では
![](https://blogimg.goo.ne.jp/user_image/7b/35/b46dbc54c925a94d43f9b39af2da6f2b.jpg)
このようなメッセージが表示されますが、オリジナルなメッセージを表示させることもできます
![](https://blogimg.goo.ne.jp/user_image/2e/ce/f0d1a0bd5b0d34a3ed25dcea77712828.jpg)
これが問題2の解答ですが、その前に次のような設定をします。
![](https://blogimg.goo.ne.jp/user_image/1f/5a/e65ee75a3bc07b4b0e9660901d8a3ad0.jpg)
この問題をさらにメーカー別に液晶テレビの型式を表示させる問題だとどうでしょう。
![](https://blogimg.goo.ne.jp/user_image/2d/10/a91d36669b688fa8cd9a05d7bc154ef1.jpg)
この問題になるといっそう実用的になると思いますが・・・
①まず、シャープの液晶テレビの一覧であるセル範囲[F7:F11]、[F17:F24]に「シャープ」、「東芝」などの名前を付けておきます。
②メーカーのところはメーカー別にリスト入力できるようにします。①でつけた名前と完全に一致させる必要があります。
③セル範囲[C7:C14]を選択し、[入力規則]ダイアログボックスの[設定]タブで[入力値の種類]を「リスト」にして[元の値]に「=INDIRECT(B7)」と入力し、[OK]をクリックします。
INDIRECT関数を使うところがポイントです。
この関数はセルに入力されている文字列を介して間接的にセル範囲を指定する関数で、この場合のセル[C7]はセル[B7]を参照していますが、[B7]セルに入力されているのは「シャープ」という文字列なので、同じ「シャープ」という名前が付けられたセル範囲[F7:F14]を指定することになるというわけです。
この関数は使えます。いろいろな場面で活躍します。このような有用な関数こそMOSに出題すべきと思いますが、範囲外です。
さらに、メーカーとカタログ名の間に列を挿入して、」「テレビ」以外にも「DVDレコーダー」、「デジカメ」、「冷蔵庫」、「洗濯機」などの分類を追加することもできます。たくさんの表を用意して、それぞれに異なる名前、例えば「シャープテレビ」などとし、INDIRECT関数に使用する名前も「シャープ」、「テれビ」などを「&」を使用して結合させればできるはずです。
そのほか、数式を使えば、
重複データのを入力できないよういするには
[元の値]に「COUNTIF(B:B,B3)=1」などと入力するとB3から下のB列のデータの重複を防ぐことができます。
WEEKDAY関数を使えば、平日しか入力できないようにしたり、土日しか入力できないようにすることができます。
もちろん手入力しても入力規則は機能しますが、コピー貼り付け、オートフィルなどで入力する場合は機能しませんので注意が必要です。
※コメント投稿者のブログIDはブログ作成者のみに通知されます