アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルで、住所に"北海道"が含まれていると、"北海道"と表示し、
"青森県"や"岩手県"などが含まれていると、"東北"と表示したいです。

以下の関数を作ったのですが、北海道のときは想定どおり"北海道"と表示されますが、
それ以外のときは#VALUE!になってしまいます。
どこが悪いでしょうか?

=if(find("北海道",A1)>0,"北海道",if(find("青森県",A1)>0,"東北",if(find("岩手県",A1)>0,"東北",if(find("宮城県",A1)>0,"東北",if(find("秋田県",A1)>0,"東北",if(find("山形県",A1)>0,"東北",if(find("福島県",A1)>0,"東北","該当なし")))))))

A 回答 (6件)

添付図参照



B2: =IF(ISERROR(VLOOKUP(LEFT(A2,3),D$1:E$48,2,FALSE)),VLOOKUP(LEFT(A2,4),D$1:E$48,2,FALSE),VLOOKUP(LEFT(A2,3),D$1:E$48,2,FALSE))
「エクセルのfind関数で、複数の条件」の回答画像5
    • good
    • 1
この回答へのお礼

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

自分から関数で質問しておいてなんですが、この方法でいきたいと思います。
関数だとあとで修正するときにカッコの場所で頭がパニックになりそうですし、VBAで組むと使いまわしが不便ですし、VLOOKUPが一番手軽で、修正も簡単でよいと思います。
ありがとうございました。

お礼日時:2011/04/01 19:09

あまりIFIFせずに,こんな風に束ねることも出来ます。


=IF(ISNUMBER(FIND("北海道",A1)),"北海道",IF(OR(ISNUMBER(FIND({"青森県","秋田県","岩手県","宮城県","山形県","福島県"},A1))),"東北",""))

式の中に一組だけふつーと違うカッコが紛れているので,間違えないように注意して式を作成します。
    • good
    • 5
この回答へのお礼

回答ありがとうございます。
{ }の使い方は知らなかったです。勉強なります。ありがとうございました。

お礼日時:2011/04/01 19:10

No.2です!


前回の投稿は無視してください。
大きな勘違いをしていました。
もう一度画像をアップさせてもらいます。

B1セルに
=IF(COUNTIF(A1,"北海道*"),"北海道",IF(COUNTIF($D$1:$D$6,LEFT(A1,3)),"東北",""))
という数式を入れオートフィルで下へコピーしています。

何度もごめんなさいね。m(__)m
「エクセルのfind関数で、複数の条件」の回答画像4
    • good
    • 0
この回答へのお礼

重ね重ね、ありがとうございました。

お礼日時:2011/04/01 19:04

 FIND関数と組合せて判定を行う場合には、ISERROR関数よりもISNUMBER関数の方が使い勝手が良いと思います。



=if(ISNUMBER(find("北海道",A1)),"北海道",if(ISNUMBER(find("青森県",A1)),"東北",if(ISNUMBER(find("岩手県",A1)),"東北",if(ISNUMBER(find("宮城県",A1)),"東北",if(ISNUMBER(find("秋田県",A1)),"東北",if(ISNUMBER(find("山形県",A1)),"東北",if(ISNUMBER(find("福島県",A1)),"東北","該当なし")))))))

 但し、質問者様が使われているExcelのバージョンが、Excel2007よりも前のバージョンである場合には、関数の中に関数を組み込む事(ネストと言います)は、7重までしか出来ません。
 ですから、もし、お使いのExcelがExcel2007よりも前のバージョンである場合には、別のやり方が必要になります。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
ご指摘のとおり、バージョンは2002ですので、ネストは7回までです。
47都道府県をやりたいので、セルを7つに分けてやるつもりです。

お礼日時:2011/04/01 19:02

こんばんは!


ご希望の方法とはかけ離れてしまいますが、他の方法の一例です。

住所は必ず都道府県から始まっているとします。
↓の画像のように道県の表を作成しておきます。
(すべてを3文字としています)

B1セルに
=IF(COUNTIF($D$1:$D$7,LEFT(A1,3)),LEFT(A1,3),"")
という数式を入れオートフィルで下へコピーすると画像のような感じになります。

参考にならなかったらごめんなさいね。m(__)m
「エクセルのfind関数で、複数の条件」の回答画像2
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
参考になります。

お礼日時:2011/04/01 19:03

FIND("北海道",A1)


で北海道が見つからない場合、結果は#VALUE!になります
ですので

A1が北海道以外であった場合

=IF(FIND("北海道",A1)>0,"北海道","以下略")

の論理式の結果はFALSEではなくなります。

解決策として

=IF(ISERROR(FIND("北海道",A1))=FALSE,"北海道",IF(ISERROR(FIND("青森県",A1))*ISERROR(FIND("岩手県",A1))*ISERROR(FIND("宮城県",A1))*ISERROR(FIND("秋田県",A1))*ISERROR(FIND("山形県",A1))*ISERROR(FIND("福島県",A1)),"該当なし","東北"))

といった方法があります
    • good
    • 1
この回答へのお礼

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

お礼日時:2011/04/01 18:59

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