- みんなの回答 (3)
- 専門家の回答
みんなの回答
- nattocurry
- ベストアンサー率31% (587/1853)
シート2は使わずに、シート1でオートフィルタ機能を使って、条件を絞り込んでいくだけで、求めたい結果は得られると思うのですが、それでは駄目なのでしょうか?
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 一例です。 あくまで方法だけ理解してもらえれば良いかな!って思っています。 当方使用のExcel2003での場合です。 ↓の画像で説明すると・・・ Sheet1にリスト表示させるための表を別に作成しておきます。 そして、1行目の都道府県名が入っているセルを全て範囲指定 → 挿入 → 名前 → 定義 → 仮に 都道府県 と名前定義したとします。 (範囲指定の後に、直接名前ボックスに入力しても構いません) 次に各都道府県の2行目以降を範囲指定し、先ほど名前定義した名前で全ての都道府県に名前定義していきます。 北海道の場合は2行目以降を範囲指定 → 北海道 と名前定義 ・・・ そして、作業用の列も設けています。 作業列D2セルに =IF(COUNTBLANK(Sheet2!$A$2:$B$2),"",IF(AND(A2=Sheet2!$A$2,B2=Sheet2!$B$2),ROW(),"")) という数式を入れ、フィルハンドルの(+)マークでダブルクリック、またはオートフィルで下へずぃ~~~!っとコピーします。 Sheet2のA2セルをアクティブにし、 メニュー → データ → 入力規則 → リスト を選択し、「元の値」の欄に =都道府県 ← 先ほど名前定義したものを入力 B2セルも同様に入力規則のリストで「元の値」の欄に =INDIRECT(A2) としてOK これでA2セルでリスト表示されたものがB2セルのリスト候補になります。 最後にC2セルに =IF(OR(COUNTBLANK($A$2:$B$2),COUNT(Sheet1!D:D)<ROW(A1)),"",INDEX(Sheet1!C:C,SMALL(Sheet1!D:D,ROW(A1)))) という数式を入れ、オートフィルで下へコピーすると 画像のような感じになります。 以上、長々と書きましたが 参考になれば幸いです。m(__)m
お礼
スミマセン 海外出張ですくに行ってしまい お礼ができませんでした
- akiomyau
- ベストアンサー率43% (555/1280)
名前の定義とIndirect関数を使い、入力規則を設定してはどうでしょうか。 詳しくは下記のサイトを参照してみてください。 連動したドロップダウンリスト-INDIRECT関数 http://www.relief.jp/itnote/archives/000822.php
お礼
スミマセン 海外出張ですくに行ってしまい お礼ができませんでした