候補を絞り込む検索候補シート
続いて、先ほどデータベースシートで目的の文字列を含むデータがあれば、行番号が小さい順に検索候補を表示する、「検索候補シート」の設定です。
「検索候補」シートには、「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セルには、二番目に小さい行の地名を、とエラーが出るまで繰り返しています。
コメント
コメント一覧 (9件)
コメント失礼いたします。
予測候補表示の記事を拝見させていただきました。とても手順がわかりやすく、途中まで順調でしたが、最後の入力フォームシートのプルダウンリストが表示されず、設定した名前である『=検索候補』と表示されてしまいます。検索候補のシートには予測候補の表示はされている状態です。
シートが完成しない原因がわからず、解明できておりません。
原因がわかればお教えいただきたいと存じます。
Y様
コメントありがとうございます。
データの入力規則は設定されているでしょうか?
ご確認いただけたら幸いです。
早速のご返答ありがとうございます。
入力規則は設定済みとなっております。
また、名前の定義についてもOFFSET、COUNTを使用しておりますが、プルダウンによる候補が表示されません。
お返事ありがとうございます。
データ入力規則は
入力値の種類:リスト
元の値:検索候補(名前) とし、検索候補の定義にはOFFSET、COUNTを使用しております。
Y様
コメントありがとうございます。
そうであれは、名前の定義がうまくいっていない可能性があります。
名前の定義の数式をコメント欄に貼っていただけたら問題点が分かるかもしれません。
何卒よろしくお願いいたします。
お返事ありがとうございます。
名前の定義の数式をお送りいたします。
シート名については、データーベースシート=リストとなっております。
=OFFSET(検索候補!$A$1,0,0,COUNT(リスト!$B$1:$B$170))
ご確認のほどよろしくお願いいたします。
ご返信遅くなり申し訳ありません。
リストがB列になっている以外は問題ないように思えます。
後考えられる原因としては、セルが文字列等の設定になっていることくらいしか分かりません。
ご確認いただけたら幸いです。
何卒よろしくお願いいたします。
ご丁寧に対応いただきありがとうございます。
確認いたしましてセルの設定から見直したいと思います。
本当にありがとうございました。
またわからないことがあればご遠慮なくコメントいただけたらと思います。
何卒よろしくお願いいたします。