- ベストアンサー
Excel 重複データの抽出方法を教えてください。
質問させていただきます。 以前重複しているデータの抽出方法を教えていただいたのですが・・。その時は 重複しているものの2つ目以降のものに印がつくようなものを教えていただいたのですが。今回は重複しているもの全部を知りたいときのだしかたを教えてください。 3万件ちかくあるため手作業でやってると時間がかかってしまいます。宜しくお願い致します。説明がわかりにくくてすみません^^;
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
前回のって =COUNTIF(A$2:A2,A2) で結果が1でないものという数式ですか?それなら =COUNTIF(A:A,A2) で結果が1でないものをオートフィルタで抽出すればいいのでは?
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
前回の質問の回答で、本質問にも、推測が付かないですかね。 =IF(COUNTIF(A:A,A1)>1,"*","") で a * s * d a * s * f g h yu s * a * のようになるが、これで質問に沿わない点はどういう点でしょう? >抽出方法 関数でやる方法,自称imogasi方式のようなのもありますが、シートの式(OKWAVEでimogasi方式で照会すれば私の回答の中に考え方有ります)が多くなるので、VBAでやるほうが良いと思う。 手作業で、ソートをかけて、VBAで直前と同じものがあればは残し、唯一の物は捨てるのが、処理ロジックとしては簡単です。
- zap35
- ベストアンサー率44% (1383/3079)
1)関数で行う場合 B列 → 補足と同じ C列 → 下のセルと同じなら*にする c2の式 = if(c2=c3,"*","") D列 → B列とC列の和を取る d2の式 =if(or(b2="*",c2="*"),"*","") 2)VBAで行う場合 StartROW = 2 'データの開始行 datCOLUMN = "a" 'データがあるカラム の部分は半角で値をセットして実行してみてください。データ列の一つ右の列にマークを表示します。 データが昇順に並んでいなくてもOKです。 Sub 重複抽出() Dim idxROW, LastROW, StartROW, intCount As Long Dim datCOLUMN, datADRS, buf As String StartROW = 2 'データの開始行 datCOLUMN = "a" 'データがあるカラム buf = datCOLUMN & ":" & datCOLUMN LastROW = Range(datCOLUMN & "65536").End(xlUp).Row '最終行取得 For idxROW = StartROW To LastROW datADRS = datCOLUMN & CStr(idxROW) intCount = Application.CountIf(Range(buf), Range(datADRS)) If intCount > 1 Then Range(datADRS).Offset(0, 1) = "*" Else Range(datADRS).Offset(0, 1) = "" End If Next End Sub
補足
以前は↓ =IF(COUNTIF($A$2:A2,A2)>1,"*","") こういった数式を教えていただいて重複データを抽出したのですが。 前回 今回 A列 B列 A列 B列 D社 D社 C社 C社 * C社 * ⇒ C社 * A社 A社 * B社 B社 A社 * A社 * ↑説明が下手で分かりにくいと思いますが・・・。 重複してるものすべてがしりたいということなんですが。 初心者なんで 数式詳しく教えていただければと思います><