• ベストアンサー

エクセル表での列単位の重複チェックについて教えてください。

エクセル表の複数列の重複チェックのやり方を教えてください。 内容は一列につきデータが3000件ほどあるのですが 列はとびとびで3~4列ほどあります。 その列に入力したデータの重複チェックです。 いくつかのサイトをみてみたんですが なにぶん初心者なのでお願いいたします。 勝手かもしれませんが関数を記載していただければ幸いです。 行き詰まっている状態なんですがご教授お願いいたします。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

=COUNTIF(列1,対象セル)+COUNTIF(列2,対象セル)+COUNTIF(列3,対象セル) とCOUNTIFを繰り返して結果が1なら重複なしになりますが... =IF(COUNTIF(列1,対象セル)+COUNTIF(列2,対象セル)+COUNTIF(列3,対象セル)=1,"OK","重複") とかにするとか 「書式」「条件付き書式」にて 「数式が」「COUNTIF(列1,対象セル)+COUNTIF(列2,対象セル)+COUNTIF(列3,対象セル)>1」 で塗りつぶしの色を設定して確認するとか...

その他の回答 (2)

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

3列のデータが同じ場合を「重複」とする。(4列の場合は同様なので応用のこと)。2列一致は別データとする。 <準備> (1) 空き列を探す。そこへ行ごとに連番を振る  そのために関数は =row()と入れて下方向に式を複写する。 自分自身に自分の値を複写して、式を消す (2)元のデータをコピーする。すなわちデータのあるシートのコピーをとる。基データは残しておく。 <ソート> コピーをとった方(副)のデータで、3列について 大分類>中分類>小分類になるよう、3列をキーとして、大分類に当たる列を第1キー、中分類に当たる列を第2キー、小分類に当たる列を第3キーにして、全レコードを並べ替える。前列全行範囲指定をしてソートすること。 (4列あるときは最初に第4キーで並べておき、あと上記を行う) <重複検出> 下記をVBEのThisWorkbookの標準モジュールに貼り付けてF5キーを押すと実行されて、Sheet2にッ重複リストが出る。 Sub test02() d = Range("A65536").End(xlUp).Row j = 1 '--- For i = 2 To d If Cells(i, "A") = Cells(i - 1, "A") And Cells(i, "C") = Cells(i - 1, "C") And _ Cells(i, "D") = Cells(i - 1, "D") Then For K = 1 To 7 Worksheets("Sheet2").Cells(j, K) = Cells(i - 1, K) Next K For K = 1 To 7 Worksheets("Sheet2").Cells(j + 1, K) = Cells(i, K) Next K j = j + 2 End If Next i End Sub Ifのところに"A","C","D"がありますが  A,C、D 列について重複を考えています。別の場合は変え方は判りますね。 K = 1 To 7の7は基データが連番を含めてG列までとしています。 J列まであれば10です。 重複リストはSheet2に出しています。別のシートに出すときはシート名を別のものに変えること。 4列の場合はAnd _ Cells(i, "G") = Cells(i - 1, "G") などをDの後に追加 ーー 重複リスト(上記ではSheet2)は、3つ以上重複しているときは(手抜きで)重複して出ますが、簡単のためのそうしています。 重複リストの例 イメージ aaa ccc dddd 1 aaa ccc dddd 6 aaa ccc dddd 6 aaa ccc dddd 10 ad pd sd 2 ad pd sd 5 ad pd sd 5 ad pd sd 8 ーーー これではデータ内容に不統一があるとチェックにもれます。 何のことか判りますね。あと元データを見直してください。

  • ensan8
  • ベストアンサー率45% (45/100)
回答No.2

質問への質問ですが、複数の列を仮にA列、C列、E列とします。重複はA列の中での重複をチェックするのですか?それともA列、C列、E列のどこにでも同じデータがあれば重複とするのですか? 列の中だけでの重複チェックならその列の隣にチェック用の列を作り、countif文でチェック用の列のセルの隣のデータセルと同じデータの個数を列全体で数えて、個数が2以上の場合にエラーメッセージを出せば良いのです。 複数のとびとびの列のデータ間の重複チェックとなるとそのままではcountif文で指定できないので、別に連続した列(例えばG列、H列、I列)に元の列のコピーを作っておいて(単純に=文で良いです)そこでcountif文でデータの個数を数えれば良いでしょう。

関連するQ&A

専門家に質問してみよう