[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『データから3件以上重複しているものを抽出したい』(とみん)
初めてこちらで質問させていただきます。よろしくお願いします。
A B C D E
* A株式会社 ○○県○○市・・・ 00001
A株式会社 ○○県○○市・・・ 00002
* B株式会社 ○○県○○市・・・ 00001
B株式会社 ○○県○○市・・・ 00002
B株式会社 ○○県○○市・・・ 00003
* C株式会社 ○○県○○市・・・ 00001
C株式会社 ○○県○○市・・・ 00002
C株式会社 ○○県○○市・・・ 00003
C株式会社 ○○県○○市・・・ 00004
・ ・ ・
・ ・ ・
・ ・ ・
・ ・ ・
上のようなデータベースから、データが3行以上ある会社について別シートに移したいと考えています。
(上の例だと、B株式会社とC株式会社が該当します)
既にデータは会社順に並べ替えられています。
A列の「*」は「その会社のデータの先頭行であること」を表し、D列の数字(実際は文字列ですが)は「その会社の何番目のデータか」を表しています。
「*」がついた行から、次の「*」の前の行までは同じ会社のデータとしてシートを移すときはセットにしておきたいです。
E列に何らかの表示ができれば、オートフィルタで抜き出すことができるかと思うのですが。
データは5万件ほどあり、処理が重いです。
「データが2件重複している会社」と、「3件以上重複している会社」にシートを分けたい、というのが作業の趣旨です。
つたない説明で申し訳ないのですが、どうぞお知恵を貸してください。
[エクセルのバージョン]Excel2000[OSのバージョン]Windows2000
E1=IF(COUNTIF($B$1:B1,B1)=2,2,IF(COUNTIF($B$1:B1,B1)=3,3,"")) 上記の式で2件と3件以上の区別ができます。
D列がすでに入っているなら D列を基にオートフィルタすれば出来ますけどね(^_^A; (川野鮎太郎)
D列には既に重複数が入っています(文字列ですが、数値にも関数で変換できますよね?)
D列でオートフィルタも考えたのですが、それだと「3以上」の行だけを抜き出す形になってしまい、1・2件めが残ってしまいます。
3件以上ある会社については、00001から全てに印を付ける方法はないものでしょうか。
上の例でいうと、
B株式会社は3〜5行目、C株式会社は6〜9行目 ということになります。
重複数なら、空いている列に「=COUNTIF($B$1:$B$1000,B1)」はどうですか? 3以上に*なら =IF(COUNTIF($B$1:$B$1000,B1)>=3,"*","") かな? (Hatch)
実際のデータは、会社名が必ず同じかどうか不明なので、
(支店名入っていたり抜けていたり・・・など)
できればD列を基準にしたいのですが、無理そうですよね^^;
明日、会社で実際のデータを使ってトライしてみます。ありがとうございます。
D列に入っているものがあるのであれば、D列のオートフィルタで 00002を選択すれば 2件重複の分だけ、00003を選択すれば 3件重複の分だけになるのでは?
( ̄0 ̄;アッ 勘違い・・・。ダブって出てくるからダメって事ですね。 であれば、当初の私の式で出来るはずですけどね。 またもや勘違いでし_/ ̄|○ il||li 2件だけのものも抽出しないといけなかったですね。失礼しました。 (川野鮎太郎)
ご意見を参考にしつつ、ふとひらめいた下記の数式で解決しました。
=IF(OR(D1>=3,AND(D1=1,D3=3),AND(D1=2,D2=3)),"*"," ")
ありがとうございました!
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.