• ベストアンサー

EXCELの式です??

EXCELの住所欄(1つのセル内)に〇〇県△□市の〇〇県の部分を取り除いて表示させたいのですが、どういった式がありますか?また、式で出来ない場合、他の方法がありますか?宜しくお願い致します。

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

  • ベストアンサー
  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.8

=IF(MID(A1,4,1)="県",RIGHT(A1,LEN(A1)-4),RIGHT(A1,LEN(A1)-3)) これで良いかと。 県が4文字目に来た場合は左から4文字削除、それ以外は3文字削除。 都道府県全てに対応。 ただし都道府県の表示が絶対に入っていることが前提。

Hiroonchan
質問者

お礼

ご回答有難うございます。バッチリでした(^.^)

その他の回答 (9)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.10

こんにちは。maruru01です。 都道府県名が必ずあるなら他の方々の回答にあるように出来ます。 これとかも。 =MID(A1,(MID(A1,4,1)="県")+4,LEN(A1)) しかし、都道府県名が無い場合もあると、複雑になります。 No.3の方の回答でも、例えば、 (茨城県)水海道市 (福岡県)太宰府市 などが都道府県名なしであれば、上手くいきません。 これらは回避するには、どこか別の場所に都道府県名一覧表を作成しておいて参照する、などの必要があります。 仮に、Sheet2のA1:A47に都道府県名の一覧を用意するとします。 そうすると、 =MID(A1,SUM(COUNTIF(Sheet2!$A$1:$A$47,LEFT(A1,{3,4}))*{3,4})+1,LEN(A1)) という数式で出来ます。 ところで、No.7の方へ SUBSTITUTE関数ってワイルドカード使えましたっけ? (ひょっとして2002以降?当方2000なので)

Hiroonchan
質問者

お礼

ご回答有難うございました。うまくできました。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.9

=SUBSTITUTE(A1,MID(A1,1,FIND("県",A1)),"") エラーが出た行は =SUBSTITUTE(A1,MID(A1,1,FIND("都",A1)),"") 他、道、府で対処する。 ユーザー関数を作ると Function ken(a) b = Array("県", "都", "道", "府") For j = 0 To 3 p = InStr(a, b(j)) If p <> 0 Then GoTo p01 Next j p01: ken = Mid(a, p + 1, Len(a) - p) End Function A列に A列       B列 福島県福島市 福島市 東京都昭島市 昭島市 大阪府高槻市 高槻市 北海道旭川市 旭川市 鹿児島県枕崎市 枕崎市 広島県府中市 府中市 宮崎県都城市 都城市 とあってB1に=ken(A1)といれて下に複写すると 上記のB列ようになる。

Hiroonchan
質問者

お礼

ご親切な回答有難うございました。マクロのほうは、まだ、訳分かりませんので、すいませんが今後は勉強したいと思います。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.7

#5のmshr1962です。 #6の方の言う通り、誤動作する可能性はありますね。 =Substitute(Substitute(Substitute(Substitute(LEFT(A1,3),"*都",""),"*道",""),"*府","")&MID(A1,4,1),"*県","")&MID(A1,5,LEN(A1)) 必ず都道府県があるなら =MID(A1,IF(MID(A1,4,1)="県",4,3),LEN(A1)) の方がシンプルかもしれません。

Hiroonchan
質問者

お礼

たび重ねてご回答いただき誠に有難うございました。 =MID(A1,IF(MID(A1,4,1)="県",4,3),LEN(A1))の式のほうをコピペしたのですが、『県○○市△町』と私のEXCELでは出力されたのですが・・ちなみにバージョンは2000です。

noname#148473
noname#148473
回答No.6

#5の方の回答は一見すっきりしていて良さそうですが、 宮崎県都城市・・・ 広島県尾道市・・・ などの場合に誤動作するのではないかと思います。 横槍を入れる非礼をお許しください。 ただ、少し気になりましたので。。。

Hiroonchan
質問者

お礼

お答え有難うございます。fuji2002さんがどういう理由でこの2つの市を例に出されたのか、私には全く理解できませんが、私の住む住所でも確かにそのまま出力されました^_^;

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.5

やるのならSubstitute関数になります。 =Substitute(A1,"*県","") 都道府県なら4つ重ねる

Hiroonchan
質問者

お礼

ご回答誠に有難うございました。でも私の入力が誤っているのか、そのまま同じように出力されたのですが・・。

  • dejiji-
  • ベストアンサー率38% (327/858)
回答No.4

=MID(A2,FIND("県",A2,1)+1,LEN(A2)) しかし、県だけでよいのですか?都道府は?

Hiroonchan
質問者

お礼

ご回答有難うございます。みごと○○県で残りました。私の質問のし方が悪かったため、ちょっと取り違えて答えていただいたのですが・・どちらかというと○○市以降だけにしたかったのです。すいません。でもとても勉強になります。

noname#148473
noname#148473
回答No.3

「県」しかないのでしたら、#1の方が書かれたとおりで良いのですが、都・道・府も混在しているとなると少々厄介です。 少し長い式ですが、試してみてください。 (住所データはセルA1に入っているものとします) =MID(A1,IF(ISERROR(FIND(MID(A1,3,1),"都道府県")),0,3)+IF(ISERROR(FIND(MID(A1,4,1),"県")),0,4)+1,255) 都道府県名が書かれていない住所でもOKです。 ただし、「都道府」は必ず3文字目、「県」は3~4文字目に位置すると仮定して作ってありますので、行頭に郵便番号が入っていたり、スペースやタブが入っていたりすると正確に動かない恐れがあります。念のため。

Hiroonchan
質問者

お礼

すばらしい!有難うございます。でもどうして皆さん、こんな複雑な式を簡単に出来るのか??ただ式をコピーするだけの私は何だか、劣等感や情けなさを感じます(;_;)

  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.2

A1セルから○○県を抜き出すのであれば、 =IF(ISNUMBER(FIND("県",A1)),LEFT(A1,FIND("県",A1)),"") といった感じで出来ますね。 都道府県に対応するなら、 =IF(ISNUMBER(FIND("県",A1)),LEFT(A1,FIND("県",A1)),IF(OR(LEFT(A1,3)="大阪府",LEFT(A1,3)="京都府"),LEFT(A1,3),IF(LEFT(A1,3)="北海道","北海道",IF(LEFT(A1,3)="東京都","東京都","")))) でいかがですか?

Hiroonchan
質問者

お礼

有難うございました。みごと○○県で残りました。私の質問のし方が悪かったため、ちょっと取り違えて答えていただいたのですが・・どちらかというと○○市以降だけにしたかったのです。すいません。でもとても勉強になります。

回答No.1

セルA1に〇〇県△□市と入力されているとして。 =MID(A1,FIND("県",A1),LEN(A1)) でどうでしょう?

Hiroonchan
質問者

お礼

早速のご回答有難うございました。 結果は、(県○○市・・・・)と表示されました。

関連するQ&A