- ベストアンサー
エクセルのfind関数で、複数の条件で住所を表示したい
- エクセルのfind関数を使用して、複数の条件で住所を表示したい場合、特定の文字列が含まれているかどうかを判定するためにif関数を使用することができます。
- ただし、現在の関数の条件式では、一致する文字列がない場合には#VALUE!が表示されてしまうため、条件式の修正が必要です。
- 具体的には、最後のif関数を使用する前に、一致する文字列がない場合の処理を追加する必要があります。たとえば、最後のif関数の直前で、条件式を追加して、「該当なし」と表示するように設定します。
- みんなの回答 (6)
- 専門家の回答
その他の回答 (5)
- keithin
- ベストアンサー率66% (5278/7941)
あまりIFIFせずに,こんな風に束ねることも出来ます。 =IF(ISNUMBER(FIND("北海道",A1)),"北海道",IF(OR(ISNUMBER(FIND({"青森県","秋田県","岩手県","宮城県","山形県","福島県"},A1))),"東北","")) 式の中に一組だけふつーと違うカッコが紛れているので,間違えないように注意して式を作成します。
お礼
回答ありがとうございます。 { }の使い方は知らなかったです。勉強なります。ありがとうございました。
- tom04
- ベストアンサー率49% (2537/5117)
- kagakusuki
- ベストアンサー率51% (2610/5101)
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よりも前のバージョンである場合には、別のやり方が必要になります。
お礼
回答ありがとうございます。 ご指摘のとおり、バージョンは2002ですので、ネストは7回までです。 47都道府県をやりたいので、セルを7つに分けてやるつもりです。
- tom04
- ベストアンサー率49% (2537/5117)
- kmetu
- ベストアンサー率41% (562/1346)
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)),"該当なし","東北")) といった方法があります
お礼
回答ありがとうございます。
お礼
回答ありがとうございます。 自分から関数で質問しておいてなんですが、この方法でいきたいと思います。 関数だとあとで修正するときにカッコの場所で頭がパニックになりそうですし、VBAで組むと使いまわしが不便ですし、VLOOKUPが一番手軽で、修正も簡単でよいと思います。 ありがとうございました。