エクセル重複データを置き換える方法について

このQ&Aのポイント
  • エクセル(マクロ)データの重複のコーディングについて、年月の古い順に並んだデータを比較し、重複があれば置き換える方法について質問です。
  • 重複したデータを1件ずつ置き換えるか全件置き換えるかの選択肢をユーザーに表示させたいです。
  • 他にも重複データを処理する方法があれば、教えていただけると嬉しいです。
回答を見る
  • ベストアンサー

エクセル重複データ

 分からないことがありましたので、質問させていただきます。エクセル(マクロ)データの重複のコーディングについてです。  データが年月の古い順(昇順)に並んでいます。 項目は、A~X間であったとします。年月の1番古いデータ(1番目)と次に古いデータ(2番目)を比べ、昇順で比べていきます。年月が同じだった場合、項目C、Eを見ます。  同じだった場合、データが重複しているので、 "データが重複しています。置き換えますか"とメッセージを表示させます。  また、置き換えには2つあり、"1件ずつ置き換える場合"と"全件置き換える場合"があります。それぞれ、メッセージを出します。置き換えない場合は、中止します。  私の考えとしては、置き換える場合は、"1件ずつ置き換えますか"とメッセージを表示させ、Noの場合、"全件置き換えますか"とメッセージを表示させたいです。どうすればよいのかご教授願いませんでしょうか。その他に良い方法がありましたらその作法を教えていただけないでしょうか。宜しくお願いします。

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

  • ベストアンサー
  • grace2973
  • ベストアンサー率66% (16/24)
回答No.2

データが同じかどうかということですので If Cells(row, 1) = Cells(row + 1, 1) Then 'A列が同じ場合  If Cells(row, 3) = Cells(row + 1, 3) And  'C列が同じ かつ(AND)    Cells(row, 5) = Cells(row + 1, 5) Then 'E列が同じ場合   '重複している時の処理  End If End If という感じになります。

kerorogunsoum
質問者

お礼

ご教授いただきありがとうございます。 大変参考になりました。

その他の回答 (1)

  • grace2973
  • ベストアンサー率66% (16/24)
回答No.1

メッセージ表示のやり方についてでよろしいのでしょうか? メッセージは MsgBox で表示するものですか? それでしたら If MsgBox("1件ずつ置き換えますか?", vbYesNo) = vbYes Then  '1件ずつ置き換える処理 Else  If MsgBox("全件置き換えますか?", vbYesNo) = vbYes Then   '全件置き換える処理  Else   '何もしない(のかな)  End If End If こんな感じになると思います。

kerorogunsoum
質問者

補足

ご教授いただきありがとうございます。 その前の年月が同じ場合、項目C、Eを見て、重複かどうかの判断をしたいのですが、申し訳ございませんが、こちらもご教授願いませんでしょうか。宜しくお願いいたします。

関連するQ&A

  • 重複しているデータを取得したい

    [TBL_TEMP] ID 年月1  年月2 項目A  項目B -------------------------------------------- 1 200909 200910 aaaa bbbb 2 200807 200809 aaaa bbbb 3 200909 200910 aaaa bbbb 4 200909 200909 aaaa bbbb 5 200807 200809 aaaa bbbb 上記のようなデータがあり、年月1と年月2でグルーピングして、重複しているデータを抽出する場合は、以下のSQLでデータを取得できます。 SELECT MIN(ID),年月1,年月2 FROM TBL_TEMP GROUP BY 年月1,年月2 HAVING COUNT(1) >= 2 上記のSQLの場合、重複データの中でIDが一番小さいもののみが取得されるため、ID=1、2の2データが取得できます。 これを重複データ全件、つまり、ID=1,2,3,5のデータを取得するには、SQLをどのように書けばよいのかがわかりません。 どなたかアドバイスを頂けないでしょうか? よろしくお願いいたします。

  • エクセル重複データを非表示にしたい

    エクセル2003です。重複してるデータを1件のみ表示し他は非表示にする方法お願いします。 データ→フィルタ→フィルタオプションを使用するのは解ってますが詳細がわかりません。 例;A1に品名、B1に購入年月、C1~E1はその他項目としたデータが複数件あります。 品名と購入年月が同じデータ複数あった場合1件のみ表示させたい。 宜しくお願いします。

  • エクセル 重複するデータを1カウントで集計する

    エクセル2000を使用しています。 1.県No 2.県名 3.事業所名 ・・と項目が続く表があります。データは昇順に並べ替えてあります。 1.県Noと3.事業所名が同じ内容だった場合、重複するデータ全て合わせて1カウントとし、重複データの一番頭の1.県Noの後ろに連番の形で1から番号をふるのにはどうしたらよいでしょうか。

  • エクセルの重複データ削除について

    B列に重複している数値が3件あります。 1件のみ消して行は詰めない方法はありませんか データツールの重複データ削除をすると行が詰まってしまいます。 1件のみ表示し空白行にしたい。

  • Accessの重複データ除外について

    Accessクエリで重複データをしようとしていますが、 プロパティで固有の値を「はい」に指定したり、集計項目をグループ化したりすると データの順序が変わってしまいます。(昇順に並び変わってしまいます。) データの順序を変えずに重複データを除外する方法を教えてください。

  • エクセルで重複していないデータを削除したい

    A列 あいうえお あいうえお あいうえお かきくけこ かきくけこ さしすせそ たちつてと たちつてと なにぬねの ↓↓↓ 重複していないデータをスマートに削除したい あいうえお あいうえお あいうえお かきくけこ かきくけこ たちつてと たちつてと 上記のように重複しているデータと重複していないデータがあり、 あいうえお順に並んでいるデータがあります。 このデータの重複していないデータだけをスマートに削除できるやり方が分かりません。 スマートな削除方法を教えてください。 列項目はかなり有り、行も4000件以上あるデータです。

  • エクセルでデータの「どこで重複か」を見つける

    エクセルでデータが「どこで重複しているか」を見つける方法として 以前質問した際に教えていただいたのが B1セルに次の式を入力して下方にオートフィルドラッグします。 =IF(A1="","",IF(COUNTIF(A$1:A1,A1)<=1,"","重複No."&COUNT(A$1:A1,A1))) これで重複があれば上の行から数えてその行のA列に有るデータが何番目の重複であるかがB列に表示されます。 ということでしたがこれには漏れがありました。 =IF(A1="","",IF(COUNTIF(A:A,A1)<=1,"","重複No."&COUNT(A:A,A1))) とすると漏れはありませんが、No.はすべて「0」となるのです。 何番目の重複かが分かる方法はありませんか。

  • エクセルの重複データを削除したい

    エクセルの重複データを削除したいです。重複項目を一つにまとめるのではなく、重複があれば、その項目を全て削除したいです。 シート処理前 ------------ 東京都 神奈川県 千葉県 埼玉県 群馬県 東京都 神奈川県 ------------ これを重複処理します。東京都と神奈川県が重複しているので削除します。 シート処理後 ------------ 千葉県 埼玉県 群馬県 ------------ このような処理をどうしても行いたいです。 実際のデータは1万件以上あり、手動では不可能でした。 どうかお知恵をお貸し頂けませんでしょうか?

  • EXCEL 重複データのカウントについて

    EXCELにて、データをカウントしたいのですが、 重複しているデータは1件とします。 SUMPRODUCT関数を使えばできると思うのですが、 データが、複数のシートにある場合はどのようにしたらよいでしょうか? いろいろ試してみましたが、うまくいきませんでした。よろしくお願いします。

  • 《エクセル2000》重複しているデータが「何回目の既出か」を出す関数ってありますか

    データがA列に100件入っているとします。 その中には重複しているデータもあるのですが、重複している場合「何回出てきたか」を返す関数はありますか? 上からデータをチェックしていって、2回目に出てきたら2、3件重複していて3回目に出てきたら3が入るといったような、です。

専門家に質問してみよう