• ベストアンサー

2段階のドロップダウンリストについて

2列に渡って、2段階のドロップダウンリストを作成します。 1列目である項目をリストから選び、2列目に移ったら1列目で選んだ 項目に匹敵する項目のリストから選べるようにしたいと思っています。 名前の定義とINDIRECTを使って作成している所です。項目には頭に数字 をふりたいのですが、名前の定義は数字が使えず、丸数字を使おうとも 思ったのですが21個では足りません。アルファベットも数が足りませ ん。 何か良い方法があったらヨロシクお願い致します。

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

  • ベストアンサー
回答No.1

名前の定義やINDIRECTを使わなくてもできます。 下記のようなリストがある場合         C          D          E          F 1     1大項目     11小項目     12小項目     13小項目 2     2大項目     21小項目     22小項目     23小項目 3     3大項目     31小項目     32小項目     33小項目 4     4大項目     41小項目     42小項目     43小項目 A1セルの入力規則のリスト =$C$1:$C$4 B1セルの入力規則のリスト =INDEX($D$1:$F$4,MATCH($A1,$C$1:$C$4,0),)

cavarus
質問者

補足

CoalTar 様 ご回答有難うございます。 おっしゃる通りやってみたら出来ました。自分ではINDIRECTを使う方法 しか考えつきませんでした。諦めかけていたので本当に助かります。 それともしお時間ありましたら、この式の説明をして頂けると助かりま す。INDEXとMATCH、それぞれ個々の使い方はなんとなく把握出来てるの ですが、どうしてこういう式が思い浮かぶのか、きちんと理解して覚え たいので教えて頂けると幸いです。 お時間ある時で結構ですので・・・。

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

その他の回答 (3)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.4

No2です。 C,D列で一組です。テクニックはE,F列も同じです。 =IF(COUNTIF(A2:A$2,A2)=1,ROW(),"") で同じ項目が何度もでてきますので、最初に出てきた項目にだけその行番号を表示 D列は =INDEX(A:A,SMALL(C:C,ROW(A1))) だけでも大丈夫です。項目で行でC列で取得した行番号の小さい順に表示です。 但し、このままでは下へコピィしたときに項目が終わりの場合にエラーになるので SMALL(C:C,ROW(A1)) がエラーを返した時には空白と処理しています。 (C列の小さい順番ですが、その順番が存在しないのでエラーがでます) E、F列でも同様ですが、E列には別シートのA1で選択した項目と同じ項目のみ行番号を表示 F列は、D列を同じ要領です。

cavarus
質問者

お礼

hallo-2007様 ご説明有難うございます。 式を拝見しただけでは充分理解出来なかったので、とても参考になりま した。また何かありましたら、どうぞよろしくお願い致します。

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

INDEXのヘルプより抜粋 配列形式 INDEX(配列,行番号,列番号) 行番号または列番号に 0 を指定すると、それぞれ列全体または行全体の値の配列が返されます。 よって、 =INDEX($D$1:$F$4,MATCH($A1,$C$1:$C$4,0),) は列番号に0を指定しているものとみなされ、行の配列が返されたのです。

cavarus
質問者

お礼

CoalTar 様 早速説明して下さって、どうも有難うございました。 今後は自分でも関数のヘルプを参考にして勉強したいと思います。 本当に助かりました。また宜しくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

関数使って整理する方法ですが Sheet1   A   B 1 項目  明細 2 A2,B2に入力規則設定するとして Sheet2  A  B   C   D   E    F 項目 明細 作業列 項目 作業列 明細 1タイプ 15インチ 1タイプ 19インチ 1タイプ 大型 2タイプ 格安 2タイプ 中 ・・・・ C列に =IF(COUNTIF(A2:A$2,A2)=1,ROW(),"") D列に =IF(ISERROR(SMALL(C:C,ROW(A1))),"",INDEX(A:A,SMALL(C:C,ROW(A1)))) E列に =IF(A2=Sheet1!A$1,ROW(),"") F列に =IF(ISERROR(SMALL(E:E,ROW(A1))),"",INDEX(B:B,SMALL(E:E,ROW(A1)))) 入れて下までコピィ D列に名前定義 項目、F列に名前定義 明細 Sheet1のA2入力規則で =項目 B2入力規則で =明細 項目の名前の付け方も数も自由です。 データのシートもわかりややすいかと。

cavarus
質問者

補足

hallo-2007 様 ご回答有難うございます。 教えて頂いた方法で出来ました。やはりINDIRECTを使わずに出来、色ん なやり方がある事がわかったのですが、関数初心者です。 ISERRORは初めて見る関数で、正直使い方が今の段階ではよく把握出来 ません。勿論自分でも調べてみたいと思っていますが、もし万が一お時 間あるようでしたらで構わないのですが、簡単にご説明頂けたら嬉しい です。

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

関連するQ&A

  • エクセルでのドロップダウンリスト作成について

    エクセルで、3つの項目(A,B,Cとします)をドロップダウンリストから選択する場合、A,B,Cを『名前の定義』で関連付けることはできました。しかし、A,B,Cが同じ文字列の場合、同シート上で同じ名前の定義にできないため、ドロップダウンリストが作成できずにいます。 このようなドロップダウンリストを作成するにはどのようにすれば良いか教えてください。 VBAなどが必要になるのでしょうか? 宜しくお願いします。

  • エクセルのドロップダウンリスト

    こんにちは。エクセルで入力規則からドロップダウンリストを作成するときの質問です。リストの元の値を名前定義で指示しているのですが、リスト内容を後から追加できるように名前定義の範囲を現在値が入力されている範囲を超えて空白セルもいくつか一緒に定義しています。 このとき、ドロップダウンリストには当然名前で定義されたリストが出るのですが、空白も一緒に出てきます。 質問は、この空白を無視(値が入力されている範囲だけ)してリスト表示できないかということです。あるいは、空白がリストに含まれてでるのですがその際にリストが一番上でなく真ん中あたりが最初に表示され、つまりリストの▼を押した段階で空白リスト、その後スライドバーでリスト上部を表示させて選択する形になっているのですが、いきなり最上部のリストが表示される方法でも構いません。 よろしくお願いいたします。

  • ドロップダウンリストについて

    ドロップダウンリストの作成についてお願いします。 列にドロップダウンリストを作る方法はわかるのですが、行に作る方法がわかりません。 可能なのでしょうか?また、できればその方法について教えていただきたいです。 よろしくお願いします。 EXCEL2004forMac OS:mac OS X 10.4.8 使用しています。

  • ドロップダウンリストについて

    ドロップダウンリストを使いたいと考えています。 50名ほどの名前をドロップダウンリストにて選択し、 1度選択した名前を使えないようにしたいと考えています。 どうすればいいのでしょうか?? 教えてください。よろしくお願いいたします。

  • ドロップダウンリストの連動

    いつも大変お世話になっております。 エクセルで、セルO6にA社とB社を名前の定義で登録しドロップダウンリストで選択できるようにしました。 セルD14に、セルO6でA社を選択した場合には、A5052(H)とA5052(R)がドロップダウンリストで選択でき、同じく、セル14に、セルO6でB社を選択した場合には、アルハイスとアルジェイドがドロップダウンリストで選択できるようにしたいです。 こちらで拝見したり、ネットで調べたのですが、列が同じの場合はやれそうでしたが、同列以外ではできませんでしょうか? (INDIRECTや、ドロップダウンリストを使用してやったりできるのでしょうか) 説明が上手く出来ず申し訳ありません。 ご教授して頂けたらありがたいです。 よろしくお願いします。

  • オートフィルタのドロップダウンリスト

    オートフィルタでドロップダウンリストを使うとき、表示される項目の数が少ないと感じるときが多いのですが、この数を増やすことは出来ないのでしょうか。 その列の横幅を広げてやれば、リストの横幅も一緒に広がりますが、縦方向もいじりたいのです。 ACCESSですと簡単に任意に設定できますが、EXCELではどうすればよいのでしょうか。

  • エクセル セルを結合させてドロップダウンリストを作りたい

    Office2003を使用しています。 エクセルで、結合させたセルの列を一つの列とみなしてドロップダウンリストを作成したいのですがうまくできません。 言葉が足りずにわかりにくいかもしれませんが、例えば1行目のA列とB列、2行目のA列とB列、3行目のA列とB列・・というようにセルを結合させていき、その列にドロップダウンリストを作成したいのです。 結合させた後に範囲を指定してドロップダウンリストを作成しようとすると、A列とB列の2列にドロップダウンリストを作成するように出来上がってしまいます。 何か方法はありますでしょうか? 宜しくお願いします。

  • (初心者)Excelで連動するドロップダウンリストを作成しています。

    他に同じ質問があったらすいません。 探したのですが見つからなかったため、質問させていただきます。 Excelで多項目の連動するドロップダウンリストを作成しています。 名前の定義で「○○&□□」 (例えば「メニュー&ツール」) と定義したいのですが、「&」を使用するとエラーが出てしまいます。 「&」は使用不可文字なのでしょうか。 また、作成しようとしているリストは、 (1)A1のセルで○、もしくは△、□がリストから選択できる。 (2)(1)で○を選択した場合はB1のセルでA、もしくはB、Cが選択できる。 (3)(2)でAを選択した場合、C1のセルで1、もしくは2、3が選択できる。 上記のような3階層に渡る連動したリストです。 このようなリスト作成の質問は多数ありましたが、 どれが私の求めているリスト作成に近いのか判断ができませんでした。 恐れ入りますが、参考になるURLや作成方法など、 教えていただけませんでしょうか。 初心者のくだらない質問だとは思いますが、数日悩んでいます。 どうぞよろしくお願いします。

  • 複数の条件を組み合わせたドロップダウンリストの作成

    エクセル2007で複数の条件を組み合わせたドロップダウンリストを作成したいです。 ********************************************** sheet1 sheet2 sheet3 (作業内容) (担当者) (場所) 1 清掃 佐藤 会議室 2 清掃 田中 トイレ 3 清掃 山本 ROOM1 4 清掃 酒井 ROOM2 5 除草 遠藤 中庭 6 除草 中井 正面玄関 7 窓拭 青木 ロビー 8 窓拭 同上 会議室 9 窓拭 清水 ROOM1 10窓拭 同上 ROOM2 *********************************************** 上記の内容を使い、sheet4で 『それぞれの担当が、どこの場所を、何時間作業をしたかのか』 を記入するリストを作成するとします。 sheet1には作業内容、sheet2にはその作業に対する担当者 sheet3には担当者が受け持つ場所がそれぞれ記載してありますが 1~4(清掃グル-プ)だけは、どの担当者も 「会議室・トイレ・ROOM1・ROOM2」を受け持つことになっています。 実際記入するsheet4には、以下のドロップダウンを作成したいです。 セルA1.作業内容のドロップダウン セルA2.作業内容に対する担当者名のドロップダウン セルA3.担当者に対する場所のドロップダウン ※ただし、1~4に関しては、どの担当者に対しても sheet3の1~4すべての場所を表示させるようにしたい それぞれ名前の定義で名前をつけ、入力規則にINDIRECTを使い A1・A2のドロップダウンまでは作成することができましたが A3のドロップダウンは、どのようにつくればよいのかわかりませんでした。 5~10の担当者に対するドロップダウンと、1~4の条件を組み合わせて ドロップダウンをつくることは可能でしょうか。 すべてに名前の定義をつけてつくることは可能なのですが、実際作ろうとしているリストは、1~4の担当者部分がかなりの数になっている為、なるべく同じ項目をたくさん入力せずにできる方法を探しています。 Sheet1~sheet3の項目は、どのsheetに記載でも大丈夫です。 入力用のシートになるsheet4だけは別にしたいです。 どうぞ宜しくお願い致します。

  • MSWord2007のドロップダウンリストについて

    MSWord2007で表の中にドロップダウンリストを作成したのですが、 文字列の長さによって表の幅が勝手に変わってしまいます。 表の幅等が変わらないように、プロパティなどでサイズ固定してみたのですが、 ドロップダウンリストから文字列を選択すると、 やはり、表の幅が勝手に変わってしまいます。 普通の文字入力のように、自動改行してくれないものでしょうか? 少し文章では、わかりにくいので、下に例を書きます。 3つのセルがある表に五文字くらい入る幅で作成した場合、 |aa |bbb | ▼ |(▼がドロップダウンリスト) で、ドロップダウンリストの中にあるccccccccを選択すると |aa|bbb|cccccccc| と、左側が圧迫されます。自動改行されません。 本当は一番右端のセルだけ cccccc ccc という風に自動改行になるのが理想なんです。 これは、MSWord2007で可能でしょうか??

専門家に質問してみよう