- ベストアンサー
エクセルで住所の抽出について
ある1つの所在地から、その周辺にある登録先を抽出したいと思っています。 例えば東京都中央区銀座×-×-×という住所があります。基になる住所は都度変り、全国各地のいろいろな住所が入ります。 これに対して登録してある全国の住所録の中から「東京都中央区」と一致するものだけを抽出したいのです。 最終の合致単位は「市」「郡」「区」です。 FIND関数を使い「都」「道」「府」「県」で区切り、更に「市」「郡」「区」で区切る方法もやってみましたが、県によっては○○市○○区となる場合もあり、うまく出来ませんでした。また、郵便番号で一致させようかとも思いましたが、同じ区内でも郵便番号が違っているのでダメでした。 自分ひとりで使用するのであれば、オートフィルタや並べ替えでコピペするのですか、エクセルに詳しくない営業マンに使用させるため、出来れば関数のみで操作できるようにしたいのです。 お知恵をお借りしたいと思います。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
SEARCH関数で、ワイルドカード検索ができます。 セルA1に検索条件(質問の状況でしたら、東京都中央区)を入れて、セルB1に登録してある住所(例えば東京都中央区銀座)を入れるとするならば、このような感じです。 =SEARCH($A$1 & "*",A2,1) 見つからないとエラーが返ってきますので、 =IF(ISERR(SEARCH($A$1 & "*",A2,1)),"×","○") これで、検索条件に該当するものに○がつきます。
その他の回答 (2)
- yenen
- ベストアンサー率27% (16/59)
#2の者です。ちょっとお節介かもしれませんがもう一言。 「一万件以上のエクセルのデータ」これは他のソフトで管理する方がいいと思います。これから増える可能性があるデータならなおさらです。データベースソフトのお仕事です。 エクセルのデータは簡単にアクセスに移せますし、抽出結果をエクセルのフォームではきだすことも簡単です。でも、最終目的が紙への印刷ならアクセスで印刷するのがいいと思いますが。 カッターナイフは紙を切るのには便利ですが、大木を切るのには不向きです。最適な道具の選択が効率化につながります。せっかくアクセスをお使いなのですから。 アクセスのプログラマであれば、おそらく半日の仕事です。 お節介、失礼しました。
お礼
たびたびのご回答ありがとうございます。 そうなんです。データベース入力担当が私だったら最初からアクセスを使ったのですが、当時の担当者がエクセルで作ってしまいました。さらに現在データ入力を行っているが本社でして、支店にいる私が口出しすることもできず・・・と、いろいろ事情があります。 でも、ご回答いただけてありがたいです。また何か質問をたてることがあるかと思います。その時もよろしくお願いします。
- yenen
- ベストアンサー率27% (16/59)
ご質問の意向と違ってしまいますが、この場合エクセルでなくアクセスを使うのがいいと思います。 エクセルはどちらかというと、目で見える範囲内のデータを管理するのに適していると思います。 それに対しアクセスは大量のデータを処理する一般ユーザからプログラマまで使用できるものです。 ご質問のとおり「東京都中央区」と入力してエンターを押せば、それを含む住所の抽出が可能です。 また、PCに詳しくない営業マンが使うにも最適です。銀行のATMのような感覚で操作ができます。 便利に使えるものを作成するのに少しばかり学習が必要ですが、これを習得すれば事務所内の「こんなことしたい」というほとんどの要望に応えることができるようになると思います。 システムに携わったことのない方が大きな仕組みをつくるのは困難ですが、ご質問を満足するものでしたら作れると思います。
お礼
ご回答ありがとうございます。 アクセスもいろいろな業務の中で使っており、まだ未熟ながら簡単なプログラムはできるようになりました。 ただ今回の場合、質問内容の最終到達点は抽出されたデータをエクセルの既存のフォーマットに反映させ印刷することであり、既に1万件以上のデータがエクセル上に記載されているために途中からアクセスに変更は厳しい状況です。 お忙しい中、ご回答頂きありがとうございました。
お礼
ご回答ありがとうございます。 教えていただいた関数でも試してみます。抽出結果の値を表示したかったので”○””×”ではなく、他の数式も組み合わせる必要がありそうです。でもISERRやSEARCH関数は、使ったことのない関数だったので勉強になりました。 有難うございました。