- ベストアンサー
Access2000で、違う列の重複を検索したい
1チームは2人からなり、同じ人が別のチームに参加できません。 1レコードにA氏、B氏、2レコードにB氏、C氏とエントリーがあったのですが、B氏は重複しているので、重複レコードとして検索したいのですが、良い方法を教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>実は氏名欄が3列あります。・・・3列もあるとどうやっていいものやらわかりません 単純です。 SELECT テーブル名.チーム名, テーブル名.氏名1 FROM テーブル名 UNION SELECT テーブル名.チーム名, テーブル名.氏名2 FROM テーブル名; にもう一つフィールドを追加すれば良いんです。 SELECT テーブル名.チーム名, テーブル名.氏名1 FROM テーブル名 UNION SELECT テーブル名.チーム名, テーブル名.氏名2 FROM テーブル名 UNION SELECT テーブル名.チーム名, テーブル名.氏名3 FROM テーブル名; これで3列結合できます。 あとはこのユニオンクエリを元に重複クエリを作れば完成です。
その他の回答 (4)
- O_cyan
- ベストアンサー率59% (745/1260)
>ユニオンクエリ?はどうやってやるのでしょうか まず選択クエリを作ります。ウィザードがでますので簡単に出来ます。 例えばテーブルのフィールドがチーム名・氏名1・氏名2とした場合 テーブル名を指定して進めチーム名と氏名1を表示するように進め保存します。 そのクエリをデザインで開きメニューの編集からか右クリックでSQLビューを選択すると SELECT テーブル名.チーム名, テーブル名.氏名1 FROM テーブル名; となっているはずです。 そのSQLビューにUNIONでもう一度テーブル内からフィールドを結合する記述を下記のように追加します。(UNION以降が追加する記述) SELECT テーブル名.チーム名, テーブル名.氏名1 FROM テーブル名 UNION SELECT テーブル名.チーム名, テーブル名.氏名2 FROM テーブル名; そして保存します。 保存したクエリを開くとチーム名と一つのフィールドに氏名1・氏名2両方表示するクエリが出来ます。 保存したUNIONクエリを使ってクエリの新規作成で重複クエリウィザードを使って作ったUNIONクエリを選択しウィザードに従って進めれば作れます。 これが簡単なやり方です。
お礼
詳しい回答をありがとうございます。 ユニオンクエリはできました。そんなやり方があるとは知らず勉強になりました。 ただ、実は氏名欄が3列あります。ユニオンクエリで同列にデータを持ってきて、同列の重複を探すというのは出来そうですが、3列もあると、どうやっていいものやらわかりません。頭が混乱してきました。
- imogasi
- ベストアンサー率27% (4737/17069)
#2です。 ●列分解は「選択クエリウイザード」 ●各々の列内重複は、「重複クエリウイザード」でできるようです。 ●#2で書いた、(A列対B列の重複について) 「そしてA,Bクエリを対象に重複クエリウイザードで発見できないですか。」 はクエリの「不一致クエリウイザード」で「Is Not NUll」(通常はIs Null)にすればできそうです。 訂正します。
お礼
また回答をありがとうございます。 各々の列内重複は、重複クエリウイザードでできました。でも、別列との重複は、どうもできません。もう少し詳しく教えていただけないでしょうか。お手数をおかけします。
- imogasi
- ベストアンサー率27% (4737/17069)
正面からの回答ではないのですが、エクセルにエクスポートして(60000以下と仮定する) A,B列 a c s x d v c g a o f d g k h e としてC列にでも =IF(OR(COUNTIF($A$1:A1,A1)>1,COUNTIF($B$1:$B$10,A1)>=1),1,"") と入れて式を下方向に複写する。$B$10の10は最下行を指定に変えてください。 結果はd、c、a、gの行に1が出ます。 B列側からもB列内だけでの重複チェックをCountIFでチェック必要(略)。 アクセスでの回答なら、2フィールドなら(少ない数なら)、 クエリでAフィールドだけの選択クエリ、Bフィールドだけの選択クエリを作って、各1列ずつばらして2クエリをつくる。 そしてA,Bクエリを対象に重複クエリウイザードで発見できないですか。 Aクエリ、Bクエリ内での重複発見はAとAコピーなどで重複クエリウイザードが使えないでしょうか。 わたしもテストしてみます。
お礼
回答をありがとうございます。また一緒に考えてくださり大変助かります。 エクセルへエクスポートして関数を当てることはやってみましたが、件数が膨大なためか、パソコンが固まってしまうのであきらめざるを得ません。
- O_cyan
- ベストアンサー率59% (745/1260)
例えばテーブルに ID Member1 Member2 1 A B 2 B C とした場合 ユニオンクエリでMember1とMember2を結合させて重複する値を抽出すれば良いのではないでしょうか。
お礼
回答をありがとうございます。 ユニオンクエリ?はどうやってやるのでしょうか。素人なのでもう少し詳しく教えていただけると助かります。
お礼
ありがとうございます。 お礼が遅くなり失礼しました。 できました。丁寧にご指導ありがとうございました。