|
|
|
|
|
|
|
|
|
|
|
|
|
「StiLL」Excel情報209 関数--住所を地名と番地に分けて表示A |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
■前回に引き続き、住所を地名と番地に分ける方法をご紹介します。今回は前回の方法を応用して、1つの数式内に全ての検索値を入れて、数字の位置の値を抽出する方法です。 |
☆検索値の数字を全て { }
で囲み、FIND関数に検索文字列として入れ、MIN関数で囲んで数字の位置を抽出します。その値からLEFT関数で地名を、SUBSTITUTE関数で番地をそれぞれ出します。 |
※ご注意下さい。半角数字と全角数字が混在している場合は、番地を半角数字か全角数字のどちらかに統一する必要があります。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
■住所一覧を地名と番地に分ける |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
前回は、住所の中の数字が始まる位置の |
|
|
値を、11個の数式を使用して求めました。 |
|
|
(右図参照) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
その方法を応用して、今回は「配列」という |
|
|
方法を使い、1つの数式で「数字の位置」 |
|
|
を求めて、住所一覧を「地名」と「番地」に |
|
|
分ける方法をご紹介します。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
※ |
前回のメールサービスはこちらをご覧ください。 |
|
|
|
|
|
|
|
|
【バックナンバー208】 関数--住所を地名と番地に分けて表示@ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
番地は半角数字で表示されているとします。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(例) |
住所一覧 |
|
|
地名 |
|
番地 |
|
|
|
|
|
|
渋谷区恵比寿西2-2-8 |
渋谷区恵比寿西 |
2-2-8 |
|
|
|
|
|
|
大田区蒲田33-14-x |
|
大田区蒲田 |
33-14-x |
|
|
|
|
|
|
板橋区常盤台12-27-x |
板橋区常盤台 |
12-27-x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
■「配列」を使用して、複数の検索値を1つのFIND関数に設定。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
前回と同じく、FIND関数とMIN関数を使用して、数字の位置を求めます。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@FIND関数の検索値に「配列」を使う |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
「番地」は数字で始まるので、数字(1,2,3,4,5,6,7,8,9,0)を全て検索値とします。 |
|
|
|
|
前回はそのために、数字ごとにFIND関数の式を作りましたが、そうすると関数が多くなってしまいます。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
そこで今回ご紹介する新しい方法です。 |
|
|
|
|
|
|
|
|
FIND関数の検索値として { } (大かっこ) の中に、1〜0
の数字をカンマ区切りで設定します。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
数式: |
=FIND({1,2,3,4,5,6,7,8,9,0},B5) |
※「B5」は、住所「渋谷区恵比寿西2-2-8」 |
|
|
|
|
|
|
|
が入っているセルです。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
結果: |
#VALUE! |
← |
しかし、結果はエラー値となってしまいます。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
この場合のエラーは、検索値の初めの「1」が、検索対象の中にみつからない場合に出ます。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
このように、複数の値やセル範囲をカンマ区切りにして
{ } (大かっこ) の中に入れ、 |
|
|
|
1つの式の中で取り扱えるようにする方法を「配列」と言います。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A検索対象(住所) に "1234567890"
の「ダミー数字」を「&」でつなげる |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
エラー値を出さないために、検索値と同じ1〜0の数字(ダミー数字)を、検索対象につなげます。 |
|
|
|
すると、検索対象は→「渋谷区恵比寿西2-2-81234567890」となり、 |
|
|
|
|
|
検索値が全て見つかります。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
数式: |
=FIND({1,2,3,4,5,6,7,8,9,0},B5&"1234567890") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
結果: |
13 |
← |
エラー値を出さないように設定できました。 |
|
|
|
|
|
|
|
|
しかし、この結果は、検索値「1」の位置になります。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BMIN関数で囲み、正しい結果を抽出 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FIND関数だけの式の場合、それぞれの検索結果を表示できず、 |
|
|
|
|
|
最初の検索値「1」の位置の値だけが抽出されてしまいます。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
←求めたい数字の位置の値は「8」です。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
結果:× |
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
そのため、MIN関数でFIND関数を囲み、FIND関数の結果の最小値を抽出します。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
数式: |
=MIN(FIND({1,2,3,4,5,6,7,8,9,0},B5&"1234567890")) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
結果:○ |
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
数字の値を求める数式が完成しました。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
■値を元に、LEFT/SUBSTITUTE関数を使って、地名と番地を表示 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
地名をLEFT関数、番地をSUBSTITUTE関数 を使用して求めます。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LEFT関数: |
番地より左の文字(地名)を出すために使用します。 |
|
|
|
|
|
SUBSTITUTE関数: |
住所から、LEFT関数を利用して出した「地名」の部分を消して、 |
|
|
|
|
|
|
番地を出すために使用します。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
数式は以下のように設定します。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
地名を求める数式: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
数式: |
=LEFT(B5,F5-1) |
|
|
|
|
※1 |
|
|
|
|
または |
|
|
|
|
|
|
|
|
|
|
数式: |
=LEFT(B5,MIN(FIND({1,2,3,4,5,6,7,8,9,0},B5&"1234567890"))-1) |
|
※2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
結果: |
渋谷区恵比寿西 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
・地名を求める式について |
|
|
|
|
|
|
|
|
|
※1の式は、別のセルにFIND関数の結果を出して、その値を参照した方法です。 |
|
|
|
|
※2の式は、別のセルを使わずに、直接FIND関数を入れた方法です。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
番地を求める数式: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
数式: |
=SUBSTITUTE(B5,G5,"") |
|
|
|
※3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
結果: |
2-2-8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
※「サンプル」シートに上記の関数を設定してあります。ご参照下さい。 |
|
|
|
|
|
(※1、※2、※3 の各番号がついています) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
住所一覧を地名と番地に分ける事ができました。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
■【補足】番地に全角数字が混じっている場合 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
番地に半角数字と全角数字が両方ある場合は、以下の例のように、番地を正しく分ける事ができません。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
このような場合は、検索対象(住所)を、ASC関数で囲み、住所内の数字を全て「半角数字」として、 |
|
|
数字の位置を出します。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
※ASC関数とは、全角の英数カナ文字を、半角文字に変換する関数です。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
・ASC関数を使用しない場合 |
|
結果 |
|
地名 |
|
番地 |
|
|
|
|
渋谷区恵比寿西2-2-8 |
|
|
10 |
渋谷区恵比寿西2- |
2-8 |
× |
|
|
|
|
|
|
|
|
|
|
|
|
|
・ASC関数を使用した場合 |
|
結果 |
|
地名 |
|
番地 |
|
|
|
|
渋谷区恵比寿西2-2-8 |
|
|
8 |
|
渋谷区恵比寿西 |
2-2-8 |
○ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
→(C148) は住所のセルです。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
全角数字が混じった住所でも、地名と番地を分けることができました。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
注: |
番地は、元の住所と同じ、半角数字と全角数字が混じった状態になります。 |
|
|
|
|
|
数字を半角に統一させたい場合は、番地を求める数式を「ASC関数」で囲みます。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
※「サンプル」シートに番地の表示を半角にする数式を設定してあります。ご参照下さい。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Copyright(C) アイエルアイ総合研究所 無断転載を禁じます |
|
|
|
|
|
|
|
|
|
|
|
|
|
|