プロが教えるわが家の防犯対策術!

I17には「余市郡余市町」と表示されております。
セルI51に「=IF(COUNTIF(I17,"*市*"),LEFT(I17,FIND("市",I17)),IF(COUNTIF(I17,"*町*"),LEFT(I17,FIND("町",I17)),IF(COUNTIF(I17,"*村*"),LEFT(I17,FIND("村",I17)),"エラー")))」の式を設定してます。
ですがI51には「余市」としか表示されません。
別物件で
I17には「石狩郡当別町」と表示があり、
I51には「石狩郡当別町」表示されます。
I51の数式を変更し
I17には「余市郡余市町」と表示されている場合は、
I51に「余市郡余市町」と表示出来る方法を教えてください。
よろしくお願いいたします。

質問者からの補足コメント

  • うーん・・・

    回答ありがとうございます。
    説明不足で申し訳ありません。
    実は、セルI53に「=IF(COUNTIF(J17,"*市*"),LEFT(J17,FIND("市",J17)),IF(COUNTIF(J17,"*町*"),LEFT(J17,FIND("町",J17)),IF(COUNTIF(J17,"*村*"),LEFT(J17,FIND("村",J17)),"エラー")))」の数式があり
    物件によってI17、J17に表示される地域名を拾う数式になってます。
    又、セルH55には「=IF(I51="エラー",I53,I51)」があり、I51又はい53の表示し、
    さらにI55に「=IFERROR(REPLACE(H55,1,FIND("郡",H55),""),H55)」がありまして

    No.1の回答に寄せられた補足コメントです。 補足日時:2023/06/06 10:39
  • うーん・・・

    最終的にI55に北海道の「179市町村」名のみを表示出来るようにしております。
    最終目的はI17、J17に表示された住所を元に
    セルI55に北海道の「179市町村」名を表示させるための数式を希望しております。
    何卒、よろしくお願いいたします。

      補足日時:2023/06/06 10:39

A 回答 (3件)

>I17には「余市郡余市町」と表示されている場合は、


>I51に「余市郡余市町」と表示出来る方法を教えてください。

とのご希望ですが、I17セルの内容がどのようなものなのかについての説明がありません。I17セルに市町村名そのものが表示されるような仕組みだとすると悩む必要もなく

I51=I17

とするだけです。そうではなくI17にはいわゆる「所番地」が表示されており、そこから市町村名のみを抽出したいということなのではないかと推測しました。

まず、数式を入力するシートとは別シートに画像②のように「市町村名一覧」と名前を付けて、そのA列に北海道の179市町村名の一覧がA1~A179セルまで入力されているものとします。画像①をご覧ください。I17セルに

余市郡余市町黒川町1318番地

という住所が表示されています。ここから市町村名のみを抽出するため、上記の準備を行ったうえで、数式を入力するシートのI51セルに

=INDEX(市町村名一覧!$A$1:$A$179,LOOKUP(1,0/FIND(市町村名一覧!$A$1:$A$179,I17),ROW($1:$179)))・・・①

という数式を記述しています。これにより、I17セルに入力された住所に基づいて、一覧表に存在する市町村名がI51セルに表示されます。

なお、①の数式は、一覧表にない市町村名の場合は#N/Aというエラーになります。それを避けたいのであれば

=IFERROR(INDEX(市町村名一覧!$A$1:$A$179,LOOKUP(1,0/FIND(市町村名一覧!$A$1:$A$179,I17),ROW($1:$179))),"")・・・②

という数式にしておけばよいと思います。
「エクセルの数式で教えてください。」の回答画像3
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
もう一度、考えてみます。

お礼日時:2023/06/06 13:54

根本的な考え方が間違ってる。



この手の問題は、市町村名の一覧を作って、それに一致する文字列を探して該当したらその市町村名を表示するようにすべきです。
入力された文字列を加工するには条件が多すぎて話にならないうえに複雑になって間違いやすくなる。

条件があとからたくさん出てくるよ。
たとえば、入力を間違ったらその間違った市町村名を表示しないようメッセージを出したいとかね。
そんなとき条件を加えて数式を直すなんて面倒でしかない。
    • good
    • 0

単に文字を探し出す方法では無理だと思います。

根本的な考え方を変えないと実現できないです。町田市、今市市、村上市、などがありますので。
この回答への補足あり
    • good
    • 0

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