• ベストアンサー

名簿データベースの重複チェック

2つの名簿データベースがあります。(約3千件) 元はAデータベースで、これに随時、追加・修正を 加えたBデータベースがあります。 このAとBそれぞれに、重複した名簿データが含まれている 可能性があります。 これを重複がないかチェックし、あった場合は BデータベースのB列に "重複" 表示させる方法を 教えてください。 希望結果表示イメージは次ぎのとおりです。 Aデータベース   Bデータベース A列 B列・・・  A列 B列・・・ Z列 aaa         aaa bbb         bbb       重複 bbc         bbd ccc         ccc ddd         bbc eee         eee fff         bbb       重複 希望1:Z列に関数を埋め込み表示 希望2:VBでループ処理 希望3:何でもいいです

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

  • ベストアンサー
回答No.2

多分、Excelなんでしょうね。 データベースA、BってのはExcelのシートなのだとして、そのA列の100行までデータが入ってると仮定します。このとき、A列を昇順でソートされているものとします。 そして、シート名「データベースB」のZ1に以下の式を入力して、下までコピーでどうでしょうか。 =IF(ISERROR(VLOOKUP(A1,データベースA!A$1$:A$100$,1,FALSE)),"","重複")

その他の回答 (3)

  • yama_x
  • ベストアンサー率20% (188/940)
回答No.4

データベースとありますが、勝手にexcelと解釈して 話を進めます。 1.AデータベースのC列の全ての行に「重複」と入力 2.BデータベースのZ列の1行目に以下の式を入力  =VLOOKUP(Z1,[Aデータベース.xls]Sheet名!$A:$C,3,FALSE) 3.Z列の全行にコピー 重複したものは「重複」、重複しないものは「#N/A」が 表示されます。 「#N/A」を消す方法もあったと思うのですが、 とりあえず思い出せないので省きます。 <応用> Aデータベースが加工できないのであれば、 別にどの列を表示させてもよいと思います。 とにかく「#N/A」がでたものが重複していない 行です。 <欠点> vlookupでは半角・全角は違うものとして 扱われます。A列の表記が全く同一でないと 重複とみなされません。 asc、jis、trim等の関数を使って 調整が必要かもしれません。 (各関数についての詳細はHelpを見てください)

at-oyaji
質問者

お礼

本当は、関数かVBできれいにやりたかったのですが、時間がなくて、それぞれのDBをソートして上下関係でチェックを入れることで解決させました。 ある程度の数(重複は約30件でした)に絞ってしまいましたので、とりあえず目で見て手直しです。 もう少し皆さんのご意見を伺いたい気もするのですが、一旦閉めさせていただきます。

at-oyaji
質問者

補足

#1~#4の皆さん、すばやいご回答、ありがとうございます。 データベースはエクセル上です。 ご回答を試してみましたが、いずれもうまくいきませんでした。全て「重複」と表示されたり、空白だったり。 当方の説明がまずく、申し訳ありません。シート1にAデータベース、シート2にBデータベースです。いずれも構造(項目名)は同じです。 AとBは基本的に同じ名簿で、双方に1名づつ名前があれば「OK」です。両方のデータベースをざっと一覧してみると、特にBに重複が見られます。 つまり、今後はBを使用することになりますが、Aに載っている名簿で漏れがないか、Bの中に2重に掲載されたものがないかのチェックをしたいのです。 最初は、VBでBの1件目とAの1件目~3000件目をチェックし、次いでBの1件目とBの2~3000件をそれぞれ重複チェックするものを作成しようとしたのですが、時間がなく挫折気味です。 できたとしても、3千×3千=9百万回の計算をPCに強いることになり、結構な時間がかかりそうで、作成を思いとどまっています。 なお、半角・全角・空白等の問題は解消済です。 もう少し頑張ってみますが、ご支援を引き続きお願いいたします。

  • madman
  • ベストアンサー率24% (612/2465)
回答No.3

Excelとすれば。 =IF(A1<>"",IF(A1=VLOOKUP(A1,[シートA.xls]Sheet1!$A$1:$A$100,1,TRUE),"重複",""),"") をシートBのZ1に記述しましょう。 並んでいる順は不動でかまいません。$A1:$A100に実際にデータに入っている範囲を指定してください。

回答No.1

初めまして。使用しているアプリケーションはアクセスですか?それともエクセルですか?これがわからないと処理の方法が違うのでお答えすることができません。どちらで処理をされたいのかお知らせ下さい。

関連するQ&A

  • Excelの関数に詳しい方、お願いします。

    わかりづらい説明かもしれませんが、よろしくお願いします。 例として、 AAA*BBB*CCC*DDD*EEE*FFF AAA*BBB*CCC*DDD*EEE*FFF AAA*BBB*CCC*DDD*EEE*FFF AAA*BBB*CCC*DDD*EEE*FFF AAA*BBB*CCC*DDD*EEE*FFF ・ ・ ・ といった文字列がエクセルの先頭列A1~A100までずらりと並んでいるとします。 各アルファベットには任意の数字(日付など)が入るとして、この並んだ百件のデータからCCCの部分の最大値を表示するための適切な関数があれば教えていただけないでしょうか? 現在少々急いでいるため言葉足らずで申し訳ありませんが、よろしくお願いいたします.

  • エクセルのリスト表からマトリクス表に丸いを付けたい

    初めて質問させていただきます。 Excel2016を使用しています。 リスト表(A列は重複なし、B列は重複あり) | A | B | 1 | AAA | 111 | 2 | BBB | 222 | 3 | BBB | 444 | 4 | CCC | 222 | 5 | CCC | 333 | 6 | DDD | 333 | 7 | EEE | 333 | 8 | EEE | 444 | マトリクス表(1行目とA列の値は、既に埋め込まれているものです) | A | B | C | D | E | 1 | | 111 | 222 | 333 | 444 | 2 | AAA | ○ | | | | 3 | BBB | | ○ | | ○ | 4 | CCC | | ○ | ○ | | 5 | DDD | | | ○ | | 6 | EEE | | | ○ | ○ | VLOOKUP、INDEX、MATCHなどの関数で考えてみましたが、 正解が見えてきませんでした。 何かよい方法はありますでしょうか。 ぜひよろしくお願いします。

  • 【少し急いでます】エクセルについて教えてください!

    Excel2000を使っています。 A列に重複するデータがあり、B列に別データがあります(20000行強) 例)     A  B 1  001 aaa 2   001 bbb 3   001 ccc 4   002 aa 5  002 bb 6  003 aaa 7  003 bbb 8  004 ddd 9   004 eee 10  005 aa 11  006 bbb A列で重複する001は3行あり、重複しているデータは1行にまとめてB列のaaa、bbb、cccをつなげたいです。(わかりづらくてすみません) 例)     A      B 1  001  aaa・bbb・ccc 2  002   aa・bb 3  003  aaa・bbb というようにまとめたいです。 どのような方法がありますでしょうか? よろしくお願い致します。

  • マクロを使用しての重複チェックについて

    ここの質問にCOUNTIFや条件式書式などでデータの重複チェックを する内容はあるのですが、ちょっと思ってるのと違うので 質問します。 A列 B列 1 aaa 1 aaa 2 aaa 2 aaa 3 bbb 3 bbb 4 ccc 4 ccc 上記のように8行のデータがあります。 条件で、A列の数字が同じ数字でB列が同名の場合は、 チェック対象外で、A列の数字が違う数字でB列が同名の場合 (上記でいうと1 aaa と 2 aaaの場合)は、重複で対象行を 網掛けをするという処理を作りたいのですが、そういうことって できるのでしょうか。 まずは、値を明示的にやるべきだと思いますが、 理想としては、A1とA2が同じ値でB1とB2の値が一緒の値だったら 処理なし。 A1とA2の値が違う値でB1とB2の値が一緒の値だったら 重複っていうような処理を行えたら幸いです。 理由は、どんどんなデータ(行)を追加することを想定させた場合を 考えております。 参考になるのがありましたら教えてください。

  • エクセルの行の中で値が重複しているものを抽出したいのですが。

    基本的なことなのかもしれませんが、とても困ってまして、 教えていただけると幸いです。 以下のような表がある場合に、 3行目と4行目のように複数列で重複している行を 抽出したいのですが、どうすればよいでしょうか。 ※配列は変わらないので、横の行が全く同じもの だけを識別する必要がありまして。 A列 | B列 | C列 ---------------------- aaa |あああ |アアア ---------------------- bbb |いいい |イイイ ---------------------- ccc |ううう |ウウウ ---------------------- ccc |ううう |ウウウ ---------------------- ddd |えええ エエエ ---------------------- eee |おおお オオオ 教えていただけると助かります。 何卒、よろしくお願いいたします。

  • Excelで同一のデータを抽出して横並びに

    A     B  C     D 商品コード 注文数  商品コード 注文数 aaa     15  ccc     4 bbb      12  ddd     6 ccc     10  aaa     22 ddd     6   eee     10 eee     5   bbb     7 fff       8 kkk 9 kkk 7 lll 4 上記のようなデータを 以下のように同じ商品コードを横並びに表示させたいのですが どういったcountifとかで試したのですが上手くいかず、どのような関数を使えば可能でしょうか? A     B  C     D 商品コード 注文数  商品コード 注文数 aaa     15  aaa     22 bbb      12  bbb     7 ccc     10  ccc     4 ddd     6   ddd     6 eee     5   eee     10 fff       8 kkk 7 kkk 9 lll 4 宜しくお願い致します。

  • 検索VBAを教えてください。

    VBAの勉強中です。 超初心者です。 シート1のB3に入力した値を、シート2のデータベースのC列から検索して、その検索した値と同じ行のD列・E列・F列の値を、シート1のB4・ B5・B6に表示したいと思います。 <シート1>    A     B     C     D 1 2     3       あああ ←ここを入力すると 4       aaa   ←表示したい! 5       bbb   ←表示したい! 6       ccc   ←表示したい! <シート2>    A    B    C      D     E     F 1           あああ    aaa     bbb     ccc 2           いいい      eee     fff      ggg 3           ううう      hhh      iii       jjj 4           えええ     kkk      mmm     nnn 5             おおお     ooo     ppp     qqq findを使えばいいと聞きましたが、使い方がよくわかりません。 例を読みましたが、どう自分に生かせばいいのかわかりませんでした。 どなたか未熟な私に教えていただけませんか? どうぞよろしくお願いいたします。

  • sedで文字列の抜き出し

    ある一部分の文字列を抜き出したく、sedを使用したいと思って試行錯誤しております。 ↓あるファイル内の文字列 aaa bbb=ccc:ddd=eee:fff=ggg: aaa bbb=hhh:ddd=iii:fff=jjj: ※aaaとbbbの間はスペースです。 ※bbb,ddd,fffはある一定のキーワードです。 ※ccc,eee,ggg,hhh,iii,jjjはバラバラの文字列で長さも一定ではありません。 【質問】 上記の文字列の中でddd=の後の文字列(eee,iii)のみを抜き出したいです。 以下のようなsedを試してみましたが、 eee:fff=ggg iii:fff=jjj が抜き出されてしまいます。 sed 's/.*:ddd=\(.*\):\(.*\)$/\1/' 恐れ入りますが、皆様の知恵をお貸し下さい。

  • SQL 複数条件を設定

    使用言語はjavaで処理しており、 SQL Server2005にて下記のようなテーブル(T_Kekka)があります。    ID   a-1   a-2   b-1   b-2   c-1   c-2     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄    1   bbb   aaa   ddd    ccc   eee   fff       2   ggg   bbb   ccc     hhh   iii    jjj       3   bbb   mmm   ddd   ccc   fff    eee       4   bbb   aaa   ccc    ddd   qqq   rrr       5   zzz   sss   ttt     ccc   vvv   xxx       6   zzz   aaa   ttt     ccc   vvv   fff       7   zzz   zzz   zzz     zzz   zzz    zzz       8   qqq   rrr   ccc     ddd   fff    eee    検索する値は下記の通りです。 検索値 |a-1|a-2|b-1|b-2|c-1|c-2|  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ |aaa|bbb|ccc|ddd|eee|fff| 期待値としては、aはaのグループで検索、bはbのグループで検索、cはcのグループで検索をし、 一致個数の多い順に出力したいと考えております。(理想は下記のような感じです。) また、グループ内であれば逆転していてもOKです。 (例えばID:1のaグループのような感じです。) *1 一致数が同じ場合はcグループの数が多いデータが最優先となり、その他はID順になります。 期待値    ID   a-1   a-2   b-1   b-2   c-1   c-2   一致数  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄    1   bbb   aaa   ddd   ccc   eee   fff     6    3   bbb   mmm   ddd   ccc   fff    eee    5    8   qqq   rrr    ccc   ddd   fff    eee    4・・・*1    4   bbb   aaa   ccc   ddd   qqq   rrr     4    6   zzz   aaa   ttt    ccc   vvv    fff     3    2   ggg   bbb   ccc   hhh   iii     jjj      2    5   zzz   sss   ttt    ccc   vvv    xxx     1    7   zzz   zzz   zzz    zzz   zzz    zzz     0 知識不足のため私には複雑すぎて悩んでいる状況なので、 どなた様か知識がある方にご教授願いたく思います。 また、まだテスト段階なので現状のようなテーブル構造にしてしまいましたが、 他のテーブル構造の方がデータが抽出しやすかったり、レスポンスがいい場合がありましたら、 ご教授いただけると助かります。 説明が分かりづらく表が見づらくて申し訳ございませんが、 宜しくお願い致します。

  • Access2000によるツリー的なデータベース

    現在、IDと親IDのようなフィールドを設けて親子関係を作っています。 親データをクリックすると子データが表示される、と言う感じです。 データベースは以下のような感じになっています。 id|p_id|name 1| 0|aaa 2| 1|bbb 3| 1|ccc 4| 2|eee 以上のデータベースを使って、コンボボックスにツリー上で表示させたいのですが、何か良い方法はありますでしょうか aaa +bbb ++eee +ccc 見たいな感じです。

専門家に質問してみよう