• 締切済み

重複ファイルの検索

サーバーにある重複するファイルを整理したいため、ファイルリストを作り、エクセル2000でCOUNTIF関数を使って、同一ファイル名の数を数えるようにしたのですが、ファイルの数が多い(約30,000)あるため、30,000ファイルの横のセルにCOUNTIF関数を書き込むと、計算にすごく時間がかかってしまいます。(10分以上) 時間を短縮する方法はないでしょうか? エクセル以外のソフト(アクセス)やフリーソフトでも構いません。 アドバイスお願いします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

いつも私は、こういう型の処理に「ソート法」を言っています。 (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で照会し て、判らない点は改めて質問してはどうでしょうか。

noname#96023
noname#96023
回答No.3

このソフトなら結構いろいろ出来ます。 ファイル名が違っても中身が同じ事の判定とか。

参考URL:
http://www.forest.impress.co.jp/article/2002/10/21/undup.html
  • hishman
  • ベストアンサー率37% (19/51)
回答No.2

http://cowscorpion.com/Cleaner/easycleaner.html このソフトなら調べることができますよ。 でも削除は自分の責任でやってくださいね。

参考URL:
http://cowscorpion.com/Cleaner/easycleaner.html
  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

1) まず、ファイル名で並べ替え。 2) ファイル名(A1)の隣(B1)に、 B1=IF(A1=A2,B2+1,1) とすると、同じファイル名のグループの最初の行に数が表示されます。 3) オートフィルタで絞込み。 とか。