「文字列が最初に現れる位置の文字番号を返します。大文字、小文字は区別されません。」
先日紹介したFind関数とよく似ていますが、いろいろ違う動きをする関数です。
基本的な部分は Find関数 と同じなので、ここでは違いについてをメインにしましょう。
まず違うのは「大文字、小文字は区別されません」です。下の図を見てみましょう。


Search関数では大文字小文字どちらも同じ結果になっているのがわかると思います。なので、特にアルファベットの検索をするときには、目的に応じて使い分ける必要があります。
ちなみに、日本語のカタカナ、ひらがな、半角、全角はすべて別物として扱われます。

ヤ(全角カタカナ)とヤ(半角カタカナ)はエラーが返ってきていますね。Findもですが、見つからなかった場合はエラーが返ってきますので、それを利用してIf関数などに組み込むことも可能です。
もう一つの特徴は、ワイルドカードを使うことができる、ということです。下の図を見ていただけると早いですが、H列は「坊」で終わる単語を、K列は「坊」で始まる単語を、N列は「坊」が真ん中にある単語をSearch関数で探した結果です。一行目だけ、何を見つけてきたのかをそれぞれ横に表示しています。

H列の場合、3,4行目はセルが「坊」で始まっているので、対象外となりエラーになります。逆に7行目は「坊」で終わっているため、「坊?」ではエラーになりますが、「スペース+坊」として扱っているので、「?坊」では「坊」の前の半角スペースの位置を返します。
また、1行目でも、H列は「学坊」のため、「坊」の一文字前を返し、N列は「坊っ」のため、「坊」の位置を返します。
こういう特徴があるため、一部の記号の検索がFindとSearchで違います。それを理解して使い分ければ、かなり複雑な文字列制御も可能になるでしょう。