• ベストアンサー

エクセルのセル内にて特定位置の文字だけの変換

住所録を作成していたのですが、ソフトの関係で、○○町1-2-3の住所を○○町1丁目2-3の「丁目」入りに変更することになりました。住所には△△町字1-4 さつきアパート2-1号室のような丁目が付いていない対象外の住所もあります。簡単に「丁目」に一括変換する方法あれば教えてください。丁目は1~9丁目まであります。

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

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

文字列に「丁目」がない場合は、最初に出てくる「-」をすべて「丁目」変更するという条件ならNo1の方の回答を少し修正して、ハイフンが半角と全角が混ざっていても対応できるようにした以下の数式になります。 =IF(ISNUMBER(FIND("丁目",A1)),A1,LEFT(A1,FIND("-",ASC(A1))-1)&"丁目"&MID(A1,FIND("-",ASC(A1))+1,100)) ただし、上記の数式は、「丁目」が書いていないデータの最初に出てくる半角及び全角のハイフンをすべて丁目に変換していますので、町の名前の後に丁目のない可能性のある「地区」は、フィルタ機能を利用して別に処理するなどの工夫が必要だと思います。

numa0327
質問者

補足

ありがとうございます。 上記の式でイメージ掴めました。 丁目の無い対象外地域はフィルター機能で外し、対象外にしました。 何とかできそうです♪

その他の回答 (7)

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.8

A列に、○○町1-2-3 等の住所が記載されているとして、 B1セルに以下の式を入れて、下にドラッグコピーしてみてください。 =LEFT(A1,FIND("-",A1)-1)&"丁目"&MID(A1,FIND("-",A1)+1,100)

numa0327
質問者

補足

ありがとうございます。 上記の式はハイフンのスタイルによって出来るのですね。 「半角ハイフン」「全角ハイフン」「長音ハイフン」などが混在していたので、置き換えによって統一させたら出来ました。

回答No.7

関数によらないデータ処理もご紹介しておきますね。「-」を区切り文字として、1 セル内に記入されている文字列を複数列に分割するということです。A 列に住所データがあるとします。 ※実行前に住所データをバックアップしてください (1) A 列の処理したいセル範囲あるいは A 列全体を選択 (2)「データタブ > 区切り位置」からウィザードを起動 (3)「カンマやタブなどの……」を指定して「次へ」をクリック (4)「区切り文字」として「その他」をチェック、その右隣のボックスに「-」を入力の上、「完了」をクリック これで添付図のように、分割されます。これを逆に「○○町1丁目2-3」というふうにつなげたい場合は、次式。 D1 =a1&"丁目"&b1&if(c1="","","-"&c1) >やはり難しいみたいですね。 皆さんが難しいとおっしゃっており、そのとおりなのですが、別に、数式を書いたりすること自体が難しいと言っているわけではありません。質問者さんが持っている具体的なデータがどんな感じの内容になっているのか情報が開示されないため、データ処理をしようにも、規則性も分からないということです。どんな処理を行うときも何らかの規則性を手がかりに実行するのですから、そういう状態では考えようがないです。 唯一明らかになったのは、「町以外にも住所は色々」という情報と、「丁目変換数は7~8割ぐらい」という情報のみです。 また、大抵の住所データは様々なパターンを含んでいるので、なかなか一発の処理のみで終わりとは行かないことも多いです。あらゆるパターンを回答者のほうで用意しろというのは、個人が負える負担とか、発想の限界を超えています。そういう意味でも、唯一完全な解答を示すのは難しいと皆さんおっしゃっています。途中に含まれてくるであろう一段階、一段階の処理が難しいという意味ではありません。 「7 ~ 8 割」だということが質問者さんには既に分かっているのであれば、たぶん「丁目が付く町」の種類数はある程度、限られているのではありませんか?仮にそうだとすれば、「丁目が付く町」のリストを別途、作製しておくという方法をお勧めできます。 上で説明した区切り位置だとか、住所の文字列中の都道府県・市町村、数字などを手がかりにして文字列をバラバラにし、その破片がリスト中に存在するかどうかを COUNTIF 関数などを使って調べることができます。そうすればリスト内での有無を条件として、条件に該当したときだけ D1 セルのような感じで「丁目」を付けるというのは、たやすいことです。 なお、どんな処理を行うにせよ、先に置換などの機能を使って、お手元の住所データに含まれる文字表記の揺れを修正・統一しておいてください。具体的には、全角/半角、余計なスペースの削除といったことです。元データがしっかりしていないと、テクニックを駆使してどんな処理をしようとしてもパターンが絞れず無駄骨ですし、データベースとしての価値も下がります。

numa0327
質問者

補足

ありがとうございます。 住所データの修正・統一からしっかり始めてみます。

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.5

> 上記の混在している住所リストの中から「丁目」対象だけの番地を引っ張り出して「丁目」に一括変換したいのですが、やはり無理でしょうか>< 確かに住所はいろんなパターンがあるので完璧にというのは無理だと思います。 No4さんが回答されている「文字列に「丁目」がない場合は、最初に出てくる「-」をすべて「丁目」変更する」というのがある程度無難かもしれませんが、○○町5番地○○マンション504号なんかを○○町5-504と略してる場合には誤変換になってしまいますので注意が必要ですね。

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

>住所には△△町字1-4 さつきアパート2-1号室のような丁目が付いていない対象外の住所もあります。 上記の説明は、1-4の部分が丁目の数字ではないということと、2-1の前の部分が町名ではないという2つのことを説明しているのでしょうか? 前半部分については、残念ながら、人間が行う場合でも、1-4の部分が丁目の数字なのか識別する方法はありませんので、もちろんエクセルでも一括変換する方法はありません。 ちなみに、後半の部分だけなら、関数で最初に出てくる「-」の前の数字が「丁目」の数字だと判断できますが、この場合でも番地部分が「3丁目2番地」などと記載されていたら正確に置換することはできません)。 すなわち、以下の例のように、どのような文字列の時に「-」を「丁目」に変換するのか、規則を提示しないと判定ができないことになるわけです。 例:文字列に「丁目」がない場合は、最初に出てくる「-」をすべて「丁目」変更する。

numa0327
質問者

補足

ありがとうございます。 やはり難しいみたいですね。 例:文字列に「丁目」がない場合は、最初に出てくる「-」をすべて「丁目」変更する 丁目変換数は7~8割ぐらいなので、上記例でもそれなりに早いと思われます。 宜しければ方法を教えてください。

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.3

訂正です。 丁目をつけない場合もとの住所を表示せずの空白にしてました 元の住所を表示する場合以下の式になります。 =IF(ISERR(VALUE(MID(A1,FIND("町",A1,1)+1,1))),A1,IF(VALUE(MID(A1,FIND("町",A1,1)+1,1))<10,LEFT(A1,FIND("町",A1,1)+1)&"丁目"& RIGHT(A1,LEN(A1)-FIND("町",A1,1)-2),"")) 元のデータがA1の場合ですので、式中のA1を適宜書き換えてください。

numa0327
質問者

補足

ありがとうございます。 町が入っている住所は丁目に変換できました。 しかし、町だけではなく、「新橋○丁目」とか「品川○丁目」というように町以外にも住所は色々です。 また、丁目が入っていない「大字」の住所表示もあります。 上記の混在している住所リストの中から「丁目」対象だけの番地を引っ張り出して「丁目」に一括変換したいのですが、やはり無理でしょうか><

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

質問の例では条件が絞り切れませんが ○○町1-2-3は丁目をつける ○○町1-2は? ○○町1-203は? ○○町1-2ー303は? のようなとき町の後に1から9までの数値があれば丁目にするという条件でしたら =IF(ISERR(VALUE(MID(A1,FIND("町",A1,1)+1,1))),"",IF(VALUE(MID(A1,FIND("町",A1,1)+1,1))<10,LEFT(A1,FIND("町",A1,1)+1)&"丁目"& RIGHT(A1,LEN(A1)-FIND("町",A1,1)-2),"")) 上記の式で丁目を追加することができます。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

完全ではありませんが、A1セルに○○町1-2-3の住所が記載されている場合 =LEFT(A1,FIND("-",A1)-1)&"丁目"&MID(A1,FIND("-",A1)+1,100)

numa0327
質問者

補足

ありがとうございます。 やってみましたが、ダメ(エラー表示)でした。

関連するQ&A

  • エクセルでセル内で特定の文字の一括変換

    エクセルで住所録を作っていたのですが、他のアプリケーションでデータを使うために、書式を一部変更する必要になりました。 ひとつのセルに 「○○市○○町1-23-45」とあるものを 「○○市○○町1丁目23-45」と一括変換する方法はありませんでしょうか? よろしくお願いします。

  • 筆王Ver19の文字変換

    筆王Ver19を使って現在年賀状の作成を行っています。 住所録を作っていて、0丁目0番0号と変換されれば良いのですが、0丁目0番0合と「ごう」の変換が「合う」と言う文字にしか変換されません。   ソースネクストに問い合わせようとしても、メールの画面も出ず、電話も混み合っているとメッセージが流れ、全く通じません。   どなたか、解決方法を教えて下さい。

  • エクセルで「丁番地」を変換する方法を教えて下さい

    エクセル2000を使っています。 セルに「1丁目2番3号」という住所があるとして それを「1-2-3」というふうに変換したいのですが どのようにすればいいでしょうか? ちなみに「1丁目2番3号」の前には都道府県および 市区町村の情報も含まれております。 宜しくお願いします。

  • Excelで住所データに基づきを順序に並べ替える

    住所データに基づき、Excelのデータを並べ替えたいです。 住所は、 X市A町1丁目2番3号 という形式保存されています。 全てがX市内の住所です。 並べ替えの規則は、 1、地区別 2、町名 3、番地の番号順(丁目、番、号が若い順) データ内容を単純化するしますと以下のようになります。 「あ地区」には、A町、B町、C町、D町が含まれます。 「い地区」には、E町、F町、G町が含まれます。 「う地区」には、H町、I町、J町が含まれます。 現在は住所の並び順に規則性がないですが、 あ地区、い地区、う地区の順で優先し、各地区内では、A、B、C、、、の順を優先して並べ替えたいです(住民基本台帳の順序)。同一の町内の住所は丁目、番、号の数字の小さい順とします。 例えば、元データが、 1、B町5丁目11番5号 2、A町2丁目7番6号 3、A町2丁目6番8号 という並びの場合、上記規則に基づいて並び替えると、 1、A町2丁目6番8号 2、A町2丁目7番6号 3、B町5丁目11番5号 となります。 ※ 住所には地区名は入っていません。 町名には必ずしも「町」が付いているとは限りません。 全ての地区名と対応する町名、優先順位はこちらで把握しています。 データ1行内には住所以外のデータがありますが、他のデータは順序に影響しません。 どのように操作すれば効率よく並べ替えできるでしょうか。

  • Excelで住所管理

    質問させてください! Excelを使って住所地の管理をしたいのですが、 ◯◯町◯◯丁目◯◯番地◯◯号、◯丁目◯◯◯ このような住所地で、◯◯番地のところは、◯◯地区、 ◯◯◯町◯◯丁目は◯◯地区このように住所地から地区分けは、 できるのでしょうか? 番地は何千番台もあり1000番から2000はここの地区だよみたいなことはできますでしょうか?

  • 文字の変換

    宛名作成ソフトを使って、入力した文字を変換すると「・」や空白が出るのは該当文字がないためですか。 この場合その空白部の文字をどのような方法で表示させるのですか。 住所列で変換できない空白部や1字だけフォントが違う場合の対処法をご教授お願いします。

  • 婚姻届についてお願いします

    こんばんわ。婚姻届の書き方について分からないことがあったので教えてください。  住んでいる住所がアパートのため住所をどう書けばいいかわからないのです。スペースが小さいため困っています。  ○○県○○市○○町○丁目○番地○号  コーポ○○○ 222号室 をどう記入すればいいのでしょうか??知ってる方がいましたら教えてください。よろしくお願いします。

  • Excelで住所の表示を丁目、番、号に統一させる

    現在、住所の番地の入力方式が以下のようにまちまちな状態です。 例: A市B町1-1-1 A市B町1丁目1-1 A市B町1丁目1番1号 等です。 住所データは1列に入っており、これをすべて「A市B町1丁目1番1号」(数字は半角)の形式に正規化したいです。 ・漢数字は含まれません(一部「丁目」部分だけ漢字がありますが、手動で数字に変更します。) ・数字、ハイフンは全角と半角が両方あります。(大半は全角) ・番地の後にビル名が入っているものがあります(番地とビル名の間はスペースが空いていたり空いていない場合があります。できれば、一律で半角スペースを空けるようにしたい) ・全ての住所は丁目、番、号の住居表示です。("X町1234番地"のようなものはない) 規則としては、最初の数字の後に"丁目"、2番目の数字の後に"番"、3番目の数字の後に"号"を付与すればいいかと思いますが、具体的にどのような関数を組めばよろしいでしょうか。

  • EXCEL2003で住所の並び替えがうまくいきません

    EXCEL2003で住所録を作成しています。 A.○○市○○町1丁目1番1号 B.○○市○○町1丁目2番1号 C.○○市○○町1丁目11番1号 ABCのように並べたいのですが、番地の部分の2より11が優先されて しまい、BよりCのほうが上にきてしまいます。 番地を01のように入力することも考えましたが、見栄えが悪くなるので やめました。 何か並び替えの良い方法はないでしょうか?

  • 日本語の住所録(エクセル)をローマ字に変換

    日本語の住所録(エクセル)をローマ字に一括で変換するようなソフトやサイトはないでしょうか? 海外の支社へ日本の住所録を送るのですが、ローマ字で打ち直すのが大変なので、なにか方法がないかと思って・・・

専門家に質問してみよう