Excelで作ったリストから、特定の文字を含むものを検出する方法です。
この方法を使えば
「この文字が入っているところをハイライト」
とかできます!
表示イメージ
例えばこんな感じ。
リスト上から「TBD」を含むものを、黄色でハイライトしています。
ちなみに例では前後に文字が入っていても、「TBD」を含んでいれば検出されますが
- 含むとき
- 前方一致
- 後方一致
- 完全一致
は、条件の設定次第で変更できます。
やりかた
このようなリストがあるとします。
この時、隣の列などに検索用の列を用意します。
そこに
=COUNTIF($B3,"*TBD*")
をセットします。
すると、データが"TBD"に一致するものは「1」、そうでないものは「0」となります。
コレを条件付き書式で色を付けてあげると……
このように「TBD」を含むセルのみハイライトされます!
データが入っているか?検出する一覧
このように、「データ列の値をサーチし、ある値が入っているか?」をリスト化することもできます。
この場合
=COUNTIF($B3,"*"&C$2&"*")
という式をC3セルに入力し、C3~D17に展開しています。
検索条件を「C$2」で見る事で、C2,D2のタイトル部分が検索対象となります。
なので「これと一致しているデータか?」を表すリストを作ることができます。
使用している関数(式)について
今回使用している、「COUNTIF」関数は、次のように記述します。
=COUNTIF(検索対象のセル, 検索条件文字列)
検索条件文字列を、検索対象のセルからサーチし、ヒットした数を出力する関数です。
「検索対象のセル」は、1セルから複数セルまで選択が可能です。
なので今回の場合、リストの1データずつ検索してあげることで
「このセルは、この検索条件とマッチするか?」
を判定してもらうことができます。
なので
- ヒットした場合:1
- しなかった場合:0
ということになるわけですね。
条件の設定
前述の例では、「含むとき」でしたが、それぞれの条件設定方法はコチラ。
それぞれを参考に、検索条件文字列にセットすればOKです。
含むとき
"*<文字列>*"
前方一致
"*<文字列>"
後方一致
"<文字列>*"
完全一致
"<文字列>"
弱点
この処理の弱点は、
完全一致での検索以外は、関係ないデータを検出してしまう場合がある
ということです。
例えば「○○ ID」のように、「何かのID」という名称を検索したい!
と思っている中で「ANDROID」のような文字列がリスト内にあれば、検出してしまいます。
その辺は作り込むときに、うまいこと考えてあげないといけないポイントですね。
あとがき
コレを使えば、リスト化したデータから、一定の条件に一致するものを検出することができます。
そもそもCOUNT系の関数は、数を数えることが目的ですよね。
でもこういう風に視点を変えて使って見ると、色々な使い方ができますね……
普段考え付かないだけで、思わぬ関数が思わぬ効果を発揮するかもしれませんね(笑)
プログラミングができる方は、PythonでExcelを操作したりもオススメです!