アクセスにおける重複データの削除方法とは?

このQ&Aのポイント
  • アクセスデータの重複を解消する方法を紹介します。
  • 最新の受診日のデータを残し、古い受診日データを削除する方法をご教示します。
  • 10,000件以上のデータを効率的に処理し、重複データを削除する方法について解説します。
回答を見る
  • ベストアンサー

アクセスにおける重複データの削除について

まったくのアクセス初心者なのでご教授お願いします。 例えば、下記のデータのような場合 社員番号 名前  受診日  1   田中  2003/05/08 1   田中  2005/10/01 2   鈴木  2004/03/11 2   鈴木  2002/07/03 と表示されているデータを、 社員番号 名前  受診日 1   田中  2005/10/01 2   鈴木  2004/03/11 としたいのです。行いたいのは、最新の受診日のデータだけを残して、古い受診日データは削除したいのです。重複クエリで重複している社員番号を持つ人は抽出できたのですが、受診日が異なるためにどちらも「違うレコード」として表示されてしまいます。方法がありましたら教えてください。 何せ10,000件近くデータがあるので、困っています。よろしくお願いします。

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

  • ベストアンサー
noname#254177
noname#254177
回答No.1

テーブル名はテーブル1とします。 1.新規にクエリを作成してください。(デザインビューで) 2.テーブル1を登録して、テーブルが表示されている何も無い所で右クリック→クエリの種類→クロス集計に変えます。 3.フィールド・テーブルと表示されているところに集計が表示されます。これを、社員番号と氏名をグループ化・日付を最大に設定してください。 4.2.の所のやり方で、選択にもどします。 5.クエリを保存してください。 6.このクエリを実行してみてください。 7.目的のデータができているはずです。 8.もう一度クエリをデザインで開いてください。 9.2.の所のやり方で、テーブル作成にしてください。テーブル名はテーブル2とします。 10.フィールド名の日付の所の名前が、日付の最大:日付を日付:日付にして保存してください。 11.このクエリを実行すると目的のテーブル2が作成されます。 12.元のテーブル1を、名前の変更で日付+テーブル1にします。(バックアップ) 13.テーブル2の名前をテーブル1に変更します。 これで他の所も新しいデータで入出力が可能になります。

usanon
質問者

お礼

ありがとうございました。一発解決です。 教えていただいた通りにやったらできました。 できたテーブルの後のことまで考えていただき、 感動です。本当にありがとうございました。

関連するQ&A

  • ACCESS2010で重複データの削除についてよろしくお願いします。

    ACCESS2010で重複データの削除についてよろしくお願いします。 似た質問が多くいろいろ調べたのですが どうしても解決できなく質問させていただきます。 【クエリA】から【クエリB】を得たいです。 (メールアドレスを元に重複を削除したい) 【クエリA】 4月1日 田中 111@yahoo.com 4月2日 鈴木 222@cmail.com 4月3日 鈴木 222@cmail.com 4月4日 石田 333@ocn.com 4月5日 石田 333@ocn.com 【クエリB】 4月1日 田中 111@yahoo.com 4月2日 鈴木 222@cmail.com 4月4日 石田 333@ocn.com 日付のデータ自体(◯月◯日)がなければ、 クエリのプロパティーシートにある”固有の値”を ”はい”にすると重複の削除できるのですが、 日付がはいるとどうしても重複の削除ができません。 日付の項目が必要なのですが、良い方法 はないものでしょうか? 日付ははじめに登録があったほうを残したいです。 よろしくお願いします。

  • ACCESS 重複データ削除の順番について

    追加クエリを使って重複データを削除する時に、削除されるデータについて質問です。 重複レコードを含むテーブルの構造のコピーを作成し、重複レコードを含むすべてのフィールドの主キーを作成して、元のテーブルから新しいテーブルへの追加クエリを実行して、重複レコードを一括削除をしています。 [操作についての参考URL] http://support.microsoft.com/kb/879852/ja =========================================== (テーブル) [ID]  [クラス]  [名前]   [時間]     1     A     ああ   11:00 ←重複 2     B     鈴木   12:00    3     C     アア   13:00     ←重複  4     A     ああ   14:00 ←重複 5     B     森    15:00   6     C     アア   16:00     ←重複  7     B     青山   17:00   8     C     アア   18:00     ←重複     9     A     ああ   19:00 ←重複 =========================================== 上記のようなテーブルで「クラス」と「名前」の2つのフィールドを主キーにした場合、 「A」の「ああ」さんと、「C」の「アア」さんが各3件ずつ重複しています。 しかし、「ID」と「時間」はそれぞれ違っています。 このような場合に、削除されないデータと削除されるデータの違いは何なのでしょうか? ACCESSの仕様でとか、レコードの若い番号順で削除されるとか、明確なルールが あれば教えていただけると幸いでございます。 御手数お掛け致しますが、何卒よろしくお願いいたします。

  • 23歳の事務をやっているOLです。エクセルでの重複データ抽出についての

    23歳の事務をやっているOLです。エクセルでの重複データ抽出についての質問です。仕事で2つのデータから重複データを抽出しないといけなくなったのですが、エクセルはよくわからないので質問させてください。データには顧客番号と名前が入っています。   A列    B列 1 顧客番号  名前 2 1234   田中太郎 3 2345   鈴木一郎 4 3456   佐藤次郎 5 4567   伊藤三郎 6 5678   吉田四郎 ・ ・ ・ データの形式は2つともこのような感じです。 データAには約1,000件のデータがあり、データBには約300件ほどのデータがあります。 AとBの顧客番号が重複している人の顧客番号と名前を上と同じような感じで別のファイルに表示させたいのですが、どうやってやったらいいのかわかりません>< 助けてください。 どうかよろしくお願いします。

  • ACCESS 重複データを1つだけ表示したい(初心者です)

    ACCESSで複数のフィールドに全く同じレコードが複数存在します (例) フィールド1  フィールド2  フィールド3 愛知      田中      12 愛知      田中      12 愛知      田中      12 三重      山本      23 三重      山本      23 岐阜      鈴木      33 岐阜      鈴木      33 もともと他のデーターベースからCSVで落としたものをインポートしているので、データの存在自体はどうしようもありませんが、これらの重複しているデータを1件だけ表示したいのです。つまり (例) フィールド1  フィールド2  フィールド3 愛知      田中      12 三重      山本      23 岐阜      鈴木      33 どのようにすればよいでしょうか。

  • Access2000で重複データに・・・

    Access2000の重複データの処理について質問です。 あるフィールドの重複レコードを検索し、該当するレコードの別フィールドに「●」をつけようとしています。ただ、重複する最初のレコードには「●」をつけたくないのです。 例えば  aaa ・・・ (1)  bbb  aaa ・・・ (2)  ccc  aaa ・・・ (3)  eee というフィールドだった場合、(1)には「●」をつけずに(2)以降にのみつけたいのです。 重複クエリで重複レコードを抽出して重複テーブル作成→重複テーブルと元テーブルを組み合わせて更新クエリ作成という方法でやったのですが、そうすると(1)にも「●」がついてきます。(当然ですが・・・) 何か名案があれば教えてください。 やはり、VBAを使わないと無理でしょうか・・・?

  • アクセス重複データ

    今アクセスのクエリで重複したデータを1つ残してあとは表示させないものを作成したいのですが、クエリの「抽出条件」に何をいれたらいいでしょうか。 よろしくお願いします。

  • accessで重複データの削除について

    accessというよりSQLについてなのかと思いますが、教えていただけないでしょうか。 重複するIDがあり、1件を除いて他のデータを削除してデータを抽出したいです。 抽出条件としては、[年月日]カラムがあるため、日付が一番直近のものを残したいです。  ※こちらも重複しております。 また、[フィルタ]カラムが「2」のレコードのみを対象としたいと思っています。 accessの場合、重複クエリを用いるのかと思い、クエリウィザードから作成しましたが 一意とはなりませんでした。 SELECT テーブル1.[共通ID], テーブル1.[連番], テーブル1.[郵便番号], テーブル1.[住所], テーブル1.[担当者名], テーブル1.[年月日], テーブル1.[フィルタ] FROM テーブル1 WHERE (((テーブル1.[共通ID]) In (SELECT [共通ID] FROM [テーブル1] As Tmp GROUP BY [共通ID] HAVING Count(*)>1 )) AND ((テーブル1.[フィルタ])=2)) ORDER BY テーブル1.[共通ID], テーブル1.[年月日] DESC; distinctも使ってみましたがうまくできませんでした。 何が原因でしょうか。 申し訳ありませんがご教示いただきたくお願いいたします。

  • Accessで特定の重複データを抽出したい

    Access2003です。 重複クエリウィザードを使って、あるテーブルから画像(1)のようなデータを抽出するクエリを作りました。 抽出根拠は「口座番号」「受取人」「請求額」の一致です。 ここから更に「支払日が2016/01/10を含む重複データ」を抽出したいのですが、そのやり方がわかりません。 画像(2)の結果になるのが理想です。 お力添え宜しくお願いします。

  • Accessでの電話番号重複チェック

    Accessでの電話番号重複チェック 10万件ほどの顧客データが入ったcsvがあります。 「ID」「電話番号(1)」「電話番号(2)」「電話番号(3)」 とデータが並んでおり、この「電話番号(1)(2)(3)」が1つでも他のIDのものと 重複しているものを抽出したいのですが、方法はありますでしょうか。 10万件でExcelが使えなくなってAccessで出来るかなと思い立ったのですが、 あまりにも勝手が違い困り果てています。 とりあえず重複クエリで(1)と(2)(3)の重複は出せたのですが、 (2)が(3)と重複しているものや、(1)同士・(2)同士・(3)同士が重複しているデータの、 重複元・重複先全てのIDを抽出したいのです。 抽出する方法はあるのでしょうか。 宜しくお願いいたします。

  • アクセスのクエリで重複しているデータについて

    テーブルの一部分のフィールドを使ってクエリAを作成しています。 [クエリA] 番号 氏名  郵便番号 住所     電話番号 子供 1  田中守  111-0000 東京都・・・ 000-0000 章 2  佐藤健  122-0001 神奈川県・・・ 001-0001 花子 3  田中守  111-0000 東京都・・・ 000-0000 陽子 これを重複しているデータを省くのですが、[子供]の名前はすべて取り出したいと思っています。 どの様にすれば良いか教えて頂けないでしょうか? 氏名  郵便番号 住所     電話番号 子供 田中守  111-0000 東京都・・・ 000-0000 章,陽子 佐藤健  122-0001 神奈川県・・・ 001-0001 花子 最終的には、宛名印刷を行った時に、子供の名前も連名で表示したいと思っての事です。 現在、クエリで行っておりますが、クエリでなくても構いません。 足りない情報はすぐに補足致しますので、お手数ですが、どうぞよろしくお願い致します。 Access2003を使用しております。

専門家に質問してみよう