• ベストアンサー

EXCEL 重複ファイルの抜き出し

6万件以上の品目コードから重複ファイルだけを抜き出したいのですが 重複といっても ABC-123C ABC123-C ABC123C の様な感じで完全に一致しているのとは違います 6万件もあるので一個一個検索していくのは膨大な時間と浪費を費やしてしまいます 何かよい方法ありませんでしょうか? フリーで配布されているマクロデータでもよいので 教えて下さい よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.4

#3です。間違いました。 こっちです。 Sub test01() Dim lr As Long Dim ns As Worksheet With ActiveSheet lr = .Cells(Rows.Count, "A").End(xlUp).Row .Range("A1:A" & lr).Copy End With Set ns = Worksheets.Add With ns .Range("A1").PasteSpecial .Range("A1:A" & lr).Replace What:="-", Replacement:="", LookAt:=xlPart, _ MatchCase:=False, MatchByte:=False .Range("B1:B" & lr).FormulaR1C1 = "=COUNTIF(R1C1:R" & lr & "C1,RC[-1])" .Range("A1:B" & lr).AutoFilter .Range("A1:B" & lr).AutoFilter Field:=2, Criteria1:=">1" .Range(.Cells(1, "A"), .Cells(1, "A").End(xlDown)).Copy .Cells(lr + 1, "A").PasteSpecial Application.CutCopyMode = False .Range("A1:B" & lr).AutoFilter .Rows("1:" & lr).Delete Shift:=xlUp End With End Sub でした。

その他の回答 (4)

  • KuMa_bEaR
  • ベストアンサー率38% (5/13)
回答No.5

Excel重複行抽出ツールで重複を抽出できます。 http://www15.big.or.jp/~t98907/duplication/

参考URL:
http://www15.big.or.jp/~t98907/duplication/
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

> 品目コードから重複ファイルだけを抜き出したいのですが 「重複ファイル」とは何ですか? 品目コードが重複しているものを探したいと言うことでしょうか? > 重複といっても ABC-123C ABC123-C ABC123C の様な感じ 「感じ」ではわかりません。 ハイフォンを無視するということですか? それでよければ、品名コードがA列にあるとして以下のマクロをお試しください。 重複した品名コード(ハイフン削除後)だけを新たに挿入したシートに表示します。 Sub test01() Dim lr As Long Dim ns As Worksheet With ActiveSheet lr = .Cells(Rows.Count, "A").End(xlUp).Row .Range("A1:A" & lr).Copy End With Set ns = Worksheets.Add With ns .Range("A1").PasteSpecial .Range("A1:A" & lr).Replace What:="-", Replacement:="", LookAt:=xlPart, _ MatchCase:=False, MatchByte:=False .Range("B1:B" & lr).FormulaR1C1 = "=COUNTIF(R1C1:R42C1,RC[-1])" .Range("A1:B" & lr).AutoFilter .Range("A1:B" & lr).AutoFilter Field:=2, Criteria1:=">1" .Range(.Cells(1, "A"), .Cells(1, "A").End(xlDown)).Copy .Cells(lr + 1, "A").PasteSpecial Application.CutCopyMode = False .Range("A1:B" & lr).AutoFilter .Rows("1:" & lr).Delete Shift:=xlUp End With End Sub

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

一般的な、作業列案紹介いたします。 A列が品目コードとして、作業列のセルに =COUNTIF(A2:A60000,A2) =COUNTIF(A2:A$2,A2) =COUNTIF(A2:A$60000,A2) 入れて下フィル(フィルが大変な場合、セルの右下にマウスあてて+になったらダブルクリック) それぞれ、A列の値が何回重複されているか、件数がでますので、オートフィルターで、2以上を表示させると、OKです。 2番目、3番目の式の場合は、重複の場合に何番目かになります。 重複しても、1度は表示残したい場合などに利用してください。 下フィルした式の違いを良く見てください。 但し、ABC-123C ABC123-C ABC123C の場合は、重複に数えません。 違いが、-だけであれば、置き換えで、-を空白に置き換えるなどして、統一させる作業がまずは必要です。

  • neconama
  • ベストアンサー率26% (146/541)
回答No.1

6万件、気が遠くなりますね。 まず、品目コード順に並べ替えを行ってするのがいいと思います。 順番を崩したくなければ、連番を振ってから行ったほうがいいです。 あと品目コードが統一できてないのなら、品目コードのリストを作り、 入力規則で、その中から選んで入力できるようにしたほうがいいでしょうね。

関連するQ&A