文字列の位置を特定したいFIND関数-GSS/Excel/関数
文字列の位置を特定したいFIND関数-GSS/Excel/関数
文字列内の検索を行うFIND関数
メールアドレスから「@」マークの位置を知りたい、商品コードから特定の文字の位置を特定したい、URLから特定の文字列の位置を調べたいなど、文字列操作において位置情報が必要になることってありますよね。
今回はFIND関数をご紹介します。FIND関数は文字列内で特定の文字や文字列が何文字目にあるかを教えてくれる便利な関数です。他の文字列関数と組み合わせることで、データの抽出や加工が格段に楽になります。
【サンプルデータの表示画像】
A列にメールアドレス、B列に商品コード、C列にファイルパスが入力されたスプレッドシートの例
今回のサンプルデータでは、A列にメールアドレス、B列に商品コード、C列にファイルパスが入力されています。これらの文字列から特定の文字の位置を調べる例を通してFIND関数を学習していきましょう。
FIND関数の構文
パラメータの詳細は以下の通りです:
- 検索文字列:探したい文字または文字列
- 対象文字列:検索を行う文字列
- 開始位置:検索を開始する位置(省略可能、デフォルト1)
基本的な使用例
具体的な例を見てみましょう。メールアドレス「yamada@company.com」から「@」マークの位置を調べる場合:
セル | 内容 | 説明 |
---|---|---|
A1 | yamada@company.com | 対象となるメールアドレス |
B1 | =FIND("@", A1) | @マークの位置を検索 |
結果 | 7 | 7文字目に@があることを示す |
この関数は「7」を返します。なぜなら「@」マークは文字列の7文字目に位置しているからです。
実践的な活用例(開始位置の指定)
開始位置を指定することで、より柔軟な検索が可能になります。例えば、ファイルパス「C:\Documents\Reports\2024\sales.xlsx」から2番目の「\」(バックスラッシュ)の位置を調べる場合:
最初の「\」は3文字目にありますので、4文字目から検索を開始することで2番目の「\」の位置(14文字目)を取得できます。
【実践例の表示画像】
A2セルに「C:\Documents\Reports\2024\sales.xlsx」、B2セルに=FIND("\",A2,4)が入力され、結果として「14」が表示されている例
エラーハンドリングとISNUMBER関数の活用
FIND関数は検索文字列が見つからない場合、#VALUE!エラーを返します。これを防ぐために、ISNUMBER関数やIFERROR関数と組み合わせて使用することが重要です:
また、特定の文字が含まれているかどうかを判定する場合は、ISNUMBER関数と組み合わせます:
この式は、@マークが含まれていればTRUE、含まれていなければFALSEを返します。条件分岐に活用できる便利なテクニックです。
他の文字列関数との組み合わせ
FIND関数は他の文字列関数と組み合わせることで真価を発揮します。例えば、メールアドレスからユーザー名部分(@より前)を抽出する場合:
関数の組み合わせ | 用途 | 例 |
---|---|---|
LEFT + FIND | @より前の文字列を抽出 | =LEFT(A1, FIND("@", A1) - 1) |
RIGHT + LEN + FIND | @より後の文字列を抽出 | =RIGHT(A1, LEN(A1) - FIND("@", A1)) |
MID + FIND | 特定の文字間の文字列を抽出 | =MID(A1, FIND("@", A1) + 1, 10) |
SEARCH関数との違いと使い分け
FIND関数と似た機能を持つSEARCH関数との違いを理解しておくことが重要です:
関数 | 大文字・小文字の区別 | ワイルドカード | 使用場面 |
---|---|---|---|
FIND | 区別する | 使用不可 | 厳密な検索が必要な場合 |
SEARCH | 区別しない | 使用可能 | 柔軟な検索が必要な場合 |
【FIND vs SEARCH比較例の表示画像】
同じ文字列「Apple」に対してFIND("a","Apple")とSEARCH("a","Apple")の結果の違いを示している例
まとめ
FIND関数の使い所
- 文字列内の特定の文字や文字列の位置を正確に知りたいとき
- 他の文字列関数と組み合わせてデータを抽出・加工したいとき
- 大文字・小文字を区別した厳密な検索が必要なとき
- 条件分岐で特定の文字の有無を判定したいとき
構文
実用的な例文
エラー対応:=IFERROR(FIND("@", A1), "見つかりません")
存在判定:=ISNUMBER(FIND("@", A1))
文字列抽出:=LEFT(A1, FIND("@", A1) - 1)
覚えておきたいポイント
- 大文字・小文字を区別することを理解して使用
- エラーハンドリングを必ず実装
- 他の文字列関数との組み合わせで活用の幅が広がる
- 開始位置の指定で複数の同じ文字にも対応可能
- SEARCH関数との使い分けを理解する
FIND関数をマスターすることで、文字列処理の効率が大幅に向上します。特にデータクレンジングや情報抽出の場面で威力を発揮しますので、ぜひ実際のデータで試してみて、使いこなせるようになってくださいね!