- ベストアンサー
エクセル1万社同じような言葉を発見し一つの言葉におきかえる法
たくさんの会社名(重複あり)のリストをまとめています。全体で何社あるかをしりたいのですが 株式会社 ソニー ソニー ソニー (株)(微妙な空間) ソニー 株式会社 ソニー(株)(半角・全角のちがい) などがありこれらをすべて 例えばソニー株式会社におきかえ、1社とカウントしたいのです 重複を省いても2000社はあるとおもうので 全部フィルターなどで調べきるためにはそうとうの時間がかかっています。 半角を全角に直す、似たようなものを検索して次の列にsimilarと記すなどおこないたいのですがなにか良い方法はありませんか。 お分かりになる方おしらせください。 ちなみに EXCEL2000ですがOSがNTなのであまりXPベースなことができません
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
苦労した私の経験から、参考事項を (1)根本的に、一般的に株式会社 ソニー とソニー 株式会社 を同一会社とするのは無理があります。 別会社があり、良く判っている人間が見て判断をしないとなりません。 (2)人間が社名(修正社名の場合もある)を見て、同一かどうか、判断するプロセスが必要です。 (3)しかし当初のまま、そのまま見ても手におえません。そのため 関数なり置換なり、VBAなりを駆使して自分の思うような 「修正会社名」を作らねばなりません。 作り方にはコツがあります。 (4)最後に頼みとするのは、ソートによる、同一のものの近接化と類似のものの近接化(リスト内の近くにリストされる)です。 その際文字列の、より左の文字が大きく影響するので注意しましょう。例えば前(株)は、省かないとなりません。 前(株)の付いた社名と、洩れている社名に2分されてしまうからです。 (5)全角・半角の統一、中間スペースの削除は異論ないでしょう。 (6)もとの社名も修正会社名リストの隣列に残しましょう。参考にするために。 (7)十分修正会社名が完成したら、ソートして、社数は A列が a a b b b c とかなった時、B1には1 B2に=IF(A1=A2,B1,B1+1) と入れて最下行まで複写すれば、最下行に社数が出ます。
その他の回答 (5)
- absurd0rt
- ベストアンサー率23% (4/17)
あなたが望んでいることはいわゆる「データクレンジング」と呼ばれるものだと思います。 非常に大変な問題で、あなたが満足する回答は得られないと思います。このサービスを引き受けている会社もありますが非常に高額のはずです。またこれに住所が関わってくる場合さらにやっかいなことになります。このごろニュースで市区町村の合併などをよく聞くと思われますので想像はつくと思いますが。 多大な時間がかかることを前提にNo.5さんのようにするのが一番だと思います。 また補足ですが、同一の社名を表す会社や支店部署名等がつく場合にも注意してください。(NEC = 日本電気,Microsoft = マイクロソフト)
- 参考URL:
- http://www.agrex.co.jp/
お礼
はっきり教えて頂いてよかったです。ほっとしました。 こういうビジネスがあることを知りませんでした。 とても参考になります。上司にどこまでせいかくなクレンジングが必要かをこちらのホームページを見せてきいてみます。1週間はかかりそうですね。 確かに社名や支店部署などもチェックしなければならないし、住所もチェックする必要が有りそうです。 つぎは No,5のかたをためしてみます。 ありがとうございました。
- dejiji-
- ベストアンサー率38% (327/858)
必ずソニーが入っているのですよね。 もしそうなら、編集→置換で検索文字列を「*ソニー* 」とすれば、ソニーを含む単語全てが選択され、置換後の単語に変換できますが。
お礼
そういわれてみればこちらも一案ありますね。 ただ社名が1万件ちかくあるため、私の知らない社名を逃す可能性があるとおもわれます。 精度の問題なので、こちらの置換という手も使ってみます。 ありがとうございます。
- souta_n
- ベストアンサー率33% (79/234)
>1社とカウントしたいのです。 あっ、カウントもしたいのですね。 さっきの式でB列に表示が出来たら、 任意のセルに=countif(B列のデータ範囲,"ソニー株式会社")の数式で出来ます。
- souta_n
- ベストアンサー率33% (79/234)
A1のセルから下にズラリと会社名が並んでいると仮定します。 B1のセルにコンバート後の表示をさせる計算式を入れます。計算式は次の通りです。 =IF(OR(IF(ISERROR(FIND("ソニー",A1,1)),0,FIND("ソニー",A1,1))>0,IF(ISERROR(FIND("ソニー【ここは半角で、この部分は計算式からはずしといてね】",A1,1)),0,FIND("ソニー【ここも半角で、この部分も計算式からはずしといてね】",A1,1))>0),"ソニー株式会社",A1) 式の意味はゆっくり考えて下さい。分からなかったら補足要求していただければまたお答えします。たぶんB1にコピ-ペーストしてフィルで2000行下にコピーすれば、あれあれ、ソニーまたは半角ソニーを含む会社名は全部ソニー株式会社、それ以外はそのままの表示がされるはずです。
お礼
やってみましてかなり使える式をおしえていただいてありがとうございます。 ただ今回の場合問題はソニーだけではないことで、他にもいろいろ社名キャノン キヤノン などなどがあり1行ずつ作っていくとコラムがいくらつかっても足りなくなりそう。。。ほんと泣けてきますがこちらの関数勉強します。とても参考になりました。すばらしい。ありがとうございます!
- makirabi
- ベストアンサー率38% (107/276)
回答になるかどうかわかりませんが。 私がやったやり方で。 まず半角、全角を揃えます。 http://www.okweb.ne.jp/kotaeru.php3?q=722494に やり方が載ってます。 その後にオートフィルタを付けます。 該当の列のフィルタを開き、「オプション」を選び 「ソニー」を「含む」でソニーの一覧を出します。 後は全て正しい社名を一気にコピーしました。
お礼
ありがとうございます。分かりやすかったです。 TRIM関数と併用して90件くらい減りました。 が後3000件いろいろな会社名をフィルターで探すとおもうときが遠くなりますががんばります。
お礼
置換とソートはべんりですね。 修正会社名ということはじりきでやっていましたがどうしてもミスがでるのでかなり難しいです。 現在社内で外部委託するかどうかの調整中です。 とても参考になりました。どうもありがとうございます。 とても大変な作業です。経験者の方買いらしてほっとしました。