電子書籍の厳選無料作品が豊富!

A1のセルに、
"Android"という文字列が含まれていると、"Android"と表示し、
"iPhone"という文字列が含まれていると、"iPhone"と表示し、
どちらも含まれていないと、空白になるようにしたいです。

関数で以下を作りましたが、これだと"Android"の場合は正常に"Android"と表示するのですが、
iPhoneが含まれていても#VALUEと表示されてしまいます。どうすればよいでしょうか?

 =IF(FIND("Android",A1,1)>=1,"Android",IF(FIND("iPhone",A1,1)>=1,"iPhone",""))


エクセルのバージョンは2003で、OSはWindows7(64bit)です。

宜しくお願いします。

A 回答 (8件)

=IF(ISERROR(FIND("Android",A1,1)),IF(ISERROR(FIND("iPhone",A1,1)),"","iPhone"),"Android")



とするか、あるいは

=IF(COUNTIF(A1,"*Android*"),"Android",IF(COUNTIF(A1,"*iPhone*"),"iPhone",""))

とするかですね。

ちなみに後者の式だと大文字小文字は区別されません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

COUNTIF、シンプルで分かりやすいです。
ありがとうございました。
大文字小文字は区別する必要ありませんので、大丈夫です。

お礼日時:2013/05/28 08:36

No.5の方へ


質問は完全一致ではなく部分一致ですよ。
    • good
    • 0

何度もごめんなさい、No.6 ですが、つまらないミスしました。

「空なら空、Android なら…」と書きましたが、空文字列のときだけは、「0」と表示してしまいます。それを(数式の力だけで)防ぐには、次のように書く必要があります。間違えてすみません。

=if(a1="","",a1)
    • good
    • 0

あ、しまった。

No.5 ですが、いちばん簡単な数式を書くの忘れました。次式で、空なら空、Android なら Android、iPhone なら iPhone と表示されます。

=a1
    • good
    • 0

まだ回答として出てない数式の例をいくつか。

どれでもお好きなのを。2003 だそうですから IFERROR 関数は使えませんね。

=if(a1="","",lookup(a1,{"Android","iPhone"}))
=choose(1+(a1="Android")+2*(a1="iPhone"),"","Android","iPhone")
=choose(1+if(a1="",,match(a1,{"Android","iPhone"},)),"","Android","iPhone")
=IF(count(FIND("Android",A1,1)),"Android",IF(count(FIND("iPhone",A1,1)),"iPhone",""))
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

A1には、例えば、以下のような文字列があり、その中に「Android」や「iPhone」が含まれているか、ということです。
質問の仕方が悪く、すみませんでした。

■A1セルの例
Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B329

お礼日時:2013/05/28 08:48

=IF(ISERROR(FIND("Android",A1)),"","Android")


&IF(ISERROR(FIND("iPhone",A1)),"","iPhone")
改行も含めて丸々コピーして
数式バーに貼り付け下さい。

単純ですよね?
条件が増えたなら&IFから行末までをもう1行足してしまうだけです。

0を何回足しても0のまま
これと一緒で
""を何回繋いでも""のまま
そういうことです。


如何でしょうか?
お役に立てていたならば幸いです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

この書き方だと選択肢が多くなっても見やすくなってよいですね。
助かります。ありがとうございました。

お礼日時:2013/05/28 08:42

一例です。


=IF(ISNUMBER(FIND("Android",A1)),"Android",IF(ISNUMBER(FIND("iPhone",A1)),"iPhone",""))
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
なるほど、エラーかどうかの判定を、数字かどうかで判断するのですね。ISERRORより分かり易いです。
ありがとうございます。

お礼日時:2013/05/28 08:40

FIND関数は含まれていない場合にはエラーとなって#VALUEが表示されます。


そこで、あなたと同じ内容の式にするとしたら次のような式にすることでしょう。
なお、AndroidやiPhoneの文字が全角や半角の場合でも適用できるようにするためにASC関数を使って半角文字に統一してから含まれているかどうかを調べています。

=IF(NOT(ISERROR(FIND("Android",ASC(A4),1))),"Android",IF(NOT(ISERROR(FIND("iPhone",ASC(A4),1))),"iPhone",""))
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

お礼日時:2013/05/28 08:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!