アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルの重複データを抽出したいのですが、単純に列Aのデータから抽出するのではなく、
列AとBとCなど列全体から重複しているかどうかを判別したいです。

英数字の文字列のデータを大量に扱うのですが、上限の104万行を越える為、超えたら次の列の移ってデータを管理出来たらいいなと思っています。


列A     列B     列C
AAA1   DDD4   GGG7
BBB2   EEE5   HHH8
CCC3   FFF6   III9
上限     上限


上記ような表があったとして、新しく取得した英数字のデータを列ABCのデータ全てと重複してないか調べて抽出できますか?
大量のデータなのでデータベース作成するべきなのでしょうが、もしエクセルでも管理出来る方法があれば教えて下さい。

A 回答 (2件)

こんにちは!



>文字列のデータを大量に扱うのですが、上限の104万行を越える為・・・

Excelで処理するのはかなりしんどいですね。

無理やりVBAでやってみました。
とりあえず、A~C列を上から検索し、2度以上出現している行のD列に「重複」と表示するコードにしています。

Sub Sample1()
 Dim myDic As Object
 Dim i As Long, lastRow As Long
 Dim myStr As String
 Dim myR

  Set myDic = CreateObject("Scripting.Dictionary")
   Range("D:D").ClearContents
    lastRow = Cells(Rows.Count, "A").End(xlUp).Row
     myR = Range(Cells(1, "A"), Cells(lastRow, "D"))
      For i = 1 To UBound(myR, 1)
       myStr = myR(i, 1) & "_" & myR(i, 2) & "_" & myR(i, 3)
        If Not myDic.exists(myStr) Then
         myDic.Add myStr, ""
        Else
         myR(i, 4) = "重複"
        End If
      Next i
     Range(Cells(1, "A"), Cells(lastRow, "D")) = myR
    Set myDic = Nothing
    MsgBox "完了"
End Sub

※ 極力速度重視でやってみましたが
104万行のデータで試しましたが、約50秒かかりました。m(_ _)m
    • good
    • 0

あぁ 簡単な、


超基本の レベルですね。

仮に、
A6に 検査対象が、
収まるとして、
エラー処理の 基本部だけだと、

=SUMPRODUCT(( A6=A1:C3)+0)
たった 此だけですね。


知らないのの 知ったかぶりって、
恥が 怖いですね。
「エクセルの重複データの抽出」の回答画像2
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!