エクセルでデータを扱っていると、「特定の文字が含まれていたら別の文字を表示したい」「ある文字があれば計算を実行したい」「複数の条件で異なる値を返したい」といった場面に遭遇することはありませんか?
この記事では【Excel】エクセルで特定の文字が入っていたら特定の文字を返す・指定の値を返す・計算する(複数も・もしこの文字があれば)方法について解説していきます。
ポイントは
・IF関数とCOUNTIF関数で文字を検索して返す
・複数条件はIFS関数で効率的に処理
・VLOOKUP関数で柔軟に値を返す
です。
それでは詳しく見ていきましょう。
目次
エクセルで特定の文字が入っていたら特定の文字を返す方法1【IF関数とCOUNTIF関数の組み合わせ:部分一致】
エクセルで特定の文字が含まれているかを判定し、条件に応じて異なる値を返す最も基本的な方法が、IF関数とCOUNTIF関数を組み合わせることです。
IF関数で条件分岐を行い、COUNTIF関数で特定の文字が含まれているかを判定することで、柔軟な条件処理が可能になります。
例えば、以下のようなデータがあるとします。
このデータで「リス」という文字が含まれていたら「小動物」と表示したい場合、この方法を使えば簡単に実現できるでしょう。
解決方法
具体的な手順を見ていきましょう。
まず、判定結果を表示したいセル(例としてB2)に以下の数式を入力します。
=IF(COUNTIF(A2,”*リス*”)>0,”小動物”,””)
この数式は、A2セルに「リス」という文字が含まれていれば「小動物」と表示し、含まれていなければ空白を表示します。
COUNTIF関数の「*リス*」という部分がポイントです。「*」はワイルドカードと呼ばれ、任意の文字列を表します。つまり「*リス*」は「リスの前後に何か文字があってもOK」という意味になるわけです。
数式を下方向にコピーすれば、「シマリス」と「リスザル」に「小動物」と表示されます。
完全一致の文字列で処理したい場合
完全一致で判定したい場合(例として「リス」という文字列のみに反応させたい場合)は、ワイルドカードを外します。
=IF(A2=”リス”,”小動物”,””)
また、複数の文字のいずれかが含まれている場合は、OR関数を組み合わせます。
=IF(OR(COUNTIF(A2,”*リス*”)>0,COUNTIF(A2,”*ネズミ*”)>0),”小動物”,””)
この数式は「リス」または「ネズミ」が含まれていれば「小動物」と表示します。
エクセルで複数条件で異なる値を返す方法2【IFS関数で効率的に処理】
1つの条件だけでなく、複数の条件で異なる値を返したい場合もあるでしょうか?
そんな時に役立つのが、IFS関数を使った複数条件の処理です。
IFS関数を使えば、複数のIF文をネストせずに見やすく記述できます。
例えば、動物名に応じて異なる分類を返したい場合を考えてみましょう。
「リス」が含まれていたら「小動物」、「ロバ」が含まれていたら「家畜」、「キツネ」が含まれていたら「野生動物」、「インコ」が含まれていたら「鳥類」と表示したい場合に便利です。
解決方法
「ホーム」タブをクリックして、判定結果を表示したいセルに移動します。
【ここに図を追加】
B2セルに以下のIFS関数を入力します。
=IFS(COUNTIF(A2,”*リス*”)>0,”小動物”,COUNTIF(A2,”*ロバ*”)>0,”家畜”,COUNTIF(A2,”*キツネ*”)>0,”野生動物”,COUNTIF(A2,”*インコ*”)>0,”鳥類”,TRUE,”その他”)
IFS関数の構文は「=IFS(条件1,値1,条件2,値2,条件3,値3…)」となっています。
各条件を順番に評価し、最初に真となった条件の値を返すわけです。
最後の「TRUE,”その他”」は、どの条件にも該当しない場合に「その他」と表示するための記述です。
数式を下方向にコピーすれば、各動物名に応じた分類が自動的に表示されます。
IFS関数はExcel 2016以降で使用できます。古いバージョンの場合は、IF関数をネストして使用します。
=IF(COUNTIF(A2,”*リス*”)>0,”小動物”,IF(COUNTIF(A2,”*ロバ*”)>0,”家畜”,IF(COUNTIF(A2,”*キツネ*”)>0,”野生動物”,IF(COUNTIF(A2,”*インコ*”)>0,”鳥類”,”その他”))))
ただし、この方法は括弧が多くなり見づらいため、IFS関数が使える環境であればそちらを推奨します。
エクセルで特定の文字があれば計算する方法3【IF関数で条件付き計算】
特定の文字が含まれている場合に、値を返すだけでなく計算を実行したい場合もあるでしょう。
そんな時には、IF関数の中に計算式を組み込む方法が便利です。
IF関数の「真の場合」の部分に計算式を記述することで、条件に応じた計算結果を返すことができます。
例えば、以下のようなデータがあるとします。
「リンゴ」が含まれている商品は20%割引したい場合を考えてみましょう。
解決方法
「ホーム」タブをクリックして、計算結果を表示したいセルに移動します。
【ここに図を追加】
C2セルに以下の数式を入力します。
=IF(COUNTIF(A2,”*リンゴ*”)>0,B2*0.8,B2)
この数式は、A2セルに「リンゴ」が含まれていれば価格の80%(20%割引)を、含まれていなければ元の価格をそのまま表示します。
「B2*0.8」の部分が計算式で、条件が真の場合にこの計算が実行されるわけです。
数式を下方向にコピーすれば、「リンゴジュース」と「リンゴパイ」だけが割引された価格で表示されます。
より複雑な計算として、複数の条件で異なる割引率を適用することも可能です。
=IF(COUNTIF(A2,”*リンゴ*”)>0,B2*0.8,IF(COUNTIF(A2,”*バナナ*”)>0,B2*0.9,B2))
この数式は「リンゴ」なら20%割引、「バナナ」なら10%割引、それ以外は割引なしという処理を行います。
また、特定の文字が含まれている場合に固定値を加算・減算することもできるでしょう。
=IF(COUNTIF(A2,”*特別*”)>0,B2+100,B2)
この数式は「特別」という文字が含まれていれば価格に100円を加算します。
まとめ エクセルでもしこの文字があれば指定の値を返す・計算する(複数も・もしこの文字があれば)方法
エクセルで特定の文字が入っていたら特定の文字を返す・指定の値を返す・計算する方法をまとめると、IF関数とCOUNTIF関数の組み合わせでは特定の文字が含まれているかを判定しワイルドカード「*」を使って部分一致で検索でき、複数条件はIFS関数で効率的に処理すれば複数のIF文をネストせずに見やすく記述可能です。
また、IF関数で条件付き計算すれば特定の文字が含まれている場合に割引計算や加算減算を実行でき、OR関数を組み合わせれば複数の文字のいずれかが含まれている場合の処理も可能になります。
これらの方法を状況に応じて使い分けていけば、ほとんどのケースで条件付きの値返し・計算問題を解決できます。
特にIF関数とCOUNTIF関数の組み合わせは最も基本的で応用範囲が広いため、まずこの方法をマスターすることをおすすめします。
ただし、COUNTIF関数での部分一致検索は大文字・小文字を区別しないため、厳密な判定が必要な場合は別の方法を検討することも大切でしょう。
エクセルの条件付き処理機能を正しく理解して、効率的なデータ加工を実現していきましょう!