- ベストアンサー
Googleスプレッドシートで特定の文字列を検索する方法
- Googleスプレッドシートで特定の文字列を検索する方法について詳しく説明します。現在、特定のセルには「OK」または「予備」または空白が入力されており、別のセルでこの文字列を判定するために「OR」関数を使用しています。しかし、新たに「(改造済み)」という文字列が追加される可能性があるため、検索式に問題が生じています。例えば、Y14セルの値が「OK」の場合、SEARCH関数は「TRUE」を返しますが、「予備」の場合はエラーが発生します。この問題を解決するためには、条件分岐を追加する必要があります。
- まず、「SEARCH」関数で特定の文字列が存在するかどうかを判定します。例えば、「OK」という文字列がY14セルに存在する場合、SEARCH("OK", Y14)>0は「TRUE」を返します。しかし、「予備」という文字列がY14セルに存在しない場合、SEARCH("予備", Y14)はエラーを返します。そこで、条件文を使用して、「予備」という文字列がY14セルに存在するかどうかを判定します。条件文を使用すると、SEARCH関数の戻り値が「#VALUE!」である場合には「FALSE」を返すように設定することができます。
- 以下は検索式の修正例です。Y14セルの値が「OK」または「予備」を含み、かつ「改造済み」を含まない場合には「TRUE」を返し、それ以外の場合には「FALSE」を返します。=AND(OR(SEARCH("OK", Y14)>0, SEARCH("予備", Y14)>0), NOT(ISNUMBER(SEARCH("改造済み", Y14))))
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
先頭2文字で判定でいいなら =OR(LEFT(Y14,2)="OK",LEFT(Y14,2)="予備") 場所が不定なら =LEN(Y14)=LEN(SUBSTITUTE(SUBSTITUTE(Y14,"OK",""),"予備",""))
その他の回答 (2)
- bunjii
- ベストアンサー率43% (3589/8249)
>この場合はSEARCH("予備",Y14)はFALSEを返してもらいたいのですが、 SEARCH関数で検索文字列が対象文字列に含まれないとき#VALUE!エラーが返ります。 これを防ぐには対象文字列の後方に検索文字列を連結し、返り値が対象文字列の長さより大きいときFALSEを返すようにすれば良いでしょう。 =OR(SEARCH("OK",Y14&"OK")<LEN(Y14),SEARCH("予備",Y14&"予備")<LEN(Y14)) 但し、Excelでの検証なのでgoogleスプレッドシートで同等になるか否かは未確認です。
お礼
回答頂きありがとうございます。活用させていただきます。
- imogasi
- ベストアンサー率27% (4737/17069)
関数をネストして、ネストされる方(深い方)で「改造済み」を空白に置き換えて、今まで通りの関数に入れると、どうですか。 (括弧が半角か全角かを、データと関数式で、しっかりそろえてテストのこと。結果がおかしくて、苦労するので。) やっていることは、影響しないように、余分な部分を削除(””がそれ)して考える(判別する)。 エクセルでテスト A列 B列 C列 OK TRUE OK 予備 TRUE 予備 OK(改造済み) TRUE OK 予備(改造済み) TRUE 予備 B1の式 =OR(SUBSTITUTE(A1,"改造済み","")="OK",SUBSTITUTE(A1,"改造済み","")="予備") 1の式 確認のため =SUBSTITUTE(A1,"(改造済み)","") 式を下方向に複写。
お礼
回答頂きありがとうございます。活用させていただきます。
お礼
回答頂きありがとうございます。活用させていただきます。