VBAを利用せずリストを予測候補表示(サジェスト機能)で絞り込む方法!エクセルのドロップダウンリスト(プルダウンメニュー)は便利なようで結構めんどい。。。 365・2019・2016・2013・2010・2007対応

目次

候補を絞り込む検索候補シート

続いて、先ほどデータベースシートで目的の文字列を含むデータがあれば、行番号が小さい順に検索候補を表示する、「検索候補シート」の設定です。

検索候補シート

「検索候補」シートには、「A列」に「=(INDEX(郵便番号!A:A,SMALL(郵便番号!C:C,ROW(A1)),1))」という数式を入れます。

関数の説明 INDEX関数

INDEX関数は、「=INDEX(参照範囲・ここでは郵便番号シートの地名,行番号,列番号)」という3つの引数を参照して値を返します。

参照範囲にしている「郵便番号」シートのA列で、指定する行のセル(行番号)指定する列(ここでは1、すなわちA列)の値を表示する設定しています。指定する行番号は次に説明するSMALL関数で取得しています。

関数の説明 SMALL関数

SMALL関数は、名前の通り範囲の中で小さい方から何番目かの数値を指定し、その数値を取り出します。

先ほどの数式の一部、「SMALL(郵便番号!C:C,ROW(A1))」は、「郵便番号」シートC列から、「蒲田」が含まれるセルがあれば行数を表示させていますので、「検索候補」シートの「A1」には、「郵便番号」シートのC列で「ROW(A1)」(1番小さい値)を取得します(ここでは7という行番号)。

同様に「検索候補」シートのA2セルには「SMALL(郵便番号!C:C,ROW(A2))」 で2番目に小さい8行目の「蒲田本町」を、A3セルには「SMALL(郵便番号!C:C,ROW(A3))」と3番目に小さい12行目の「西蒲田」が表示されます。

「=(INDEX(郵便番号!A:A,SMALL(郵便番号!C:C,ROW(A1)),1))」の数式の意味を言葉で説明すると、「検索候補」シートのA1セルには「郵便番号」シートの中で「予測検索」シートのA2セルに入力された文字列を含むセルの行数で一番小さい行の地名を、「検索候補」シートのA2セルには、二番目に小さい行の地名を、とエラーが出るまで繰り返しています。

候補になったデータを上詰めで表示していく
1 2 3 4 5

関連コンテンツ

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次