セル内の文字を検索するには
検索と置換機能では元のデータが保持されませんが、元のデータを保持するには関数を使用するとよいでしょう。指定された文字列を他の文字列の中で検索するには、文字列操作関数、SEARCH関数、またはSEARCHB関数を使用します。大文字と小文字は区別されません。
はじめに
SEARCH 関数および SEARCHB 関数は、指定された文字列を他の文字列の中で検索し、その文字列が最初に現れる位置を左端から数え、その番号を返します。全角、半角問わず、1文字を1としてカウントするにはSEARCH関数、全角を2バイト、半角を1バイトとしてカウントするにはSEARCHB 関数を使用します。
SEARCH 関数および SEARCHB 関数では、大文字と小文字は区別されません。 大文字と小文字を区別して検索を行うには、FIND 関数および FINDB 関数を使用します。
SEARCH(検索文字列,対象,[開始位置])
SEARCHB(検索文字列,対象,[開始位置])
SEARCH 関数と SEARCHB 関数の書式には、次の引数があります。
- 検索文字列
- 必ず指定します。 検索する文字列を指定します。
- 半角の疑問符 (?) または半角のアスタリスク (*) をワイルドカード文字として使用できます。 ワイルドカード文字の疑問符は任意の 1 文字を表し、アスタリスクは 1 文字以上の任意の文字列を表します。 ワイルドカード文字ではなく、通常の文字として疑問符やアスタリスクを検索する場合は、その文字の前に半角のチルダ (~) を付けます。
- 検索文字列 が見つからないときは、エラー値
#VALUE!
が返されます。
- 対象
- 必ず指定します。 検索文字列引数に指定した値を含む文字列を指定します。
- 開始位置
- 省略可能です。 検索を開始する位置を指定します。
- 省略すると、1 を指定したと見なされます。
- 0 (ゼロ) 以下の整数を指定した場合、または開始位置が対象の文字数よりも大きい場合は、エラー値
#VALUE!
が返されます。
たとえば、"printer" という語で文字 "n" の位置を検索するには、次の関数を使用できます。
=SEARCH("n","printer")
"n" は "printer" という語で 4 番目の文字であるため、この関数は "4" を返します。
他の単語に含まれる単語を検索することもできます。 たとえば、次の関数は
=SEARCH("base","database")
検索文字列「base」が「database」という単語内で5文字目から始まるため、 5を返します。
SEARCH関数とSEARCHB関数を使用して、別のテキスト文字列内の文字またはテキスト文字列の位置を決定し、MID関数とMIDB関数を使用してテキストを返したり、REPLACE関数とREPLACEB関数を使用してテキストを変更したりすることができます。
A | B | C | |
---|---|---|---|
1 | データ | 説明 | 数式結果 |
2 | Statements | A2セルの6番目の文字以降に現れる最初の"e"の位置 | 7 |
3 | Profit Margin | A3セルの"Margin"(A4セル参照)の位置 | 8 |
4 | margin | A3セルの"Margin"を"Amount"に置換 | Profit Amount |
5 | The "boss" is here. | A3セルで、最初のスペース文字に続く最初の4文字を返す | Marg |
6 | セルA5の最初の二重引用符(")の位置を返す | 5 | |
7 | A5セルの二重引用符(")で囲まれた文字を返す | boss |
指定した文字の位置を検索する
A2セルの6番目の文字以降に現れる最初の"e"の位置
- 検索文字列:"e"
- 対象:A2セル
- 開始位置:6
Statement には e が二つあります。最初のeは5文字目にあります。6文字目以降のeは何文字目に位置するか求めると、7文字目が返されます。
=SEARCH("e",A2,6)
A3セルの"Margin"(A4セル参照)の位置
- 検索文字列:A4セル
- 対象:A3セル
- 開始位置:省略
Profit は6文字、その後がスペース1文字、その次の位置なので「8」が返されます。
=SEARCH(A4,A3)
A5セルの最初の二重引用符(")の位置を返す
=SEARCH("""",A5)
REPLACE関数を組み合わせて文字を置き換える
A3セルの"Margin"を"Amount"に置換
A4セルにはmarginという文字列が入っています。このセルを参照して、その開始位置を求めるためにSEARCH関数を利用します。その開始位置から6文字をAmountに置き換えます。
=REPLACE(A3,SEARCH(A4,A3),6,"Amount")
MID関数を組み合わせてテキストを抜き出す
A3セルで、最初のスペース文字に続く最初の4文字を返す
=MID(A3,SEARCH(" ",A3)+1,4)
A5セルの二重引用符(")で囲まれた文字を返す
=MID(A5,SEARCH("""",A5)+1,SEARCH("""",A5,SEARCH("""",A5)+1)-SEARCH("""",A5)-1)
コメント
※技術的な質問はMicrosoftコミュニティで聞いてください!