正規表現をやっていて、ふと、そういえば「エクセルのフィルタとかカウントイフとかでワイルドカードって使えるのかしら?」と思った。
(いままでやったことがなかった)
1.フィルタ

上の表で「田」から始まる、でやってみる。
できた ↓

とにかく「田」を含む、でやってみる。
できた ↓

では、「?」任意の一文字、は使えるのか。
下の表で「田中~なにか一文字~子」を検索してみる。
田中D子、田中E子を抽出し、田中F美は抽出されない、という結果を出したい。

できた ↓

では、田中*(アスタリスク)子は検出できるのか。

「田中*子」だとやはり田中D子、田中E子、田中*子の3人が抽出されてしまう。
バックスラッシュなんか入れてみたらどうだろうか。バックスラッシュはここでは¥になった。
で、ダメだった。バックスラッシュはエスケープ文字ではないらしい。

ちなみにエスケープ文字とは「特別な意味を持つ文字の前におくと特別な意味が無効になる文字」のこと。(わわわ辞典より引用させていただきました)
エスケープ文字とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典 (i-3-i.info)
ここでは「*」が何文字でもいい何かの文字という意味を持つのでそれの意味を無効にして純粋に「*」を検索したい。
なんと、「~」(チルダ?)がエスケープ文字っぽいものになるらしい。
「~*」と、アスタリスクの前に「~」を置いてみる。
と、検索出来た。

こちらを参考とさせていただきました。
[Excel2007] 「*」「?」「~」が含まれる文字をオートフィルタで抽出する方法 (otsuka-shokai.co.jp)
ちなみに「~」は日本語の「へ」とべき乗の「^」のあるキーをシフトを押しながら押すと出ました。

2.カウントイフ
ではカウントイフではどうだろうか。
とにかく「田」を含む、でカウント。
COUNTIF(A2:A8″、”*田*”)
6件と出た。目的の検索ができた。

今度は「?」(なにか一文字)で「田中?子」を検索してみる。
ここで田中E子さんは田中EE子さんに変更して、カウントされないことを確認する
COUNTIF(A2:A8″、”田中?子”)
2件と出た。できたらしい。

今度は田中*子さんを検索したい。
「田中*子」だと、3件ヒットしてしまう。
「田中¥*子」だと、0件。
やはり「田中~*子」で目的の検索ができた。

エクセルのフィルタと関数では「*」などのワイルドカードが使えるということが分かった。そして逆に「*」等を検索したいときは「~」がエスケープ文字として使える、というとこを学習した。
はたしていつか役に立つ日が来るのだろうか。
お読みいただいた方、ありがとうございました!
コメント