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

目次

予測候補表示(あいまい変換)に必要なシートは3つ

予測候補表示(あいまい変換)に必要なシートは3つあります。事前に準備が必要です。

具体的には、「予測候補表示に必要なデータベース」のシート、検索候補を表示する「検索候補」シートと最後に「入力フォーム」シートの3つです。

郵便番号データベースシート
検索候補を絞り込むシート
入力フォーム(予測変換)シート

今回利用する関数は、「IF」「ISERROR」「VLOOKUP」「INDEX」「ROW」「SMALL」の6つの関数です。

難しく感じるかもしれませんが、マスターすればきっと超便利な予測候補表示(あいまい検索)対応、ドロップダウンリスト(プルダウンリスト)が完成します。

予測候補表示(あいまい変換)に必要なデータシート

「郵便番号」データシート

まずは、普通の郵便番号データベースシートを用意します。「A列」に町名、「B列」に郵便番号です。

そして「C列」に数式を入力します。

ここで、ちょっと難しい関数を複数利用する必要があります。

C列(ここでは、データの個数である22個、C22セルまで)に下記の数式を入力します。

=IF(ISERROR(FIND(予測検索!$A$2,A1)),””,ROW)

上記のA1の部分は、C1セルに数式を入力して、セルのコピーをしてA22まで変化させてください。

関数の説明 IF関数

IF関数はご存知の方も多いと思いますが、「=if(論理式,論理式が正ならばどうするか,論理式が偽ならばどうするか)という、3つの引数が必要です。

関数の説明 ISERROR関数

IF関数の1つ目の引数にISERROR関数を利用しています。ISERROR関数は「true(真)」か「false(偽)」かの値を返します。ここでは、この後説明するFIND関数で文字列が見つかれば「true」を、見つからなければ「false」を引数として返します。

=iserror(論理式,真なら表示する値,偽なら表示する値)、となります。

今回は、エラー(文字列が見つからない)を真として””(空白)を表示、偽ならば(エラーでなければ)後で説明するROW関数でそのセルの行番号を表示する設定をしています。

関数の説明 FIND関数

FIND関数は、指定した文字列(ここでは、別シートの「予測検索」のA2セルに入力した文字列)があるかどうかを判定するために利用しています。

本来は、検索文字列が何文字目にあるかを返す関数ですが、今回は対象の文字列があるかどうかを判定するためだけに利用しますので、何文字目かの引数は省略しています。

=find(指定した文字列,検索対象セル(1行目はA1セル))として、文字列が見つかれば何文字目かを返し(エラーにならない)、文字列が見つからなければエラーを返します。

=find(予測検索!$A$2,A1)で、「予測検索シートのA2セル」の文字列(蒲田)が「郵便番号」シートのA1セル(からA22セル)に見つかれば「true」、見つからなければ「false」ということで先ほどのISERROR関数と連動しています。

関数の説明 ROW関数

ROW関数は、その名の通り行番号を返します。引数はありません。

どのような処理をしているかを言葉で説明すると

=IF(ISERROR(FIND(予測検索!$A$2,A1)),””,ROW)の関数の意味を言葉で説明すると、以下のような感じです。

=もし(エラーなら空白(””)にしてください、でも指定した文字列が対象セルから見つかればそのセルの行番号を教えてください)という感じです。

数文字入力した文字列が見つかれば行番号をC列に表示し、見つかれなければ空白にします。

「予測検索」シートに「蒲田」という文字を入力すると、A列に「蒲田」を含む行にはC列にその行番号を、含まない行は「」(空白)が表示されます。

これでデータベースシートは完成です。

1 2 3 4 5

関連コンテンツ

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

コメント

コメントする

CAPTCHA


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

目次