• ベストアンサー

excel 文字列の検索&表示

都道府県名から番地まで書かれた全国津々浦々の住所リストがあり、その中で特定の市名が含まれる住所が書かれているセルの隣に、その市名を表示させたいと思っています。 具体的には、仙台市、大阪市、日野市・・・などの30市名ほどを特定した市名リストがあり、住所リストの中に「仙台市」が含まれていれば、セルの隣に「仙台市」と表示させたいのです。 何か良い方法はありますでしょうか?? よろしくお願い致します。

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

関数で対応する場合は以下のような配列数式を使用します。 添付がzぷのようにA列に住所、E2セルからE4セル(実際のデータに合わせて適宜指定してください)に抽出したい市の名前が入力されているならB2セルに以下の式を入力してCtrl+Shift+Enterで確定して下方向にオートフィルしてください。 =IF(COUNT(1/FIND($E$2:$E$4,A2)),INDEX(E:E,MAX(ISNUMBER(FIND($E$2:$E$4,A2))*ROW($E$2:$E$4))),"")

Celdi
質問者

お礼

ありがとうございます、関数でもできるんですね! 私はマクロに不慣れなので、大変助かりました。 どちらの方法でも出来たので、お二人ともベストアンサーにさせていただきたい気持ちは山々なのですが・・・すみません、普段私が使用している関数での解決法を教えてくださったMackyNo1さんをベストアンサーとさせてください。 tom04さん、MackyNo1さん、ありがとうございましたm(_ _)m

その他の回答 (1)

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

こんばんは! 関数で「○○市」を表示というのは難しいような感じがします。 (リスト内に「あり」「なし」の判定は関数でも可能です) そこでVBAになってしまいますが、一例です。 Sheet1が操作するSheetとします。 ↓の画像のようにSheet2のA1セルから「市名リスト」を作っておきます。 画面左下のSheet1のSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub test() 'この行から Dim i, k As Long Dim ws As Worksheet Set ws = Worksheets("Sheet2") Application.ScreenUpdating = False i = Cells(Rows.Count, 1).End(xlUp).Row Range(Cells(2, 2), Cells(i, 2)).ClearContents For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row For k = 1 To ws.Cells(Rows.Count, 1).End(xlUp).Row If Cells(i, 1) Like "*" & ws.Cells(k, 1) & "*" Then Cells(i, 2) = ws.Cells(k, 1) End If Next k Next i Application.ScreenUpdating = True End Sub 'この行まで ※ 注意しなければならないのは、 「広島県東広島市○○町」のような地名があり、リストに「広島市」があった場合は 「東広島市」のB列にも「広島市」が表示されてしまいます。 他にも「大阪市」「東大阪市」等々全国には同様の住所がたくさんあると思います。 参考になりますかね?m(_ _)m

Celdi
質問者

お礼

ありがとうございます! やはり関数では難しいのですね。。。 マクロはあまり使ったことがないのですが、教えていただいた通りコピペでやってみたらちゃんと出来ました。感動!! これを応用して今後使えるよう勉強してみます。ありがとうございましたm(_ _)m

関連するQ&A