• ベストアンサー

助けて下さい。IF関数でSEARCH関数を使いとVALUE!を消す方法。

エクセル初心者の自分が、ネットや本を読んで、 式を作ったのですが、どうしてもVALUE!が出て困っています。 色々、調べてみたんですが、うまくいかないので、どうか お助け下さい。 エクセルのA2セルの中の特定の文字列を検索したくて SERCH関数とIF関数を組み合わせて以下の 式を作ったのですが、VALUE!と出てしまいます。 =IF(SEARCH("株式会社",A2),"1","0") どこが、問題なんでしょう? SERCHの結果はなければVALUE!がでるのでそれを偽と考え、 その場合は0が出るようにしたいのですが・・・。 どうか、お願いします、助けて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

内容を判定したい場合はIS関数を使います。 http://www.eurus.dti.ne.jp/~yoneyama/Excel/kansu/if_is.htm#is =IF(ISERROR(SEARCH("株式会社",A2)),0,1) ちなみに、特に理由がなければ「”1”」「”0”」などと文字として入力するよりも数値としておいた方が後々いいことが多いです。

jojo1742
質問者

お礼

お返事、遅くなりまして、すみません。 有難うございます。 関数の知識の絶対数が少ないことを 痛感しました。 勉強になりました。 有難うございます。 早速試してみます。

その他の回答 (6)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.7

見つからないときは、SEARCH関数はエラー(値)を返すのだから、 エラーかどうかを聞く関数ISERROR関数を思い出さないとだめ。知らなかったのだろうが。 例データ A列   B列 exelappiication 見つかった exelapplication 見つからない B2の式 =IF(ISERROR(SEARCH("exe",A2)),"見つからない","見つかった") B3の式 =IF(ISERROR(SEARCH("exc",A3)),"見つからない","見つかった") 見つかったとき何文字目かの数を出すなら 例 gexelapplication 2 B4の式は =IF(ISERROR(SEARCH("exe",A4)),"見つからない",SEARCH("exe",A4))

jojo1742
質問者

お礼

お返事、遅くなりまして、すみません。 有難うございます。 勉強になります。 早速試してみます。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.6

こんばんは! すでに色々回答が出ていますので 参考程度で・・・ =IF(ISNUMBER(FIND("株式会社",A2)),1,0) でもOKかと思います。 尚、エラー処理はしていません。 どうも失礼しました。m(__)m

jojo1742
質問者

お礼

お返事遅くなりまして、すみません。 有難うございます。 その方法もあるんですね。 考え方が、固まってました。 有難うございます。

  • yone_sk
  • ベストアンサー率34% (58/167)
回答No.5

皆さんのやり方で大体良いと思いますが (1)"株式会社"が固定なら   =IF(COUNTIF(A2, "*株式会社*"), "1", "0") (2)"株式会社"を動的にするなら   =IF(COUNTIF(A2, "*" & $B1 & "*"), "1", "0") (3)"1"、"0"が数値型でいいなら   =COUNTIF(A2, "*株式会社*")   ※セルの書式設定で文字列にすれば文字になりますが・・・ (4)天邪鬼な考え方   =IF(LEN(A2)=LEN(SUBSTITUTE(A2,"株式会社","")),"0","1")

jojo1742
質問者

お礼

お返事遅くなりまして、すみません。 有難うございます。 色々な方法を提案して頂きまして、 感謝です。 勉強になりました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

IF関数は理論式がTRUEのときには、また、FALSEのときには、ということで、理論式がエラーの場合にはFALSEのときの値とはならずにエラーが表示されます。 したがって、それを避けるためには次のような方法が取られますね。 一つは =IF(A2="","",IF(ISERROR(SEARCH("株式会社",A2)),0,1)) 一つは =IF(A2="","",IF(COUNTIF(A2,"*株式会社*")=0,0,1))

jojo1742
質問者

お礼

お返事遅くなりまして、すみません。 IF関数の根本が理解できていない見いでした。 有難うございます。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 >=IF(SEARCH("株式会社",A2),"1","0") SEARCH は、文字列の位置を探すものです。 あえて使うなら、このようになります。 =ISNUMBER(SEARCH("株式会社",A2))*1 文字列があるなしを調べるなら、COUNTIF 関数が使えます。 =(COUNTIF(A2,"*株式会社*")>0)*1

jojo1742
質問者

お礼

お返事、遅くなりまして、 すみませんでした。 そもそもの発想が間違っていたんですね。 有難うございます。 助かりました。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

ひょっとしたら、やりたいことは =COUNTIF(A2,"*" &"株式会社"&"*") ですみそうな気がしました。

jojo1742
質問者

お礼

お返事、遅くなりまして、すみません。 有難うございます。 まだ、関数の知識が乏しいこと 痛感いたしました。 勉強になります。

関連するQ&A