• ベストアンサー

エクセルでリストから検索した時の複数候補の表示方法

エクセルでの質問です。 例えばですが、 A1 あい A2 あいこ A3 あかね とセルに入力してあり、B1に“あい”と入力すると検索結果として“あい”と“あいこ”を複数候補としてリスト表示してくれて、“あか”と入力すれば“あかね”が候補表示されるものを作りたいのですが、たいした知識もないため、アイディアがうかびません。 皆様のお知恵をお貸しください。

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

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

No1です。 >1.文字入力(2~3文字入力)をしEnterを押すと、その文字に該当する候補をドロップダウンリストで表示したい。 条件を入力するセルと入力後に条件にあったリストを表示させるセルが同じセルということでしょうか。 条件を入力するときは入力規則がかかっていない(入力規則がかかっていれば、リスト内の値しか入力できない) 入力してEnterすると、入力規則がかかる(VBAで出来そうですが) 次に、条件を入れるときは入力規則の解除を行う(別途、入力規則解除のボタンを操作する) 上記の事が難易度が高いでしょう。 こんな感じのシートはVBA駆使すれば出来そうな気がしますが?(経験はないです) ただ、先に紹介した方法で、別シートに   A  B 1 条件 2 表示 B1セルに、条件(例えば あ とか あい と)入れると B2セルには入力規則があって、B2セルで指定した文字を含む値しかリストに出ない。 これには、応用が出来ると思います。No4の方の方法も同様です。 条件を入れるセルと条件にあったリストの入力規則で選択するセルが分かれますが、この方が使い易くないでしょうか。 >2.そのリストからどれを使うのかをマウスで選択する(できれば十字キー上下で選択しEnterで確定したいのですが)とそのセルに入力される。 >3.入力文字は“あい”限定ではなく文字や数字すべてに対応してほしい。 のご希望は満たしていると思います。

sironiba
質問者

お礼

返信ありがとうございます。 同セルで行うにはVBAでやらなければいけないのですね。 アイディアというか考え方を教えていただけて大変感謝しております。 何を調べればいいかもわかってきましたのでこれをもとにあとは自分で勉強し完成を目指したいと思います。 回答してくださった皆様この場をお借りして御礼申し上げます。このたびはありがとうございました。

その他の回答 (4)

  • n_na_tto
  • ベストアンサー率70% (75/107)
回答No.4

【作業列2つ利用】 ____A_B__C____D___E 1□□あい□1□あい□あいこ□□あい 2□あいこ□2□□□□□□□□あいこ 3□あかね□ □□□□□□□□きあい 4□きあい□4□□□□□□□□□□□ 5□てあか□ □□□□□□□□□□□ C1に検索文字列入力,D1に入力規則:リスト の場合 B1 =IF(COUNTIF(A1,"*"&C$1&"*"),ROW(A1),"") 下方向・↓ D1 入力規則:リスト▼:元の値: =OFFSET($E$1,,,COUNT(B$1:B$50)) E1 =IF(ROW(E1)>COUNT(B$1:B$50),"",INDEX(A$1:A$50,SMALL(B$1:B$50,ROW(E1)))) 下方向・↓ 【作業列1つ利用・欠点:処理が重い】 ____A__B____C___D 1□□あい□あい□きあい□□あい 2□あいこ□□□□□□□□あいこ 3□あかね□□□□□□□□きあい 4□きあい□□□□□□□□□□□ 5□てあか□□□□□□□□□□□ B1に検索文字列入力,C1に入力規則:リスト C1 入力規則:リスト▼:元の値: =OFFSET($D$1,,,50-COUNTBLANK($D$1:$D$50)) D1 =IF(ROW(D1)>COUNT(FIND(B$1,A$1:A$50)),"",INDEX(A$1:A$50,SMALL(IF(ISNUMBER(FIND(B$1,A$1:A$50)),ROW(A$1:A$50)),ROW(D1)))) Ctrl+Shift+Enter同時押し 下方向・↓

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.3

◆「フィルタ」による方法です 1)A1に「項目行」を設けます(例えば、「名前」とします) 2)データは、A2以下に入力します 3)メニューバーの「データ」→「フィルタ」を選択して 4)「名前」の右の▼をクリックし、リストの(オプション)を選択します 5)「抽出条件」に「あい」と入力して、その右に「を含む」を選択して、OK

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

オートフィルタ機能を利用する方法は如何でしょうか。 又、別シートに抽出する場合は、「フィルタオプションの設定」を利用する事で可能です。 例えば、対象リスト範囲をオートフィルタ後、フィルタボタン→オプション→「あい」、「を含む」で複数抽出ができます。 尚、操作例は、「オートフィルタ」をキーワード検索すればたくさん表示さますのでそちらを参照下さい。

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

作業列使用しますが、D1セルに あい とか あかね とか入力するとして B列に =IF(COUNTIF(A1,"*"&D$1&"*"),ROW(),"") 下へコピィ D1セルの文字が含まれる場合に その行番号が表示される。 C列に =INDEX(A:A,SMALL(B:B,ROW(A1))) 下へコピィ D1が空白の場合は、全て表示 あい の場合は 2行表示すると思います。 エラー処理入れると =IF(ISERROR(SMALL(B:B,ROW(A1))),"",INDEX(A:A,SMALL(B:B,ROW(A1)))) で下までコピィします。

sironiba
質問者

お礼

早速のご回答ありがとうございます。 質問の仕方が悪かったようで申し訳ありません。 質問の補足をさせていただきますと、 1.文字入力(2~3文字入力)をしEnterを押すと、その文字に該当する候補をドロップダウンリストで表示したい。 2.そのリストからどれを使うのかをマウスで選択する(できれば十字キー上下で選択しEnterで確定したいのですが)とそのセルに入力される。 3.入力文字は“あい”限定ではなく文字や数字すべてに対応してほしい。 というような機能にしたいのです。 明らかに大変な気がするのですが、この難易度がどのようなものかわかっておりませんので、無茶なことを言っておりましたらズバリご指摘ください。 申し訳ありませんがよろしくお願い致します。

関連するQ&A