注目キーワード
  1. RPA
  2. Tableau
  3. ブログ

【Countif】If関数で特定の文字列を含む・含まない条件設定

ecoslymeです。

 

エクセルExcel)で、特定の文字列を含む場合はこの数式を設定、含まない場合はこの数式を設定したいという場面はありませんでしょうか?

 

困っている人
If関数で文字列の中に「東京」という文字を含む場合に”○”を付けたいけど、うまくできない。。。
困っている人
If関数を使用してしまうと、ワイルドカード(*アスタリスク)が反応しない。。。

 

エクセルで関数の扱いに慣れてくると、エクセルでは何でもできる!と思う人も多いでしょう。

 

しかし、If関数の中でワイルドカード(*アスタリスク)を利用しようとすると、うまく反応してくれません。

 

ワイルドカードとは「*」を例とすると、「*東京*」と入力すれば「西東京」や「東京タワー」といった文字にも反応してくれる非常に便利な使い勝手の良い文字です。

 

この記事では、If関数でワイルドカード(*、?、~)を利用して、特定の文字列を「含む」場合と「含まない」場合にも反応する数式「Countif関数」をご紹介します。

 

この関数やテクニックを利用すると、新しいデータを更新しても欲しいデータに印が付くようになり、フィルタをかけてから印を付けるなどの手間が省かれます。

 

ベクター 死神

元データと結果

 

If関数の中で特定の文字を含む/含まないを確認する数式

それでは早速、IF関数の中で特定の文字を含むかどうかを確認する数式についてご紹介します。

 

ワイルドカードが鍵になってきます。

 

ワイルドカードについて

Countif関数と非常に相性が良いので、以下のワイルドカードの種類と意味についてはこの記事でも簡単にご紹介しておきます。

 

なお、ワイルドカードについては、別の記事で詳しく紹介したいと思います。

 

  • ワイルドカードの種類と意味
ワイルドカード読み方意味
*アスタリスク任意の0文字以上の文字列を検索
?疑問符任意の一文字を検索
~チルダ? や * の前にくっつけて、文字列中の「*」や「?」自体を検索

 

Countif関数との組み合わせで「含む」条件を使いこなす

これだけでは意味がわからないと思いますので、それではCountif関数についてもご紹介します。

 

以下のような表があり、B列とC列に”○”を付ける数式をご紹介します。

・A列:商品名

・B列:「デスク」という文字を含む場合、”○”を付ける

・C列:「高級」という文字を含まない場合、”○”を付ける

 

以下の数式をB2セルに入力してみましょう。

「 =IF(COUNTIF(A2,”*デスク*”),”○”,””) 」

 

IF関数のブロックとCountif関数のブロックについて説明します。

 

  • IF関数のブロック
=IF( COUNTIF ( A2 , “” * デスク * ” ),“○”,“” )
  • If関数の中にCountif関数
  • 真の場合
  • 偽の場合
  • ○を付ける
  • 空白にする

 

  • Countif関数のブロック
( COUNTIF ( A2, “*デスク*” ),
  • If関数の中にCountif関数
  • 範囲
  • 検索条件
  • 対象商品を選択
  • 「デスク」という文字があれば、”1″(真)になる

 

まず、IF関数の中に「 Countif ( A2 , “*デスク*” ) 」という数式が入っています。

 

なお、この数式だけをエクセルに入力すると、「1」という数字になります。

 

Countif関数の詳細に関しては以下の記事をご覧ください。

【エクセル】人数カウントに便利! Countif 関数の使い方を教えます

 

 

デスクという文字を含んでいれば、真の場合(○)となり、デスクという文字を含んでいなければ、偽の場合(空白)となります。

 

ワイルドカード(*)で「デスク」という文字を囲っているので、「〇〇デスク」とか「○デスク○○○○」という文字に反応します。

 

「○○デスク」という「デスク」の前に2文字だけある商品に限定したい場合は、「??デスク」とすればOKです。

 

数式を下の行へコピペすると、以下の表のように○がつきます。

 

Countif関数との組み合わせで「含まない」条件を使いこなす

次に、IF関数で特定の文字列を含まない場合の数式についてご紹介します。

 

上でご紹介した、特定の文字列を「含む」場合の数式を理解していれば非常に簡単です。

 

真の場合と偽の場合の数式を入れ替えればOKです。

 

具体的には、以下の数式を入力すればOKです。

「 =IF(COUNTIF(A2,”*高級*”),””,”○”) 」

 

 

「高級」という文字を含んでいれば空白にして、「高級」という文字を含んでいなければ”○”が付くようになっています。

 

下の行に数式をコピペすれば、以下の表のように○がつきます。

 

応用編

上の数式では、○か空白しか表示していませんが、この「”○”」や「”” ※空白」の部分に別の数式を入れることも可能です。

 

他の数式との組み合わせで、実務で利用できるエクセルの形にしてみましょう。

 

最後に

ベクター 喜び

いかがでしたでしょうか。

 

〇〇という文字列を含む場合この計算をして欲しい、とか身の回りでは意外と多いケースでした。

 

Countif関数を利用すればワイルドカードを利用できるということを頭の片隅に入れておけば、何かのときに役立つかと思います。

 

ちなみに、「デスク」という文字でフィルタしてから、別の列に”○”を付ける方法もありますが、これではデータが更新されるたびに同じ操作をしなければなりません。

 

ルーティンの業務であれば、予め数式を設定しておき、少しづつ効率化を測れるようにした方が努力が時短のために意味ある結果となります。

 

どんどんエクセルの知識を増やして、無駄な業務をなくしていきましょう。

世界最大級のオンライン学習サイトUdemy

エクセルスキルアップ!!

Udemyは、受講者数4,000万人の世界最大級オンライン学習プラットフォームです。

 

<Udemy内 講義の一例>

【初心者から上級者まで】1日で学べるエクセルの教科書 マスターコース

https://www.udemy.com/course/excel-start/

Excel VBA[第1弾](超入門)エクセルが自動で仕事する!マクロの魔法 文系・非IT職もできるプログラミング

https://www.udemy.com/course/excel23vba/

✔︎ まわりに内緒でエクセル技術力を大幅アップ!

  ⇨無駄な作業を早く終わらせて残業せずに帰れる!!

✔︎ E-Learningでいつでも、どこでも学べる!

  ⇨在宅ワーク中などに閲覧し、行動格差を広げよう!!

✔︎ 人気コース、評価が一目で分かる!

  ⇨コスパの高いコースがすぐ選べる!!

 

※「検索」で学びたいコースを入力してください