• 締切済み

Excelの入力規則について

Excelの入力規則(条件設定:入力値の種類=リスト)を使って以下のようなことをしています。 セルD2に都道府県名(近畿地方のみ) セルE2に市町村名 ここでD2で選択した都道府県名にあわせてE2に表示させるプルダウンメニューを切り替えることは出来るのでしょうか? 例えば、D2で「大阪府」を選んだ場合E2のプルダウンメニューに「大阪市」「池田市」「吹田市」…、D2で「兵庫県」を選ぶとE2に「神戸市」「西宮市」「芦屋市」…、といった具合です。 ちなみにマクロ、VBA等の知識はありませんが、即席可能であれば、そのあたりも含めて具体的な設定手順をご教示いただけませんか? よろしくお願い致します。

みんなの回答

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.6

こんにちは。maruru01です。 名前定義の別の方法です。 別のシート(Sheet2とします。)に以下のように表を作成します。    A   B    C   D E F G 1 大阪府 兵庫県 京都府 ・・・・・ 2 大阪市 神戸市 京都市 ・・・・・ 3 堺市 ・・・・・ 4 ・・・・・ 5 ・・・・・ 要はNo.5の方の2行目を削除したのと同じです。 (ただし、三重県も近畿とするなら、G列までになりますが。) まず、1つ目の名前定義を、 [名前]:適当な名前(仮に「府県名」とする) [参照範囲]:「=Sheet2!$A$1:$G$1」 とします。 次に、元のシートのE2(市町村名を表示するセル)を選択して、2つ目の名前定義をします。 [名前]:適当な名前(仮に「市町村名」とする) [参照範囲]:「=OFFSET(Sheet2!$A$2,,MATCH(!D2,府県名,0)-1,COUNTA(INDEX(Sheet2!$A:$G,,MATCH(!D2,府県名,0))-1),)」 これで、D2(府県名)の入力規則を、 「リスト」「=府県名」 E2(市町村名)の入力規則を、 「リスト」「=市町村名」 とすれば出来ます。 昨今では、市町村の合併がさかんですが、この方法では、Sheet2の表で、2行目以降の市町村名を増減させても対応出来ます。 (2行目以降に空白を開けずに市町村名一覧を入力・削除して下さい。)

Youyou
質問者

お礼

ありがとうございます。 本当にExcelの本を開くよりも分かりやすい説明で、助かります。

全文を見る
すると、全ての回答が全文表示されます。
  • telescope
  • ベストアンサー率54% (1069/1958)
回答No.5

まず、リストを作ります。別のシートでも構いません。 D2セルとE2セルに表示させるのなら、Sheet2にリストを作っておきます。   A   B    C   D   E    F 1 大阪府 兵庫県 京都府 滋賀県 奈良県 和歌山県 2 3 大阪市 神戸市 京都市 大津市 奈良県 和歌山市 4 池田市 西宮市 宇治市 彦根市 生駒市 田辺市 5 吹田市 芦屋市 舞鶴市 草津市  6 堺市   のようにリストを作成します。 2行目は空白にします。 入力した範囲を選択して、(上の例なら、A1からF6まで) 「挿入」-「名前」-「作成」で[上端]にチェックを入れて OK を押します。 府県名の範囲(上の例なら、A1からF1)を選択して 「挿入」-「名前」-「定義」で名前を付けます。 リストを設定したいセルを選択します。 D2を選択して 「データ」-「入力規則」の[入力値の種類」で[リスト]を選択 [元の値]に = に続けて「定義」でつけた名前を入力します。 名前に「府県名」とつけたとしたら、 =府県名 E2を選択 「データ」-「入力規則」で[入力値の種類」で[リスト]を選択 [元の値]に =INDIRECT(D2) と入力します。 エラー表示がでますが、かまわず「はい」を押します。

Youyou
質問者

お礼

ありがとうございます。 これは#1さんの方法と同じですね。

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

#3です。過去質問の説明が判り難ければ、下記 マクロの記録的なVBAを実行してください。 ツール-マクロ-VBE-挿入-標準モジュールの画面に 下記をコピーし貼りつけします。 府県市区町村テーブルは、入力セルと同じシートに作ること。別シートに作ると旨く行かないようです。 (例)県・市名省略手抜き。実際は入れてください。 E1:J4 大阪 池田 豊中 茨木 攝津 兵庫 神戸 西宮 尼崎 姫路 三木 京都 京都 亀岡 綾部 城陽 奈良 天理 奈良 橿原 (VBA) Sub Macro1() Range("A1:A9").Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=$E$1:$E$5" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .IMEMode = xlIMEModeNoControl .ShowInput = True .ShowError = True End With Range("b1:b9").Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=offset($e$1,match(a1,$e$1:$e$5,0)-1,1,1,5)" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .IMEMode = xlIMEModeNoControl .ShowInput = True .ShowError = True End With End Sub (修正点。本番に合わせて上記VBAの下記部分を修正すること) Range("A1:A9").Select->府県を入力する列とセル範囲 で置き変える。 Formula1:="=$E$1:$E$5"->府県テーブルのある範囲(列) Range("b1:b9").Select->市町村をセットする入力範囲(列)。 Formula1:="=offset($e$1,match(a1,$e$1:$e$5,0)-1,1,1,5)" ->$e$1は府県テーブルの1番上行セル。 a1は府県名入力列の1番上行セル。絶対番地にしない。 $e$1:$e$5は府県テーブルの列のセル範囲。 最後の5は市区町村数の最大数(F列から始まり1番右J列までの列数) そしてVBAを実行する。F5キーで実行される。

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

http://okweb.jp/kotaeru.php3?q=876477 にも同じような質問があり、私の回答他をご参照下さい。

Youyou
質問者

お礼

ありがとうございます。 目的は同じでも様々なやり方があることがわかりました。やはりExcelは奥が深いですね。

全文を見る
すると、全ての回答が全文表示されます。
  • inte-nori
  • ベストアンサー率48% (33/68)
回答No.2

例えばF1~F3に、リスト用の「大阪府」「京都府」「兵庫県」が入っているとします。 また、G1~G4に大阪府の市名、H1~H4に京都府の市名、I1~I4に兵庫県の市名が入っているとします。 通常どおり、D2の入力規則を「リスト」>「=$F$1:$F$3」としておきます。 次に、E2の入力規則に、「リスト」>「=IF($D$2="大阪府",$G$1:$G$4,IF($D$2="京都府",$H$1:$H$4,$I$1:$I$4))」というようにIF文を入力します。 これで出来るかと思いますがどうでしょう?

Youyou
質問者

お礼

ありがとうございます。 IFを使う方法もあるのですね。参考になります。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

http://park11.wakwak.com/~miko/Excel_Note/frame1.htm ここの左側の 12.入力規制のページの中の、 6.入力規則のリストに、他のセルに入力した値に対応する項目を設定するには が参考になると思います。 リスト側シート、と入力側シート、の設定をするだけで出来ます。 マクロを使う方法も載っていますが、難しい(汗)

参考URL:
http://park11.wakwak.com/~miko/Excel_Note/frame1.htm
Youyou
質問者

お礼

ありがとうございます。 マクロは基礎がないのでなるべく関数だけで作りたい、と思っていましたので、助かりました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルでのデータ入力規則

    お世話になります。早速エクセル操作(設定)いついて教えてください。 やりたいことは、例えば国内の全都道府県の市町村を選び出し、その市町村の照会文を表示させたいわけです。 まずはセルA1で都道府県名を選ぶためにデータ入力規則を設定します。設定タブから入力の種類をリストに設定し、A1セルの横に出る▼で予め登録していた都道府県名を選ぶようにします。 次にセルA2ではA1で選んだ都道府県の市町村名だけをを同様な入力規則設定をして▼で表示させたいのです。最終的にはセルA2で選択した市町村を紹介したファイル(エクセル、ワード)にハイパーリンクで飛ばせたいのです。うまく表現できなくて申し訳ないのですが、現在は『紹介』というフォルダ内に都道府県別のフォルダを作成し、それぞれの都道府県フォルダの中に市町村フォルダを作り、さらにその中に、紹介文や写真などのファイルを保存しています。これをエクセルシート上で行いたいのです。このOKwaveでカテゴリ選択する時と同じような選択ができれば最高と思うのですが・・・。以上よろしくお願いします。

  • エクセルの「入力規則」の使い方について教えて下さい

    A1セルに入力規則を設定して「テスト1」、「テスト2」と表示するように設定します。そしてプルダウンから「テスト2」を選択した場合のみ、B1セルに「テスト3」、「テスト4」と表示するプルダウンを表示する方法はありますか。 宜しくお願いします。

  • Excelの入力規則に2列のリスト

    添付画像のようなA列に都道府県コード、B列に都道府県名が入力されていて、D2セルに入力規則でプルダウンリストを使用したいです。 プルダウンリストにはAとB列を結合(添付はスペース区切りにしていますがなんでもいいです)させたものを表示し、選択後はB列の名称のみを反映させたいのですが、このような制御は可能でしょうか? できればマクロやVBAは使用しない方が望ましいです。 よろしくお願いします。

  • エクセルの「入力規則」についてお尋ねします。

    エクセル2010です。 あるセルにデータの入力規則を設定します。 条件設定の入力値の種類を「リスト」にし、リストの値は、0,1,2,3と直接指定します。 これで設定したセルにはプルダウンで0,1,2,3を選択するか、直接0~3の数値の入力しかできなくなります。 ここまでは問題ないのですが、このセルにユーザー定義の書式、0"人"を設定して、1は1人と表示されるようにしました。そうすると、直接0~3の数値の入力ははじかれ、プルダウンで0,1,2,3を選択するしか入力ができなくなります。 リストに設定した値を正しく入力しているのに排除されるのはなぜでしょう? いろいろ試し、リストの値を、0,1,2,3と直接指定せず、セル範囲のリスト指定とし、そのセル範囲にもユーザー定義の書式、0"人"を設定しておけばクリアできました。 でも、たかだか数件のリストを指定するのにいちいちリストをワークシート上に作成し、そこにもユーザー定義の書式を設定しなければならないのは腑に落ちません。

  • エクセルについて、ご教授下さい。

    エクセルについて、ご教授下さい。 以下のようなことを行いたいのですが、はたして可能でしょうか。 左図(Sheet1)をご覧下さい。 Sheet1は、データベースになっており、A列に大項目・B列に中項目・C列に小項目があります。 それぞれの関係性は、見ての通りです。 さて次に、右図(Sheet2)をご覧下さい。 このSheet2に記入するために、以下のようにしたいのですが…。 Sheet2のB1セルにカーソルをおくと、プルダウンメニューが現れ、Sheet1 A列の地方名(関東&近畿&九州)が羅列される。 そこから例えば【近畿】を選択します。 その次に、B3セルにカーソルをおくと、やはりプルダウンメニューが現れ、Sheet1 B列のうち、近畿の県名だけが羅列される(大阪府&兵庫県&京都府)。 そこから例えば【兵庫県】を選択します。 最後に、B5セルにカーソルをおくと、またもやプルダウンメニューが現れ、Sheet1 C列のうち、兵庫県の市名だけが羅列される(神戸市&西宮市&芦屋市)。 そこから例えば【西宮市】を選択します… というようなことは、エクセルでできるのでしょうか。 もし、可能であればお教え下さい。 よろしくお願いします。

  • EXCELでの入力規則に関して

    EXCEL2007で、プルダウンで項目を選択して入力できるように設定しているのですが、そのセルに直接入力もできるようにしたいのですがどのように設定すればよろしいでしょうか?さらに直接入力した文字のみ自動で赤文字で表示されるように設定することは可能でしょうか? 詳しい方ご教授お願い致します。

  • Excelの入力規則について

    Excelの入力規則について教えてください。 A1:A20に入力規則を設定します。 入力値の種類にリストを選び、元の位置で、北海道、青森、岩手、山形・・・と都道府県名を20件ほど入力し、設定が完了したとします。 A1セルでドロップダウンして、岩手を選び、次のA2のセルでドロップダウンした時、岩手をリストから消しておきたいのです。 つまり、リストから選んだものは、次のセルでドロップダウンした時、常に消えておくことができるように設定したいのですが、良い方法はありませんか?

  • エクセルの入力規則について質問します。

    エクセルの入力規則について質問します。 やりたいことは、“東京都”を選ぶと東京都の区と市がプルダウンで出てくるみたいな感じです。 困っていることは、 A列に大項目A、B、C、D、E、(←実際使う文字)と一つずつ入れ、名前の定義で名前を付け、B列以降の列に中項目を入れて名前の定義をつけて入力規則を使ってプルダウンで選べるようにしようとしたのですが、”C”だけがなぜか名前がつけられず困っています。 なので他の部分はちゃんとプルダウンで選べるのですが“C”だけは中項目が選べません。 説明がわかりづらくてスイマセン。 この方法を使わなくても、とにかく中項目をプルダウンで選べるようにしたいのですが。。。 何か方法がありませんでしょうか??よろしくお願いいたします。

  • エクセル 入力規則の関数

    お世話になります。 エクセルの質問です。 A1のセルに、入力規則を設定し、H1~10のリストから選ぶように設定します。 そしてA1=H1をプルダウンで選択した際、 B2のセルには自動的に、 H1の隣の値(=I1)を入力するように設定するような関数はありますでしょうか? 大変分かりにくい質問で申し訳ありません。 どうぞ宜しくお願い致します。

  • 《エクセル》入力規則について

    いつもお世話になります。 エクセルの列に、入力規則で打ち込めるデータを限定したいのですが、 セルA1の値が"あ"なら、セルB1には"A"・"B"・"C"のみ入力できる セルA2の値が"い"なら、セルB2には"D"・"E"・"F"のみ入力できる のようなことは可能でしょうか。 また、 A1が"あ"B1が"A"の場合は、C1には"い"・"ろ"・"は"のみが入力できる などということも出来ますでしょうか。 ご存知の方がいらっしゃったらお手数ですが宜しくお願い致します。

専門家に質問してみよう