ITのえんぴつ

Google Blockly開発者ツールやIT・プログラミングを研究して発信するブログ

具体例で学ぶ!Excelで文字列を条件分岐「水色」なら2、「青色」なら3、それ以外は1を返す数式:IFとSEARCHの活用例

Excelを使ってデータを処理する際、特定の文字列を含むセルに応じて異なる値を返す必要がある場合があります。そのようなときに便利なのが、IF関数とSEARCH関数の組み合わせです。

今回は、以下の数式を例に、その仕組みと応用方法を詳しく解説します。

=IF(ISNUMBER(SEARCH("水色", E3)), 2, IF(ISNUMBER(SEARCH("青色", E3)), 3, 1))

数式の目的

この数式は、セルE3の内容に基づいて以下の値を返します。

  • E3に「水色」という文字列が含まれている場合、2を返す。

  • E3に「青色」という文字列が含まれている場合、3を返す。

  • 上記のいずれにも該当しない場合、1を返す。


関数の分解と説明

  1. SEARCH関数

    SEARCH("水色", E3)
    • SEARCH関数は、指定した文字列(ここでは"水色")がセル内のどの位置にあるかを返します。

    • 例えば、E3が「空は水色です」の場合、SEARCH("水色", E3)4を返します("水色"が4文字目から始まるため)。

    • もし"水色"が含まれていない場合、エラー値#VALUE!を返します。

  2. ISNUMBER関数

    ISNUMBER(SEARCH("水色", E3))
    • ISNUMBER関数は、引数が数値であるかどうかを判定します。

    • SEARCH関数が数値を返した場合(つまり、"水色"が含まれている場合)、TRUEを返します。

    • 逆に、SEARCH関数がエラー値を返した場合は、FALSEを返します。

  3. IF関数

    IF(ISNUMBER(SEARCH("水色", E3)), 2, ...)
    • IF関数は、条件式がTRUEの場合に指定した値を返し、FALSEの場合は別の値を返します。

    • この場合、ISNUMBER(SEARCH("水色", E3))TRUEであれば2を返し、FALSEであれば次の条件に進みます。

  4. ネストされたIF関数

    IF(ISNUMBER(SEARCH("青色", E3)), 3, 1)
    • 最初の条件で"水色"が含まれていない場合、次に"青色"が含まれているかを判定します。

    • "青色"が含まれていれば3を返し、含まれていなければ1を返します。

応用例

この数式は、条件分岐を簡潔に行うための基本構造としてさまざまな場面で応用できます。

例1: 商品カテゴリの分類

  • セル内のテキストに特定のキーワード(例: "果物", "野菜")が含まれている場合に、それに応じたカテゴリ番号を返す。

例2: 作業ステータスの自動判定

  • セル内のメモに"完了", "進行中", "未着手"といったキーワードが含まれている場合に、作業ステータスを判定。


注意点

  1. 大文字・小文字の区別

    • SEARCH関数は大文字と小文字を区別しません。

    • もし区別が必要な場合は、FIND関数を使用してください。

  2. エラー値の処理

    • この数式ではSEARCHの結果がエラー値の場合でもISNUMBERで判定しているため、安全に動作します。

    • エラー値を直接処理する場合は、IFERROR関数を併用することを検討してください。

  3. キーワードの順序

    • 条件は上から順に評価されます。

    • 複数の条件が成立する場合、最初に該当する条件の値が返されます。


まとめ

今回紹介したIF関数とSEARCH関数の組み合わせは、Excelでのテキスト処理や条件分岐を簡単に実現する強力な手法です。この考え方を応用することで、さまざまなデータ処理の効率化が図れます。

ぜひ、自分のデータに合わせて応用してみてください!