
EXCELの関数の使い方について、質問させていただきます。
リスト1には、郵便番号と住所のリストが入っていますが、
郵便番号が重複しています。(同じ郵便番号で地名違いのものがある)
---------------------------------------------------------------------------------
【リスト1】
A郵便番号 B県名 C住所1 D住所2
------------------------------------------------
0493521 北海道 山越郡長万部町 曙町
0493521 北海道 山越郡長万部町 大町
0493521 北海道 山越郡長万部町 長万部
0493521 北海道 山越郡長万部町 温泉町
0493521 北海道 山越郡長万部町 新開町
0493521 北海道 山越郡長万部町 陣屋町
0493521 北海道 山越郡長万部町 住吉町
0493521 北海道 山越郡長万部町 高砂町
0493521 北海道 山越郡長万部町 本町
0493521 北海道 山越郡長万部町 南栄町
0493521 北海道 山越郡長万部町 元町
---------------------------------------------------------------------------------
リスト2には、ある住所録があるのですが、
住所が結合されているため、
リスト1と郵便番号を使って、
結合住所を、県名、住所1、住所2、住所3に分割したいと思っています。
県名、住所1は、vlookup関数で参照しても問題ないのですが、
住所2は、郵便番号が重複しているため、vlookup関数では、全て「曙町」になってしまいます。
住所2に、適切な地名を表示させたいのですが、どのようにすれば良いでしょうか?
---------------------------------------------------------------------------------
【リスト2】
A郵便番号 B結合住所 C住所1 D住所2 E住所3
-----------------------------------------------------------------------------------
0493521 山越郡長万部町長万部XXX-XXXX 山越郡長万部町 長万部 XXX-XXXX
0493521 山越郡長万部町陣屋町XXX 山越郡長万部町 陣屋町 XXX
0493521 山越郡長万部町本町XXXX 山越郡長万部町 本町 XXXX
---------------------------------------------------------------------------------
住所2が正しく出ないため、
住所3も導けず、困っております。
(住所3は、SUBSTITUTE(B1,C1&D1,"") などとして導く予定です。)
何卒、ご教授をよろしくお願い致します。
No.3ベストアンサー
- 回答日時:
>郵便番号で絞り込みを考慮しないと難しいようなのですが、
>そういった事を式で実現することは可能でしょうか?
可能ですよ。
郵便番号でなくても住所1(市区町村名)と住所2(大字名)を連結した文字列を検索文字列とすれば単一の行Noがヒットすると思います。
=IF(G2="","",INDEX($D:$D,MAX(IFERROR((FIND(C$1:C$27&D$1:D$27,G2)>0)*1,0)*ROW(D$1:D$27)),1))
それでも複数がヒットするときは都道府県名も連結してみると良いでしょう。
bunjiiさん、ご返信いただき、ありがとうございました。
なるほど、連結したものを検索文字列に使うのですね…
そういった柔軟な発想が思いつかず、苦戦しておりました。
とても勉強になりました。
いただいた式を完全に理解するのには、まだ時間がかかりそうですが、
勉強したいと思います。
ありがとうございました。
No.2
- 回答日時:
住所2は次のような方法で抽出できます。
FIND関数は一般的に1つの文字列を1つの長い文字列から検出しますが、配列値を検索文字列として使うこともできます。
=(FIND(リスト1!D:D,B2)>0)*ROW(1:1000)
Ctrl+Shift+Enterで確定すると返り値が配列となりますので、MAX関数に渡せは該当の行番号が得られます。
この性質を応用すればINDEX関数と組み合わせて住所2の抽出が可能となります。
貼付画像は同一シートでの検証ですがあなたのデータに合わせて変形してください。
=IF(G2="","",INDEX($D:$D,MAX(IFERROR((FIND(D$1:D$12,G2)>0)*1,0)*ROW(D$1:D$12)),1))

この回答への補足
bunjiiさん
御回答いただき、ありがとうございました。
うわぁ、すごいですね、関数を複雑に組み合わせると、こんな事が出来るんですね。
添付していただいた画像のようにサンプルを作成し、確認したところ、
希望の通りに導くことが出来ました。
ただ、これをサンプルのように狭い地区データではなく、
全国規模の本番データに転用しようとすると難しいみたいで…
(考えられる理由)
・サンプルでD列にあたる部分の行数が、本番データでは1万件を超える。
・全国だと、D列の中でも重複する町名がある。
(例えば「新田」が含まれる町名は、日本全国で1千箇所を超える)
よって、郵便番号で絞り込みを考慮しないと難しいようなのですが、
そういった事を式で実現することは可能でしょうか?
例えば、こんなデータで…
---------------------------------------------------
リスト1(宮城県の新田が含まれる地域のみ)
9830038,宮城県,仙台市宮城野区,新田
9830039,宮城県,仙台市宮城野区,新田東
9860321,宮城県,石巻市,桃生町新田
9880828,宮城県,気仙沼市,下新田
9880829,宮城県,気仙沼市,新田
9850854,宮城県,多賀城市,新田
9870378,宮城県,登米市,豊里町新田鏡形
9870361,宮城県,登米市,豊里町新田町
9894601,宮城県,登米市,迫町新田
9870422,宮城県,登米市,南方町新田
9894511,宮城県,栗原市,瀬峰新田沢
9872031,宮城県,栗原市,高清水新田
9872263,宮城県,栗原市,築館新田
9810307,宮城県,東松島市,新田
9896711,宮城県,大崎市,鳴子温泉新田
9896226,宮城県,大崎市,古川新田
9896203,宮城県,大崎市,古川飯川
9812116,宮城県,伊具郡丸森町,新田向
9812116,宮城県,伊具郡丸森町,新田東
9812116,宮城県,伊具郡丸森町,新田西
9892351,宮城県,亘理郡亘理町,北新田
9814222,宮城県,加美郡加美町,下新田
9870144,宮城県,遠田郡涌谷町,沖新田
9870144,宮城県,遠田郡涌谷町,下新田
9870140,宮城県,遠田郡涌谷町,新沖新田
9870133,宮城県,遠田郡涌谷町,新田
---------------------------------------------------
リスト2
(県名,住所1,住所2,住所3は、自動検出できた場合の理想のデータ)
郵便番号,結合住所,県名,住所1,住所2,住所3
9894601,宮城県登米市迫町新田山居XXX,宮城県,登米市,迫町新田,山居XXX
9894601,宮城県登米市迫町新田畑中XXX,宮城県,登米市,迫町新田,畑中XXX
9896226,宮城県大崎市古川新田字中宿XXX,宮城県,大崎市,古川新田,字中宿XXX
9896203,宮城県大崎市古川飯川中新田XXX,宮城県,大崎市,古川飯川,中新田XXX
9814222,宮城県加美郡加美町下新田寺浦XXX,宮城県,加美郡加美町,下新田,寺浦XXX
---------------------------------------------------
教えていただいた式を、まだ半分も理解できていないので、頓珍漢な事を
申し上げているかも知れません。(その場合は、失礼いたしました。)
No.1
- 回答日時:
エクセルアドインの郵便番号ウィザードを利用するのが簡単です。
Excelのバージョンが記載されていませんので一般論で説明しますが、郵便番号ウィザード(ご自分でバージョンにあった郵便番号ウィザードをインストールしてください)を起動して、リスト2の郵便番号部分を選択し、「郵便番号から住所を作成する」にチェックを入れ、出力先の先頭セルを指定します。
この操作で郵便番号の確定部分(北海道山越郡長万部町までの部分)が抽出できますのでSUBSTITUTE関数でそのあとの町名部分を取得してください。
なお、郵便番号確定部分以降の部分に番地などが入っている場合は、関数を使って番地部分を一括削除することができます。
ひとまず、文字列関数や郵便番号ウィザードは使用できるという前提で一般的な回答をしましたが、上記の説明でわからない部分があったら、その部分を具体的に補足説明してください。
この回答への補足
MackyNo1さん、御回答ありがとうございました。
Excelのバージョンの記入漏れ、大変失礼いたしました。
使用しているExcelは、2010(32ビット)です。OSはWindows7(64ビット)です。
郵便番号ウィザードをインストールしてみたのですが、
いざ使用しようとすると、「郵便番号変換エンジンが見つかりません。」エラーになります。
OSはWindows7(64ビット)ですが、Officeが32ビット版なので、
郵便番号ウィザードもちゃんと32ビット版を選んでいます。
Windows7にIME2010をインストールできないせいなのか、
全く起動してくれません。
よって、試せていない状態でのご返信となり、
大変失礼いたします。
郵便番号ウィザードが正しく起動した場合でも、
郵便番号が重複しているケースがありますので、
確定部分が出ないケースがあるのではないかと想像しております。
例えば、
北海道札幌市厚別区と、
北海道札幌市清田区は、共に、004-0000になります。
IMEの郵便番号辞書は起動したので、こちらで確認したのですが、
候補が2つでます。
郵便番号の確定部分(北海道山越郡長万部町までの部分)が出るとありましたが、
確定部分は、その次の「曙町」なども含まれているのではないでしょうか?
また、住所2の後ろに、地番以外の住所が付くケースもあります。
例えば、
「北海道 山越郡長万部町 曙町 字○○ 1-1-1」といった感じです。
関数で番地を消せても、残りの住所が残って「曙町字○○」となってしまい、
理想的な住所2(曙町のみ)にならないのではないかと思うのですが…??
いずれにしても、郵便番号ウィザードが起動してくれないので…しょぼぼんです…。
せっかく御回答いただいたのに、申し訳ありません。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【Excel】住所に郵便番号を付記する方法 3 2022/05/07 17:15
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/06/06 13:57
- ラジオ 北海道の道南檜山郡江差町の砂川に住んでいます。江差町五厘沢町から送信されているNHK-FMラジオ(出 4 2022/05/24 07:49
- 甲信越・北陸 長野県小県郡長和町和田美ヶ原高原へ行きます。 3 2023/04/23 20:34
- 政治 これは自民党の政治が、どこか根本的に腐っているのではないですか? 3 2022/04/23 06:41
- 政治 沿線住民の利益を考えれば、赤字路線は切り捨てるのは当然ではないか? 4 2022/04/12 08:59
- 邦画 松たか子 初主演映画『四月物語』も表面の物語とは裏腹に【津波】被害の話題を盛り込んでいるのか? 2 2023/04/08 22:27
- 地震・津波 岩井俊二監督の映画『四月物語』では【津波】被害・避難所の話題を盛り込んでいるのではないですか? 1 2023/04/08 22:52
- 政治 田舎住みに手厚くしすぎでは? 海外みたいに居住区域を制限すべき。 数件しか家がないような集落のために 5 2022/05/31 21:11
- Excel(エクセル) 範囲指定をした中で、住所の列をユーザー設定の並べ替えをしたい 3 2022/05/15 13:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル ドロップダウンリスト...
-
特定のセルだけ結果がおかしい...
-
【マクロ】【配列】3つのシー...
-
エクセルのdatedif関数を使って...
-
【関数】同じ関数なのに、エラ...
-
エクセルの循環参照、?
-
【マクロ】列を折りたたみ非表...
-
【マクロ】アクティブセルの時...
-
iPhoneのExcelアプリで、別のシ...
-
【マクロ】EXCELで読込したCSV...
-
【条件付き書式】シートの中で...
-
【マクロ】オートフィルターの...
-
【マクロ】3行に上から下に並...
-
vba テキストボックスとリフト...
-
【マクロ】A列にある、日付(本...
-
ページが変なふうに切れる
-
エクセルのVBAで集計をしたい
-
エクセル
-
Excelファイルを開くと私だけVA...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelファイルを開くと私だけVA...
-
エクセルについてどう関数を使...
-
マクロ・VBAで、当該ファイルの...
-
エクセルのセルに画像は埋め込...
-
エクセルで、一部のセルだけ固...
-
【マクロ、画像あり】A表かB表...
-
エクセルでカウントする
-
【マクロ】コードを少しでも、...
-
VBA_日時のソート
-
エクセルで教えてください。 例...
-
エクセル 月間シフト表で曜日ご...
-
セルの左に余白を付ける
-
エクセル
-
エクセルについて教えてください
-
2枚のエクセル表で数字をマッチ...
-
ExcelのIF関数との組み合わせの...
-
エクセルのファイルのコピーを...
-
エクセルで二つのブックの違い...
-
空白処理を空白に
-
Excelのチェックボックスについ...
おすすめ情報