Excelには、「Ctrl + H」で検索と置換ウィンドウを開くことで、特定の文字列を別の文字列に置換する機能があります。

一方で、この置換機能では、すべての文字列が対象となり、特定の条件を満たす文字列だけを置換することはできません。そこで役立つのがSUBSTITUTE関数です。SUBSTITUTE関数も文字列を別の文字列に置換する機能ですが、関数なので、別の関数と組み合わせることができます。
SUBSTITUTE関数とは
SUBSTITUTE関数では、文字列に含まれる文字を別の文字に置換することができます。
関数 | 役割 |
---|---|
SUBSTITUTE(文字列,検索文字列,置換文字列) | 「文字列」の中で「検索文字列」があれば、「置換文字列」に変更する。 |
たとえば、以下のような番地のデータを「〇の〇の〇」という形式から「〇-〇-〇」に置換したい場合、セルC2に以下のように数式を入力します。検索文字列は「の」、置換文字列は「-」です。
=SUBSTITUTE(B2,”の”,”-“)

そうすると以下のように「3の5の3」が「3-5-3」になります。

セルC2の数式を下にコピーすれば、以下のようにすべての番地が「〇-〇-〇」に変わります。

ただし、このくらいのデータであれば、置換機能を用いても対応することができます。
SUBSTITUTE関数を使って条件に該当する文字列を置換する方法
では次に、SUBSTITUTE関数を使って少し複雑な条件の置換を行いたいと思います。
以下のような名簿があった場合を考えます。役職名の変更により、「営業部」の「主任」の社員の役職を「営業担当」に変更したいとします。この場合、「主任」を置換により「営業担当」に変えてしまうと、営業部以外の社員の役職名も変わってしまいます。そのため、ここはIFの条件式とSUBSTITUTE関数を使って置換を行いたいと思います。

まず、置換後の役職名を表示させる列を追加します。

セルD4に以下の数式を入力します。
=IF(B4=”営業部”,SUBSTITUTE(C4,”主任”,”営業担当”),C4)

数式 | 役割 |
---|---|
IF(B4=”営業部” | セルB4が「営業部」の場合を条件とする。 |
SUBSTITUTE(C4,”主任”,”営業担当”) | セルC4に「主任」という文字列があれば、「営業担当」に置換する。 |
,C4) | セルB4が「営業部」でなければ、セルC4の値をそのまま表示する。 |
そうすると、表の1行目の社員「田中 紘一」は「営業部」かつ「主任」なので、役職名は「営業担当」に変わります。

セルC4の数式を下にコピーすれば、「営業部」かつ「主任」の条件を満たす社員の役職名は「営業担当」に変更されます。なお、「営業部」ではない「主任」の社員については変更されていません。

このようにSUBSTITUTE関数を使うことで、特定の条件で柔軟に置換を行うことができます。
コメント