• ベストアンサー

エクセルでコンボのリスト範囲をしぼりたい

エクセル2003の環境です。 入力用の表で所属入力欄と社員名入力欄があり、手入力の手間を軽減したいのがやりたい事です。 入力用の表の所属入力欄は、所属の一覧を『データの入力規則』でリストをコンボに設定しておく事で、一覧から選択するだけで入力する事ができますが、次の社員名を入力する所で先に選択した所属に属する社員のみのリストが表示されるようにする事が出来ません。(社員数が多いので全部をコンボリストにする事は実際的ではありません) A列に所属名、B列に社員名が入力されたリストがあり、 まず所属を選択したら、Vlookupを使って所属名と合致するものを検索するという手段を使ってみましたが、同一所属の社員が複数いるので一番最終の値を自動的に取ってくるようです。この最終値ではなく何行目のデータを取ってくるかを指定できる方法があれば何とかできそうなのですが、Hlookupだと取得するのが所属の方を持って来てしまうので上手く行きません。 尚、イメージとしては、オートフィルタで所属を絞ったらその所属の社員名が表示されるといった感じで出来ればと思っています。 どんな関数を使えばよいのか?又は関数以外の方法があるのか?ご存知の方がいらっしゃれば教えて下さい。よろしくお願いします。

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

  • ベストアンサー
  • wolis
  • ベストアンサー率45% (14/31)
回答No.2

参考URLのような方法もあります。

参考URL:
http://www.relief.jp/itnote/archives/000822.php
ruru0707
質問者

お礼

回答ありがとうございました。 『名前の定義』『INDIRECT関数』を初めて知りました。 始めは参考URLだけ?と思いましたが、実際開いてみると詳しく丁寧に説明してあったので、よく解りました。No1の方の回答を元に実際にやってみたのですが、エラーとなってしまい困った所、教えて下さった参考URLを元にやってみて私の指定の仕方がまずいとわかりました。 おかげで思ったとおりの事が出来ました。 又、教えていただいたページにはその他にも色々参考になりそうな事がたくさん掲載されていたので、早速お気に入りに登録しました。ありがとうございました。

その他の回答 (1)

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.1

準備として 社員名の入っているセルについて、所属ごとに名前を付けます 例えば、「営業」という所属が有るとすると、営業の社員のセルを選択し、挿入 -> 名前 -> 定義 とし、名前を「営業」とします 社員を選択するセルの入力規則は 所属を選択するセルを A1 とすると、=INDIRECT(A1) とします 所属セルの名称と「名前」は一致している必要が有ります 所属セルが「営業部」で、名前が「営業」ではダメです

ruru0707
質問者

お礼

回答ありがとうございました。 『名前の定義』『INDIRECT関数』を初めて知りました。 又、初めての者には『名前の定義』を使えばいいという回答だけだととまどうのですが、回答欄に『名前の定義』はどこから入るのかなど書いて下さって親切だと思いました。 ただ、この回答を元に実際にやってみたのですが、入力規則のどこに、=INDIRECT(A1)を設定するのかがわからず、取り合えず元の値に入力してみたのですがエラーとなってしまいました。(後からNO2の方が教えて下さった参考を元にやってみて私の指定の仕方がまずいとわかりましたが…) と言う事で迷いましたが、次点とさせていただきました。

関連するQ&A

  • Accessのコンボボックスでリストが選択できない

    いつもお世話になっております、ありがとうございます。 コンボボックス1で部署名を選択し、 コンボボックス2でその部署の社員の名前を選択するようなフォームがあります。 コンボボックス1の値集合ソースで社員テーブルの一覧を参照し、 部署名のフィールドでグループ化して選択できるようになっています。 このとき、なぜかコンボボックス2では最上段にリスト化された社員名しか 選択できなくなります。 画面上では全員がリストとして見えているのに、 リストの2番目以降をクリックしても、一番上の社員しか入力されません。 プロパティで何か変な制約がかかっているのでしょうか? どなたかお分かりになる方がいらっしゃいましたら教えてください。 どうぞよろしくお願いします。

  • エクセル リストボックスについて

    現在、エクセルにて入力フォームを作っているんですが、入力規則の設定のとこでつまづいています。 つまづいているのは、例えば・・・リスト一覧の表を別のファイルのシートに用意をします。ここでの仮名として「リスト一覧表」を作ったとします。 そして本ファイルであるシートの中のセル(D10)に「リスト一覧表」から入力規則のように表示をするためにコンボボックスを使い、 「リスト一覧表」から使いたいリストを選んで「D10」に表示をして、 なおかつ、印刷時には「コンボボックス」の表示を出したくありません。そこで表示を消すにはどうしたらいいのか教えてください。 よろしくお願いいたします。

  • 【エクセル】リスト作成について

    現在、エクセルにてリストを作成しております。 お力をお借り出来ると幸甚です。 簡単に記載いたします。 【シート内容】 A列に他シートにて都道府県のリストを作成し、そこを見て、リストから都道府県名を選択するようにしております。 B列には例として、特定の数字データを入力します。(手入力) A列      B列 (表1) 東京      10 千葉      20 神奈川     30 東京      40 埼玉      50 東京      60 千葉      70 --------------------------- この下に、上記表の取りまとめの情報を載せたいと考えております。 例として、(列はどこでも構いません) (表2) A列      B列 東京      110 千葉      90 神奈川     30 埼玉      50 【お力をお借りしたい部分】 (表2)に取りまとめの情報を作成する際の方法です。 (表1)のA列に、リストから選択された各都道府県名は、特定ではなく、変わります。 その為、(表2)のA列に各都道府県名を固定で記載し、B列にsumif関数等が使えないと考えております。 ・(表2)A列に(表1)A列に表示されている一覧から、重複なく、もれなく一覧を表示させる方法はありますでしょうか?(出来ればピボットテーブル等を使用せずに関数で出来たら助かります。)

  • エクセルで2段階でリストからの選択入力したい

    エクセル2013で添付のようにSheet1のB列に顧客名、D列からR列まで行方向にその顧客の製品名が入力された表(顧客リスト)から、Sheet2の入力表のE列でリストから社名を選択したら、その社名に対応する製品名をF列でリストから選択入力できるようにしたいのです。 最初はINDEX関数とMACH関数の組み合わせで何とかと思ったのですが、名前の定義を使えば社名を選択したら直接製品名が選択できるように出来ると思ったのですが顧客が増えてきたら、不要の顧客名を削除したり、上書きしたらリストが崩れることに気づきました。 (顧客リストは毎月入力時に上書きしないとリストが長くなる一方で、リストから選択するより直接入力する方が簡単になってしまいます) 上記の問題を解消して、顧客リストを上書き、削除しても正しく選択できるようにならないでしょうか? 最初の思惑と違ってずいぶんハードルの高い内容になってしまい、回答いただいても当方に使えるかどうかも自信がなくなっていますがよろしくお願いします。

  • リスト外入力

    アクセス2002を使っています。 フォームでコンボボックスを使用し一覧から選択できるようにしたのですが、一覧にない文字列を入力しようとすると「一覧から選択して下さい」とメッセージが出て入力できません。 一覧にない文字列も入力できるようにしたいのですが、どなたか教えていただけませんか? フォームのプロパティで「リスト外入力」という項目がありますが、このプロシジャでマクロを設定すればできるのでしょうか? よろしくお願い致します。

  • エクセルでHLOOKUP関数の選択範囲について

    エクセルでHLOOKUP関数を使って、検索したいのですが、 シートは、一覧表のシートと データが入っているA101、B203、C305、...シートは300シートくらいあります。 一覧表のシートには、下のような表になっていて、      A列  B列  C列  D列 ...          1003、1004、1005、1006、... 2行目 A101  3行目 B203 4行目 C305       .       .       . データのはいっているシート、A101は下の表になっています。      B列 C列 D列、・・・、Z列 2行目 1004、1005、1006、... 3行目 100、 200、 150、... 一覧表のB列の2行目には HLOOKUP(B2、シートA2のB2:Z3、2行目、FALSE) という感じで、シート名をセルA2のものを参照にして 探して表示させ、B列、C列、D列の2行目から下の行も 表示させたいのですが、うめくできませんでした。 INDIRECT関数を使ってみましたが、セル範囲が無効という エラーがでてしまいます。↓こんな感じで入力してみたのですが... SUMPRODUCT((INDIRECT($A2&"!$B$2:$Z$3"))=$B$1,(INDIRECT($A2&"!$B$2:$Z$3"))) 1つづつデータを見て手打ちはデータが多く、 どんどんデータが増えていくので できれば関数を使って表示させたいと思っています。 詳しい方いらっしゃいましたら、どうか教えてください よろしくお願いします。

  • コンボボックス

    お願いします。 アクセスのフォームでコンボボックス(仕入先名)を使用していて、リスト一覧の中から選択していく訳ですが、1件の入力が終了して次のデータ入力に移り、コンボボックスのリスト選択の際に、直前に入力した「仕入先名」を一番最初に表示させることは可能でしょうか?  関連するのですが、 たとえば納品書で、同じ仕入先から一回に商品を30種類くらい仕入れるような場合、フォームに商品入力欄を複数行(5行位?)作って一度に複数行入力することはできるでしょうか? 必要なフィールドは商品名、数量、単価、備考(任意)です。 できるだけ入力の効率を上げたいと考えております。 よろしくご指導ください。

  • コンボボックスのリストに追加

    歌手のアルバムリストを作成しています。 コンボボックスに新規入力した歌手の名前をコンボボックスのリストに追加し、既にある歌手名はそのままコンボボックスから選択できるようにしたいんですがどの様にコードを書いていいかわかりません。 お解りになる方がいらっしゃいましたらよろしくお願い致します。

  • エクセルでリストに対応するデータを別シートの表

    エクセルでリストに対応するデータを別シートの表に参照したいです。 「表シート」のB2にリストを作って、 (リストは「一覧表シート」のA,B,Cが入力されているセルを参照しています。) Aを選択すると101の下の段(B11)に、 「一覧表シート」のAの列101の111が入力されるようにしたいです。 Bを選択すると222、Cを選択すると333が入力できるようにしたいです。 この「表シート」の表がややこしいのですが、 建物の部屋番号に対応しているため、3階2階1階という順になっています。 関数で対応できるものでしょうか? 分かりにくい表ですが、よろしくお願いします。

  • エクセル 表と連番とリストを追加

    エクセルでデータ入力をします。表と連番とリストを大量に追加したいのです。 以下は例です。 |A列 |B列 |C列 | |番号|店舗名|商品名|  1  いぬ屋  首輪、ガム(いずれか一つを選択)  2  ねこ屋  爪とぎ、猫の砂(いずれか一つを選択)  3  いぬ屋  首輪、ガム(いずれか一つを選択)  新規も既出のデータも入力します。  表が最終行になるとまた表を追加してオートフィルするのが面倒なので、順次データを追加するに、表と、連番と、店舗名を参照して商品名がでてくるリストとを簡単に作れる方法はありませんか?

専門家に質問してみよう