エクセル:複数の条件からドロップダウンリスト作成

このQ&Aのポイント
  • エクセルで複数の条件からドロップダウンリストを作成する方法について教えてください。
  • 部屋ごとに異なる条件でドロップダウンリストを作成するためのエクセルの方法を教えてください。
  • エクセルを使って部屋ごとに異なる条件からドロップダウンリストを作成する方法を教えてください。
回答を見る
  • ベストアンサー

エクセル:複数の条件からドロップダウンリスト作成

エクセル:複数の条件からドロップダウンリスト作成 お知恵を借りられれば幸いです。 ドロップダウンリストを作りたいと考えております。 (参照元のデータ) 部屋A   午前 午後 夜間   ¥50 ¥60 ¥70   ¥70 ¥75 ¥800   ¥90 ¥110 ¥120 部屋B   午前 午後 夜間   ¥90 ¥110 ¥120   ¥650 ¥15 ¥80   ¥90 ¥110 ¥120 部屋C ・ ・ ・ (入力用シート)                    部屋名    午前         午後         夜間 部屋A ※¥50~¥90のリスト ※¥60~¥110のリスト  ※¥70~¥120のリスト 上記の用に、元のデータを参照して 入力用シート「部屋名列」に部屋を入力すれば、午前、午後、夜間のリスト が相応のものになるようにしたいのですが・・・。 元データの体裁はこだわっておりません。 よいお知恵があればお教え願えれば幸いです。

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

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.7

#6です。ひょっとして皆さんと同じ事の横着版を回答しただけなのかと心配になり、名前を付けないバージョンを試しにやってみました。ただ、元データ形式が必ずしも同じで無いので、いまいち分かりませんでした(^^;) #5と同様の形式の元データの存在するシートの、部屋A、部屋B...が入っている列全体に名前を付けます。(これは入力規則設定の際に、Sheet1!といった表現が認められないため)ここでは「部屋列」という名前を付けました。先に名前を付けないと記しましたが、この一個だけはシートをまたぐために必要です。 入力用シートのB2からD2の入力規則の元データに下記の式を設定します。 =INDEX(OFFSET(INDEX(部屋列,MATCH($A2,部屋列),1),0,1,3,3),,COLUMN()-1) これはそのまま下方にコピーして通用するようにしてあります。

namsan3
質問者

お礼

皆様回答ありがとうございました! 色々なやり方があったのですね。。 ほんとは皆様にベストアンサーをさしあげたいのですが、 もっとも手間が少なかったものをベストアンサーとさせて頂きました。 他のご意見も参考にさせて頂きます。 ありがとうございました。

その他の回答 (6)

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.6

VBA大好き人間ですが、トライしてみました。 名前を付ける一手間がかかりますが、式は簡単になります 元データが下記の様な体裁とします。(表示位置がずれますが、価格のところは3×3のマトリクスだとみなして下さい)この3×3の値段のセルに、「部屋A」という名前を付けます。以下、部屋の数だけ名前を設定する必要があります。 部屋  午前 午後 夜間 部屋A \50  \60  \70     \70  \75  \800     \90  \110 \120 入力用シートのA2に、部屋A、部屋B...を選択する入力規則が設定されているとして、 B2の入力規則の元の値のところに下記の式を入れます =INDEX(INDIRECT($A$2),,1) 同様に、 C2の入力規則の元の値:=INDEX(INDIRECT($A$2),,2) D2の入力規則の元の値:=INDEX(INDIRECT($A$2),,3) という式を入れれば、お望みの事が実現できると存じます。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.5

 今仮に、Sheet2に元データのリストをSheet2に作成しておき、Sheet1のセルにドロップダウンリストを表示させるものとします。  まず、Sheet2のA1セルに 部屋名 と入力して下さい。  次に、Sheet2のB1セルに次の数式を入力して下さい。 =IF((COLUMN(B:B)+1)/3>COUNTIF($A:$A,"><")-($A$1<>""),"",INDEX($A:$A,(COLUMN(B:B)+1)/3+1))  次に、Sheet2のB2セルに次の数式を入力して下さい。 =IF(B1="","","午前")  次に、Sheet2のC2セルに次の数式を入力して下さい。 =IF(B1="","","午後")  次に、Sheet2のD2セルに次の数式を入力して下さい。 =IF(B1="","","夜間")  そして、Sheet2のB1~D2の範囲をコピーして、同じ行のE列から右方向に向かって、部屋数の3倍を上回る列数となるまで貼り付けて下さい。  次に、Sheet1の A1セルに 部屋名 B1セルに 午前 C1セルに 午後 D1セルに 夜間 と入力して下さい。  次に、Sheet1のA2セルを選択してから、以下の操作を行って下さい。 メニューの[データ]をクリック   ↓ 選択肢の[入力規則]をクリック   ↓ 現れた「データの入力規則」ウィンドウの「設定」タグをクリック   ↓ 「入力値の種類」欄をクリック   ↓ 現れた選択肢の中の「リスト」をクリック   ↓ 「元の値」欄の中に以下の数式を入力 =INDIRECT("Sheet2!A2:A"&MATCH("゜",INDIRECT("Sheet2!A:A"),-1))  ※"゜"の部分は半濁点   ↓ 「データの入力規則」ウィンドウの[OK]ボタンをクリック  次に、Sheet1のB2セルを選択してから、Sheet1のA2セル場合と同様の操作で、「元の値」欄の中に以下の数式を入力して、「データの入力規則」ウィンドウの[OK]ボタンをクリックして下さい。 =OFFSET(INDIRECT("Sheet2!A3:A"&MATCH(99^9,OFFSET(INDIRECT("Sheet2!A:A"),,MATCH($A2,INDIRECT("Sheet2!1:1"),0)-1))),,MATCH($A2,INDIRECT("Sheet2!1:1"),0)+COLUMN(A:A)-2)  次に、Sheet1のB2セルをコピーして、Sheet1のC2セルとD2セルに貼り付けて下さい。  次に、Sheet2のA2以下に、 A2セルに   部屋A A3セルに   部屋B A4セルに   部屋C   ・      ・   ・      ・   ・      ・ という具合に、各部屋名を入力して下さい。  この時、部屋の順序は順不同でも構いませんが、部屋名を入力しているセルの間に、空欄のセルが無い様にして下さい。  すると、B1、E1、H1・・・・セルに、部屋名が自動的に表示され、2列目には午前、午後、夜間という表示が自動的に行われますから、 3行目以下に各部屋の金額を入力して下さい。  これでSheet1の A2セルには各部屋名のドロップダウンリスト、 B2セルにはA2セルで選択した部屋の、午前の金額のドロップダウンリスト、 C2セルにはA2セルで選択した部屋の、午後の金額のドロップダウンリスト、 D2セルにはA2セルで選択した部屋の、夜間の金額のドロップダウンリスト、 が設定される筈です。  もし、3行目以下にも同様の入力規則を設定する場合は、Sheet1のA2~D2の範囲をコピーして、同じ列の3行目以下に貼り付けて下さい。

回答No.4

#2,3です #2の修正 >>=INDEX((A3:C5,E3:G5,I3:K5),・・・ 複合参照にするの忘れてた。列番号固定ですね。 #2,3 さらに、INDEXの領域番号は不要でした m(_ _"m) #領域番号を使ってみたいお年頃だったのだろうか^.^) リストの作りの数式部分だけ。#2添付図参照 (名前の定義や入力規則は設定してください。) B10セルへ =INDEX(A$3:E$5,,MATCH($A10,$1:$1,0)) 右へ下へオートフィル 解説 MATCH関数で、A10セルの部屋を検索。 INDEX関数の行番号を省略することで、列を返す。 (右へオートフィルで対象範囲が変わる) セルを選択→[F2]→[F9]とすることで目的のリストとなっていることを確認してください。 [Enter]で確定せず、[Esc]で抜けます。

回答No.3

>>入力範囲は カット&ペーストで良いかと思います。 ウソでした。というより、もうひと手間。 =INDEX((Sheet1!A$3:A$5,Sheet1!E$3:E$5),,,(3+MATCH(Sheet1!$A2,Sheet1!$1:$1,0))/4) ではMATCHの検索値が異なってしまうようなので =INDEX((Sheet1!A$3:A$5,Sheet1!E$3:E$5),,,(3+MATCH($A2,Sheet1!$1:$1,0))/4) と編集してあげる必要があるようです。 (列Aは省略)

回答No.2

1. B10セル選択 2. [Ctrl]+[F3]名前の定義   名前 リスト   参照範囲 =INDEX((A$3:A$5,E$3:E$5),,,(3+MATCH($A10,$1:$1,0))/4) 3. 入力規則   リスト =リスト 細かいところは添付画像で。 入力範囲は カット&ペーストで良いかと思います。 部屋Cも入れるとINDEXの第一引数は =INDEX((A3:C5,E3:G5,I3:K5),・・・ となるでしょう

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 一例です。無理やりって感じになりますけど・・・ Sheet1にリスト表示させたい場合はそれぞれを名前定義しておく必要がありますので、 ↓の画像では下側がSheet2です。 その表に少し手を加えておきます。 午前・午後・夜間の前にそれぞれ部屋の1文字を付けて表を作っています。 A列は単にSheet1の部屋のリストにするための表ですのであまり深く考えなくて良いと思います。 当方使用のExcel2003の場合です。 まず、A1~A4を範囲指定 → メニュー → 挿入 → 名前 → 作成 → 上端行 を選択し、OK これでA2~A4の範囲が「部屋」という名前定義されました。 同様に画像の薄い緑色部をそれぞれの列の名前定義の「名前」にするようにします。 Sheet2のC1~C4を範囲指定 → 挿入 →・・・(中略)・・・→ 上端行 を選択し、OK これでSheet2のC2~C4が「A部屋」と名前定義されました。 この作業を表のすべてで行っていきます。 これができれば後は簡単です。 Sheet1のA2セルをアクティブにし メニュー → データ → 入力規則 → リストから「元の値」の欄に =部屋 としてOK 次にSheet1のB2~D2を範囲指定 → メニュー → データ → 入力規則 → リストの「元の値」の欄に =INDIRECT(RIGHT($A2,1)&B1:D1) としてOK これでA2でリスト表示された部屋のそれぞれの「午前・午後・夜間」のリスト表示が可能になると思います。 尚、画像では部屋名の右一文字を表に加えていますが、二文字つけても構いません。 その場合B2~D2のリストの「元の値」の数式は =INDIRECT(RIGHT($A2,2)&B1:D1) となりますので、その辺はお作りになる表の部屋名によってアレンジしてみてください。 (付け加える文字数は統一しておきます) 以上、参考になれば良いのですが 他に良い方法がればごめんなさいね。m(__)m

関連するQ&A

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

    エクセル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だけは別にしたいです。 どうぞ宜しくお願い致します。

  • Excelのドロップダウンリストのフォント設定について

    OfficeXP Excelを使用しています。 セルの入力方法の内、ドロップダウンリストによる選択を行う場合、「データ」→「入力規制」の「設定」タブで、「入力値の種類」を「リスト」とし、参照範囲を指定しています。 しかし、シートの表示を50%にて使用しているため、ドロップダウンリストの文字が小さく判別できません。 ドロップダウンリストのフォントを大きくすることは可能でしょうか? それともシート表示に依存される為無理なのでしょうか? どうしても解りません。 御存知の方教えてください。 よろしくお願いします。

  • ○、×のドロップダウンリストを作りたい。

    エクセルで「○」か「×」かを選択できるように ドロップダウンリストを作りたいのです。 ドロップダウンリストに表示させたい 「○」「×」を別のセルに入力して、選択するように しているのですが、これを表示させないようにするには どうしたらよいのでしょうか? つまり、私がしていることは データ→入力規則→入力値の種類を「リスト」にする→元も値を「○、×が入力してあるセル を選択しているのです。」 この、元の値のセルの値が邪魔なのです。 どうぞ、よろしくお願いします。

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

    エクセルのデータ機能の中にある「入力規則」を使って特定のリストの単語を ドロップダウン形式で入力できるようにしたいのですが、同一ワークシート内に あるリスト以外からは引っ張れないのでしょうか? クリックでセルを指定するやり方でできなかったので手入力でシート名を\ と!で区切って「\sheet1!$B1$B9」みたいな感じで(\sheet1だけ手入力)すると 他シート・ブックからは参照しないみたいなアラートがでましたが・・・。 以前雑誌を見てやった記憶があるのですが雑誌が手元にないので困っています。 全く違った機能を使うのでしょうか? ちなみにエクセル2000を使っています。

  • 連動したドロップダウンリストを INDIRECT関数を利用して作成したのですが・・・

    お世話になります。EXCEL2003での質問です。 県選択→結果を受けて市町村選択 というドロップダウンリストを下記の要領で作成しました。  名前の定義 : 名前;都道府県  参照範囲;シート名!$A$2:$A$7  名前の定義 : 名前;○○県   参照範囲;シート名!$B$2:$Z$2  各県の名前を同様に定義する。 一つ目のドロップダウンリスト(別シートのA1)  入力規則  : 入力値の種類;リスト  元の値;=都道府県 二つ目のドロップダウンリスト(別シートのB1)  入力規則  : 入力値の種類;リスト  元の値;=INDIRECT($A$1) 上記で問題なく連動したドロップダウンリストを作成できました。が、市町村合併に対応させたくて参照範囲を可変に・・・と思い、名前の定義の参照範囲のところを次のように変更しました。  名前の定義 : 名前;○○県   参照範囲;=OFFSET(シート名!$B$2,0,0,1,COUNTA($2:$2)-1) すると二つ目のドロップダウンにリストが出てきません。 B1の入力規則に戻って元の値が=INDIRECT($A$1)になっているのを確認してOKをクリックしたところ"元の値がエラーと判断されます"と警告が出ました。 そこでINDIRECT関数を噛ませずに直接、元の値を=○○県 にしたところ正常にドロップダウンにリストが表示されました。 これは、名前の定義の参照範囲に関数を使用したときにはINDIRECT関数が使用できない、ということなのでしょうか。どなたか、お詳しい方、教えていただけませんでしょうか。よろしくお願いします。

  • excelの ドロップダウンリストが表示されない

    入力規則のドロップダウンリストが表示されません、また、ALT+↓or↑でもリストが表示されません、対処法があれば、ご教授願いたくよろしくお願いします。 ■仕様 excel2000 ■症状 exelのドロップダウンリストを利用して、データを入力しているのですが、あるタイミング(データを入力してファイルが重くなっていくと)で突然、ドロップダウンリストが表示されなくなります。  またALT+↑or↓でもリストが表示されません。従いまして、入力規則→リストがリセットされているのかと思いきや、入力規則で設定したリスト以外は入力できないので、リセットできません。 ■原因(推定) 入力規則のリストを別シートに記載し名前を定義して、本シートの入力すべきセルで入力規則→リストを設定し、名前を読みにいってます。また、入力規則リストを157セルあり、複雑にしすぎてエクセルが混乱して、故障してしまったのかと思っています。 ■設定 ・入力規則のドロップダウンリストにチェックを入れています。 ・[ツール]→[オプション]の[表示]タブの「オブジェクト」で「すべて表示」を設定しています。

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

    Excelでシートを作成しており、ドロップダウンリストにて、データを選べるようにしました。 セルごとに選ぶリストが違うため、Excelのファイルサイズが大きくなってしまいました。 リストのみ別シートで作成し、連動?することはできますでしょうか? リストは別シートに作成してあり、それが10以上になっています。 何かいい方法がありましたら、教えて頂ければと思います。

  • ドロップダウンリストを大きくしたい。

    エクセル2000です。 入力規制でドロップダウンリストからの選択で入力しています。 リストデータが30件あったとして、ドロップダウンリスト内にその30件一度に表示させることはできないでしょうか?(10件程度しか表示されず、スクロールさせています) または、表示件数を増やすような設定は、ないでしょうか?

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

    ドロップダウンリスト以外の入力をしたいのですが打ち込めません ドロップダウンリストを解除して入力できる方法を教えてください。 (解除しなくても入力出来れば尚、可です。) EXCEL2003,WindowsXPの環境です。 宜しく、お願いいたします。

  • エクセルでドロップダウンリストを使いたい

    こんにちは。 エクセルでのデータの入力にドロップダウンリストを使いたいのですが 方法がわからないので教えてください。 やりたいことは以下のとおりです。 ・ドロップダウンリストは初めから表示する。  (クリックしたら表示されるのではだめ) ・ドロップダウンリストの選択項目はセル参照でも  直接入力でもどちらでもよい。 クリックしたら表示される方法はなんとかわかったのですが、 初めから表示しておくやり方がわからないです。 よろしくおねがいいたします。

専門家に質問してみよう