Excelを使ってデータを処理する際、特定の文字列を含むセルに応じて異なる値を返す必要がある場合があります。そのようなときに便利なのが、IF
関数とSEARCH
関数の組み合わせです。
今回は、以下の数式を例に、その仕組みと応用方法を詳しく解説します。
=IF(ISNUMBER(SEARCH("水色", E3)), 2, IF(ISNUMBER(SEARCH("青色", E3)), 3, 1))
数式の目的
この数式は、セルE3
の内容に基づいて以下の値を返します。
-
E3
に「水色」という文字列が含まれている場合、2を返す。 -
E3
に「青色」という文字列が含まれている場合、3を返す。 -
上記のいずれにも該当しない場合、1を返す。
関数の分解と説明
-
SEARCH関数
SEARCH("水色", E3)
-
SEARCH
関数は、指定した文字列(ここでは"水色")がセル内のどの位置にあるかを返します。 -
例えば、
E3
が「空は水色です」の場合、SEARCH("水色", E3)
は4を返します("水色"が4文字目から始まるため)。 -
もし"水色"が含まれていない場合、エラー値
#VALUE!
を返します。
-
-
ISNUMBER関数
ISNUMBER(SEARCH("水色", E3))
-
ISNUMBER
関数は、引数が数値であるかどうかを判定します。 -
SEARCH
関数が数値を返した場合(つまり、"水色"が含まれている場合)、TRUE
を返します。 -
逆に、
SEARCH
関数がエラー値を返した場合は、FALSE
を返します。
-
-
IF関数
IF(ISNUMBER(SEARCH("水色", E3)), 2, ...)
-
IF
関数は、条件式がTRUE
の場合に指定した値を返し、FALSE
の場合は別の値を返します。 -
この場合、
ISNUMBER(SEARCH("水色", E3))
がTRUE
であれば2を返し、FALSE
であれば次の条件に進みます。
-
-
ネストされたIF関数
IF(ISNUMBER(SEARCH("青色", E3)), 3, 1)
-
最初の条件で"水色"が含まれていない場合、次に"青色"が含まれているかを判定します。
-
"青色"が含まれていれば3を返し、含まれていなければ1を返します。
-
応用例
この数式は、条件分岐を簡潔に行うための基本構造としてさまざまな場面で応用できます。
例1: 商品カテゴリの分類
-
セル内のテキストに特定のキーワード(例: "果物", "野菜")が含まれている場合に、それに応じたカテゴリ番号を返す。
例2: 作業ステータスの自動判定
-
セル内のメモに"完了", "進行中", "未着手"といったキーワードが含まれている場合に、作業ステータスを判定。
注意点
-
大文字・小文字の区別
-
SEARCH
関数は大文字と小文字を区別しません。 -
もし区別が必要な場合は、
FIND
関数を使用してください。
-
-
エラー値の処理
-
この数式では
SEARCH
の結果がエラー値の場合でもISNUMBER
で判定しているため、安全に動作します。 -
エラー値を直接処理する場合は、
IFERROR
関数を併用することを検討してください。
-
-
キーワードの順序
-
条件は上から順に評価されます。
-
複数の条件が成立する場合、最初に該当する条件の値が返されます。
-
まとめ
今回紹介したIF
関数とSEARCH
関数の組み合わせは、Excelでのテキスト処理や条件分岐を簡単に実現する強力な手法です。この考え方を応用することで、さまざまなデータ処理の効率化が図れます。
ぜひ、自分のデータに合わせて応用してみてください!