みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルなドロップダウンリストで検索

エクセル2003で表を作成しました
複数のドロップダウンリストが有ります
その値が一致した物だけを別に作成したリストから抽出し別セルのドロップダウンリストで表示させる事は可能ですか
抽出用のリストに
田中千葉県千葉市
田中千葉県銚子市
田中東京都狛江市
山田千葉県習志野市
と有ったとします
複数のドロップダウンリストで何もしない時は
全てがドロップダウンリストに表示され
田中 空白 空白
の時は
田中千葉県千葉市
田中千葉県銚子市
田中東京都狛江市
が表示され
田中 千葉 空白
の時は
田中千葉県千葉市
田中千葉県銚子市
が表示される

千葉 空白 空白
の時は
田中千葉県千葉市
田中千葉県銚子市
山田千葉県習志野市
が表示される

ドロップダウンリストのセルは結合してます
抽出されドロップダウンリストから選ばれた値は別のセルで利用してます

ドロップダウンリストが非常に長くなってしまい
選びたい値を絞りたいのです
上記の内容を複数の行でしたいのです。こんな事は可能ですか

投稿日時 - 2011-06-20 15:33:36

QNo.6823151

困ってます

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

残念ながらExcel2003以前では数式では無理です。2007以降ならできると思うのですが。
データを入力する行数が255件以内ってことならできなくはないですが。

検索リストが256件以内だったらシートをいくつかに分けて数式で可能でした
その簡易版(最大80件程度)。というか、先の回答の横に広げたもの。
今回の場合、役に立ちませんが、何らかの役に立つかもってことでの回答。

L2セルに (対象を絞る)
=SUM(K2,0+AND(FIND($A2,INDEX($F$2:$F$7,COLUMN(A1))&$A2)=1,ISNUMBER(FIND($B2,INDEX($F$2:$F$7,COLUMN(A1)))),ISNUMBER(FIND($C2,INDEX($F$2:$F$7,COLUMN(A1))))))
Q2セルまでオートフィル

S2セルに (連番)
=IF(MAX($L2:$Q2)>=COLUMN(A1),COLUMN(A1),"")
X2セルまでオートフィル

Z2セルに
=IF(S2="","",INDEX($F$2:$F$13,MATCH(S2,$L2:$Q2,0)))
AEセルまでオートフィル
L2:AE2セルを下へオートフィル

D2セルを選択して
名前の定義 参照リスト
=$Z2:INDEX($Z$2:$AE$2,$Q2)

D2セルで入力規則 リスト =参照リスト

マクロの場合はどのように考えていけばよいか、得意ではないので自信はないですが
1件のレコードに対し、抽出 入力規則の設定 を繰り返すのではないかと思われます。
抽出されたリストが256件以内なら、当方でもなんとか対応できそうですが、、、
自信はないです。

#乗りかかった船で、回答もないようなので回答しましたが、ファイルを掲載するのは控えたほうが良いと思います。

投稿日時 - 2011-06-22 07:43:07

ANo.4

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.3

抽出用のリストは何件程度で、抽出されると何件くらいになるのでしょうか?
先の回答を横型にすればできるのか、マクロを使って対処しないといけないのかにかかわります
マクロは得意じゃないので回答できないかもしれません

投稿日時 - 2011-06-21 14:12:30

補足

何度も、すみません
抽出用のリストは350件程です。

投稿日時 - 2011-06-21 23:21:21

ANo.2

入力規則の部分、一部修正です。今後の方のために、全部載せます

E列に対象リスト

F2セル 当てはまると+1 (TRUEを数値化すると1になることを利用)
=SUM(F1,0+AND(FIND($A$2,E2&$A$2)=1,ISNUMBER(FIND($B$2,E2)),ISNUMBER(FIND($C$2,E2))))

G2セル 連番と数量処理(行番号で連番を作成している)
=IF(MAX(F:F)>=ROW()-1,ROW()-1,"")

H2セル 抽出されたリスト(検索/行列系)
=IF(G2="","",INDEX(E:E,MATCH(G2,F:F,0)))

F2:H2セルを下へオートフィル

[Ctrl]+[F3]名前の定義
名前:参照リスト
参照範囲 =$H$2:INDEX($H:$H,MAX($F:$F)+1)

A4セル~に([Alt]+[D][L])入力規則 - リスト
=参照リスト

E:H列をコピーして別シートへ取り付け可能

イマイチ 意味不明なところもあるので たたき台
とりあえず「千葉」さんには対応してみました。

投稿日時 - 2011-06-20 18:26:39

補足

すいません、説明が悪かった様ですのでデータをアップし後に補足しますので宜しくお願いします

投稿日時 - 2011-06-20 18:37:08

ANo.1

E列に対象リスト

F2セル 当てはまると+1
=SUM(F1,0+AND(FIND($A$2,E2&$A$2)=1,ISNUMBER(FIND($B$2,E2)),ISNUMBER(FIND($C$2,E2))))

G2セル 連番と数量処理
=IF(MAX(F:F)>=ROW()-1,ROW()-1,"")

H2セル 抽出されたリスト
=IF(G2="","",INDEX(E:E,MATCH(G2,F:F,0)))

F2:H2セルを下へオートフィル

[Ctrl]+[F3]名前の定義
名前:参照リスト
参照範囲 =$H$2:INDEX($H:$H,MAX($F:$F)+1)

A4セル~に [Alt]+[D][L]入力規則 - リスト
=参照範囲

E:H列を別シートへ切り取り張りOK

イマイチ 意味不明なところもあるので たたき台
とりあえず「千葉」さんには対応してみました

マルチメディアファイルは削除されたか見つかりません。

投稿日時 - 2011-06-20 17:02:45

補足

http://firestorage.jp/download/f9d74f17ac4c3c3cd3d39c6e5a3087fb68399374
にデーターをアップしました
エクセル内にコメントと補足記載して起きましたので
説明下手ですが通じると助かります。
データーアップしましたが回答を無理強いする気は有りませんので
気が向いたら手が空いていましたらで結構ですが宜しくお願い致します。

投稿日時 - 2011-06-20 19:12:39

あなたにオススメの質問