- ベストアンサー
Excel2003で2つの条件で入力規則リストを作りたい
- Excel2003で2つの条件で入力規則リストを作成する方法について教えてください。
- シート1にはA、B、C項の組み合わせで1000行近くデータがあります。シート2でC,D項(シート1のA,B項)で入力規則のリストを選択し、E項(シート1のC項)に出てくる入力規則リスト項目を絞りたいです。
- また、A、B項の項目は別途データシートとして作成します。ご教示いただけると助かります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
シート1もシート2にも作業列を作って対応します。 例えばシート1のE2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(COUNTA(A2:B2)<>2,"",A2&B2&COUNTIF(E$1:E1,"*"&A2&B2&"*")) シート2のG2セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。 =IF(OR(COUNTA($C2:$D2)<>2,COUNTIF(Sheet1!$E:$E,$C2&$D2&COLUMN(A1)-1)=0),"",INDEX(Sheet1!$C:$C,MATCH($C2&$D2&COLUMN(A1)-1,Sheet1!$E:$E,0))) その後にシート2のE2セルから例えばE100セルまでを選択して入力規則を設定しますが、その際の元のデータには =G2:S2 のように入力します。 これでE列ではお望みのデータのリストから希望のデータを選択することができます。
その他の回答 (2)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 一例です。 ↓の画像で説明させてもらいます。 Sheet1に作業用の列を2列設けます。 D2セルに =IF(COUNTBLANK(Sheet2!$C$2:$D$2),"",IF(AND(A2=Sheet2!$C$2,B2=Sheet2!$D$2),ROW(),"")) E2セルに =IF(COUNT(D:D)<ROW(A1),"",INDEX(C:C,SMALL(D:D,ROW(A1)))) という数式を入れ、E2・D2セルを範囲指定しD2セルのフィルハンドルでダブルクリック 又はオートフィルで下へずぃ~~~!っとコピーします。 このE列に表示されたデータをリスト表示の元の値の範囲に指定すれば良いわけですが、 別Sheetをそのまま範囲指定は出来ないと思いますので E列のリストの「元の値」にしたいセルを範囲指定し、名前定義します。 仮にその範囲を「リスト」と名前定義したとすると、 Sheet2のE列を範囲指定し、リストの「元の値」の欄に =リスト としてOK これでC項・D項にデータが表示されるとSheet1のE列の範囲指定した部分が リスト表示されると思います。 以上、長々と書きましたが 参考になれば幸いです。m(__)m
お礼
早速のResありがとうございました!! 内容を理解するのにちょっと時間がかかりましたが、思ってる物に成りそうです(^。^) スマートな回答本当にありがとうございました。 今後ともよろしくお願いします。
- keithin
- ベストアンサー率66% (5278/7941)
Step1 入力規則で表示されるリストを可変にする。一つのセルの選択によって。 あるA1セルに「肉類 野菜 果物」の3択の入力規則があり,隣のB1の選択肢を肉なら「鳥 牛 豚」に,野菜なら「ねぎ 白菜 大根」に差し替えさせる。 手順: 添付図のように対応表を用意。 B1:D1にはA1の記載内容で「肉類」と名前を定義(画面左上の名前ボックスを利用) B2:E2にはA2の記載内容で「野菜」と名前を定義 B3:C2にはA3の記載内容で「果物」と名前を定義 A1には入力規則のリストで =INDIRECT("Sheet2!A1:A3") を設定 B1には入力規則のリストで =INDIRECT(A1) を設定 Step2 2つのセルの選択によって あるA1を「あ い う」の3択とする あるB1に,「あ」なら「A B C」,「い」なら「A D E」,「う」なら「A B E」が選べるとする さらにあるC1に,「あ」で「A」なら,「あ」で「B」なら,「う」で「A」なら,と細かくリストを切り替えられるように準備する。 #メンドクサイですよ。先に言っておきますが。 実はしかし,単なるStep1のバリエーションです。 「あ」で「A」に対応する選択肢を入れたセル範囲に,「あ_A」という名前を定義 「あ」で「B」に対応する選択肢に,「あ_B」という名前を定義 以下同文で 「う」で「E」の選択肢に「う_E」と名前を定義 C1の入力規則は,リスト で =INDIRECT(A1 & "_" & B1) と設定しておくだけです。 またもし余力があれば,A1だけ選択してB1を未選択の状態,「あ_」という状態に対応するC1の選択肢の一覧に「あ_」の名前を定義,逆にA1未選択でB1選択の状態,「_A」などの状態に対応する選択肢の一覧に「_A」の名前を定義しておくなどの仕込みも,やれば出来ます。
お礼
早速のResありがとうございました!! 内容を理解するのにちょっと時間がかかりましたが、参考になりました。 今後ともよろしくお願いします
お礼
早速のResありがとうございました!! 内容を理解するのにちょっと時間がかかりましたが、思ってる物に成りそうです(^。^) 今後ともよろしくお願いします