- 締切済み
重複ファイルの検索
サーバーにある重複するファイルを整理したいため、ファイルリストを作り、エクセル2000でCOUNTIF関数を使って、同一ファイル名の数を数えるようにしたのですが、ファイルの数が多い(約30,000)あるため、30,000ファイルの横のセルにCOUNTIF関数を書き込むと、計算にすごく時間がかかってしまいます。(10分以上) 時間を短縮する方法はないでしょうか? エクセル以外のソフト(アクセス)やフリーソフトでも構いません。 アドバイスお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
いつも私は、こういう型の処理に「ソート法」を言っています。 (1)ファイル名について A.CSVファイルに B.またはエクセルシートに 書き出します。質問では、B.は終わっているようです。 (2)ファイル名の列でソートします。(元に戻したい場合は別列に 連番を振っておく) (3)最終行の行数を取得します。For Nextのカウンタ最終値に、シートで目視で拾ってプログラムへ書き込んでも良い。 (4) 最初のデータ行から(3)の最終行まで下記を繰り返し。 (5)上行から、ファイル名の列各セルの値について、前の行の値(m)と違えば読み飛ばしす。 同じならば、別列に書き出すか、その行の決めた列にサインを書く。 mに現在のセルの値を書く。 (6)(4)に戻り繰り返し。 簡単な10行程度の、VBAプログラムです。 ーーー 処理時間は (1)30000行のエクセルのソート時間 (2)30000行をエクセルが読む時間 ですみます。 (1)も数分で終わると思いますが、実際にテストしてください。 CSVファイルに書き出した場合、レコードをソートするソフトを探さないといけないが。 アクセスでもソートは30000件など大丈夫で、上記プログラムロジックは、ADOで各レコードを読むサンプルをWEBから仕入れれば、エクセルと難しさやプログラム行数は、エクセルVBA+10行程度か。 重複ファイルの削除は、WEBででも「ファイル 削除」でWEBで照会し て、判らない点は改めて質問してはどうでしょうか。
このソフトなら結構いろいろ出来ます。 ファイル名が違っても中身が同じ事の判定とか。
- hishman
- ベストアンサー率37% (19/51)
http://cowscorpion.com/Cleaner/easycleaner.html このソフトなら調べることができますよ。 でも削除は自分の責任でやってくださいね。
- neKo_deux
- ベストアンサー率44% (5541/12319)
1) まず、ファイル名で並べ替え。 2) ファイル名(A1)の隣(B1)に、 B1=IF(A1=A2,B2+1,1) とすると、同じファイル名のグループの最初の行に数が表示されます。 3) オートフィルタで絞込み。 とか。