ワイルドカードとは、ポーカーでいうジョーカーのように「他のあらゆるカードに代替できる」ようなカードのことをいいます。これが転じて不特定の文字列を意味するIT用語となりました。
これを使い、GoogleやYahooの検索欄のようなデータベース用の「検索窓」を作ってみたいと思います。
ワイルドカードの使い方
![wildcard1](https://sunagitsune.com/wp-content/uploads/2020/05/wildcard1.jpg)
とりあえず適当なデータベースを作りました。
![wildcard2](https://sunagitsune.com/wp-content/uploads/2020/05/wildcard2.jpg)
頭に㈱がついた会社の数を数えてみたいと思います。
![wildcard3](https://sunagitsune.com/wp-content/uploads/2020/05/wildcard3.jpg)
通常条件をつけて数を数えるにはCountIf関数を用いますが、=CountIf(A1:A5,”㈱”)では「A1~A5で「㈱」だけが入力されたデータの個数を求める」という意味になるので、数値は0になります。
![wildcard4](https://sunagitsune.com/wp-content/uploads/2020/05/wildcard4.jpg)
ところがこの㈱のあとに*(アスタリク)を付けてみると……。
![wildcard5](https://sunagitsune.com/wp-content/uploads/2020/05/wildcard5.jpg)
㈱+任意の文字列を条件にカウントされ、㈱から始まる会社の個数が判明しました。
こういう風に使えるのがワイルドカードです。””で囲む必要がある点に注意してください。*は文字数を問わず、何かしらの文字列を意味します。0文字も含みます。
こういう風に使えるのがワイルドカードです。””で囲む必要がある点に注意してください。*は文字数を問わず、何かしらの文字列を意味します。0文字も含みます。
![wildcard6](https://sunagitsune.com/wp-content/uploads/2020/05/wildcard6.jpg)
少し式を変えて、B1に入力された文字から始まる会社の数をカウントしてみます。
式としては=CountIf(A1:A5,B1 & “*”)となります。
式としては=CountIf(A1:A5,B1 & “*”)となります。
![wildcard7](https://sunagitsune.com/wp-content/uploads/2020/05/wildcard7.jpg)
結果、たとえば㈲を打ちこんでも、その個数をカウントできるようになりました。
![wildcard8](https://sunagitsune.com/wp-content/uploads/2020/05/wildcard8.jpg)
さらに検索欄を参照し、文字列の頭、終わりおよび、文中の一文字を参照できるようにします。
![wildcard9](https://sunagitsune.com/wp-content/uploads/2020/05/wildcard9.jpg)
式は=CountIf(A1:A5,”*” & B1 & “*”)となります。つまり最初にワイルドカードを付けただけです。
![wildcard10](https://sunagitsune.com/wp-content/uploads/2020/05/wildcard10.jpg)
これで「文字列のどこに打ちこんだ文字があっても」検索の対象とすることができるようになりました。
ここまでを要約すると、*康*で検索すれば徳川家康も筒井康孝も康熙帝もひっかかる、という話です。
ここまでを要約すると、*康*で検索すれば徳川家康も筒井康孝も康熙帝もひっかかる、という話です。
![wildcard11](https://sunagitsune.com/wp-content/uploads/2020/05/wildcard11.jpg)
ワイルドカードには?というのもあり、これは任意の一文字を意味します。?ひとつで一文字、みっつで三文字です。
![wildcard12](https://sunagitsune.com/wp-content/uploads/2020/05/wildcard12.jpg)
したがって=CountIf(A1:A5,”㈱???”)には、㈱Cエンタープライズは文字数が多すぎるので含まれません。
あとひとつあるんですが、とりあえず*と?を目的に応じて使い分けられるようになれば、Excelでよく使うワイルドカードはマスターしたと言えます。
あとひとつあるんですが、とりあえず*と?を目的に応じて使い分けられるようになれば、Excelでよく使うワイルドカードはマスターしたと言えます。
ワイルドカードを使った検索窓の作成
![wildcard13](https://sunagitsune.com/wp-content/uploads/2020/05/wildcard13-650x184.jpg)
では、本題に入ります。社名の一部を窓に打ちこむと、担当者、電話番号、正確な社名が表示されるという機能を実装したいと思います。
![wildcard15](https://sunagitsune.com/wp-content/uploads/2020/05/wildcard15-650x169.jpg)
![wildcard16](https://sunagitsune.com/wp-content/uploads/2020/05/wildcard16-650x166.jpg)
何か打つと、ちゃんと関連した項目が表示されます。
![wildcard17](https://sunagitsune.com/wp-content/uploads/2020/05/wildcard17-650x148.jpg)
関数を下にコピーしていき、最初の文字列と参照列を変更して、電話番号と社名も表示できるようにします。
![wildcard18](https://sunagitsune.com/wp-content/uploads/2020/05/wildcard18-650x134.jpg)
もし検索窓が空白時は何も表示したくないのであれば、If文を使って=If(D2=””,””,”担当者:”&VlookUp(“*”&D$2&”*”,A$2:C$1000,2,FALSE))のように記述します。
![wildcard19](https://sunagitsune.com/wp-content/uploads/2020/05/wildcard19-650x132.jpg)
何か打ちこむとちゃんと表示されます。
基本的なデータベースの検索窓としてはこれで十分だと思いますが、一度にひとつしか表示できない仕様なので、検索方法があやふやだったり、同じ社名がふたつあったりすると不具合が出ます。その場合はもう少し改良を加えていく必要があるかと思います。
基本的なデータベースの検索窓としてはこれで十分だと思いますが、一度にひとつしか表示できない仕様なので、検索方法があやふやだったり、同じ社名がふたつあったりすると不具合が出ます。その場合はもう少し改良を加えていく必要があるかと思います。
![](https://sunagitsune.com/wp-content/uploads/2021/03/philatelist-1844080_1280-160x90.jpg)
Excel(エクセル):検索、置換
検索・置換関連の操作、関数、VBAまとめです。
検索・置換操作
検索の基本
検索をするには、ホームタブの右端あたりにある、
検索と選択から検索をクリックします。
検索画面を起動
Ctrl+F
またはショート...
![](https://sunagitsune.com/wp-content/uploads/2018/12/mathematics-1509559_1280-160x90.jpg)
関数・演算子・メソッド・プロパティ名から探すExcel/VBA(マクロ)使い方・組み合わせ方まとめ
こちらはExcelやメソッドの諸機能を、機能の名称から探せるまとめ記事です。
コメント