• 締切済み

エクセルのデータ照合

エクセルで、名前、住所、郵便番号、電話などを順にセルに入力し、1000名分の住所録データベースを作成しました。作成の際に、私と妹で全く同じ住所録別々に入力し、あとで、入力したデータを照合しようと考えていたのですが、どのようにしたらよいのかわかりません。エクセルやワードでデータを照合するような方法は無いのでしょうか?

みんなの回答

noname#215107
noname#215107
回答No.6

私は、エクセル自体はほとんど使ったことが無いので、もっといい方法があるかもしれないのですが、 簡易的なVBマクロを作ってみました。エクセルに詳しい人なら、もっと簡単な方法が使えるかもしれません。 プログラム中のコメントにある条件で、シートを作成し、コマンドボタンを配置してその中に下記のプログラムをコピーして使ってください。 ・全角半角の違いは、見逃す。 ・途中にスペースが入っている/いないは見逃す。 とした条件で、複数の項目の文字列を比較し、結果を返します。 Private Sub cmdCompare_Click() Dim intRow As Integer '行カウンタ Dim intCol As Integer '列カウンタ Dim strWatashi As String '文字列取得 Dim strImoto As String '文字列取得 Dim intWatashiColL As Integer '私が入力した列の左端 Dim intWatashiColR As Integer '私が入力した列の右端 Dim intImotoColL As Integer '妹が入力した列の左端 Dim intImotoColR As Integer '妹が入力した列の右端 Dim intOutput As Integer '結果を出力する列 intWatashiColL = 1 intWatashiColR = 3 'とりあえずA~C列に「私」の入力したデータが入っているとします intImotoColL = 4 intImotoColR = 6 'とりあえずD~F列に「妹」の入力したデータ入っているとします intOutput = 7 'G列に結果を出力 ' intRow = 1 Do strWatashi = "" strImoto = "" For intCol = intWatashiColL To intWatashiColR strWatashi = strWatashi & RemoveSpace(Cells(intRow, intCol)) Next For intCol = intImotoColL To intImotoColR strImoto = strImoto & RemoveSpace(Cells(intRow, intCol)) Next If strWatashi = "" Then Exit Do Cells(intRow, intOutput) = IIf(strWatashi = strImoto, "一致", "不一致") intRow = intRow + 1 Loop End Sub 'スペース除去 Private Function RemoveSpace(strPmtr As String) As String Dim i As Integer Dim strResult As String Dim strChar As String For i = 1 To Len(strPmtr) strChar = StrConv(Mid(strPmtr, i, 1), vbNarrow) strResult = strResult & IIf(Trim(strChar) = "", "", strChar) Next i RemoveSpace = strResult End Function 見にくいですが、ここに投稿すると字下げができないようです。

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

同一かどうかを考えるとき、品物の場合はどう考えますか 。2日前に振った番号を書きとめ、今、目前にある物の番号が書きとめた番号と同じなら、同じと知る。ホテルのクロークのように。 ビジネスでは、このように抽象的な番号を1つ設定して、住所録原資料に振り、それも含めて入力し、その番号を基に、同一か(ミスタイプが無いか)調べます。しかし番号のミスタイプもあり得るので、事は複雑になります。それはさておきます。今回はもう既に入力し終わっているとすると、番号が無いでしょうから、氏名や電話番号を番号代わりにして、考えざるを得ません。しかし氏名も電話番号も同姓同名や同一家族の電話番号のような問題があります。それを覚悟で比較する方法がよい方法が有りますが、プログラム(VBAなど)を組めないと出来ません。 それではと言うことで、Sheet4とSheet5に入力したとして、 タイプ洩れについてSheet4に =IF(ISERROR(VLOOKUP(A1,Sheet5!$A$1:$A$10,1,FALSE)),"なし","") Sheet5に =IF(ISERROR(VLOOKUP(A1,Sheet5!$A$1:$A$10,1,FALSE)),"なし","") で「なし」と2シートに出たものを訂正してください。 これでSheet4とSheet5の氏名が同数になります。正確にはダブりは、両シートに =IF(COUNTIF($A$1:A1,A1)>1,"ダブリ","")でチェックします。 ここで同一氏名の各項目が同一かどうかチェックします。 Sheet4に=IF(B1=VLOOKUP(A1,Sheet5!$A$1:$B$10,2,FALSE),"","相違")と入れて下へ複写します。 B列をしましたが、c、d、e列も同じような式をいれ 第3引き数を、3、4、5・・に増やすようにします。 これで氏名を元にした項目(列)内容が同じかチェックできます。しかしチェック結果式を入れる列が、列数だけ必要です。 私なら、式が一杯になるのがいやで、VBAで処理しますが。

noname#8445
noname#8445
回答No.4

データ不揃いの場合 新シートの同列に2人分のデータをコピーします 全体を選択して「ツール?」-「並び替え」で並び替えます (住所、名前順がいいかな) 空列(Fとすると)に    =if(and(B2=B1,A2=A1),"重複","OK") Bは住所 1行目を選択して 「データ」-「オートフィルタ」でF列▼でOKを選択 「編集」-「ジャンプ」で可視セルを選択。 deleteキーを押下して、「データ」-「オートフィルタ」を取る。 全体を選択して「ツール?」-「並び替え」で並び替えます (住所、名前順がいいかな) これでどうでしょうか

noname#10657
noname#10657
回答No.3

if(a1=b1,"○","×") a1のセルとb1のセルを比較して「同一なら○」「不一致なら×」を表示してくれます。

参考URL:
no
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

全く同じだったら どっちかの列の隣にそれぞれのセルを連結して同じかどうか調べればいいです。 =IF(姉_名前&姉_住所&姉_郵便番号&姉_電話=妹_名前&妹_住所&妹_郵便番号&妹_電話,"","違う")

noname#215107
noname#215107
回答No.1

新しいシートに2人で入力した住所をたとえば、A列とB列に隣り合わせにコピーして貼り付け、先頭のその横に =IF(A1=B1,"一致","不一致") を入力し、全てのレコードにコピーします。 そうしたら、一致していないレコードには不一致が表示されるので分かりやすいのではないかと思います。 ただ、住所の入れ方には個人差があるので(スペースが含まれていたり)、住所としての内容は同じでも、不一致になるかもしれません。 VBAマクロを使えば、プログラムでもっと柔軟な対応ができるのですが・・・・。

関連するQ&A

  • エクセルとデータの照合について

    エクセルとデータの照合について シート1に以下のような表を作成しました(上段) また、シート2にも以下のような表を作成しています(下段) 見にくいですが、要は同じデータが入っているのですが、入っているセルが 違うので、どんな関数や条件付き書式(色つき)を使って照合すればいいのかが わかりませんでした。 両者を見比べて照合をしたいのです。おもに上段の数字があっています。 初心者で申し訳ありませんが、教えてください。

  • エクセルデータの照合について

    2つのお客様データ(エクセル)があり、それぞれに入力されている住所に違いがないかチェックをしたいのですが、何か早く照合できる方法はないでしょうか。登録されているお客様は同じなのですが、住所が古いままで更新されていない人がいないかなど調べています。

  • EXCELのでのデータ入力について

    EXCELで、住所のセルに住所を入力すると自動的に郵便番号のセルにその住所の郵便番号が入力されるように設定されているファイルに住所を打ち込んでいると、「メモリ不足です」と表示されてデータが入力できません。「リストから選択する」で入力すると入ります 。なぜなのかわかりません。教えてください。

  • エクセルで表記の違うデータを照合する方法

    2つのエクセルを照合する時、表記方法が違っても可能でしょうか? 会社の名前が記載してあるリストです。 例えば、エクセルAには「●●株式会社」 、エクセルBには「●●」という形式で会社名を表記してあるとします。 これを照合する事は可能でしょうか? エクセルBにはその会社の郵便番号がいくつか記載されています。最終的にはAとBで名前が一致してかつ郵便番号があった場合エクセルAに印をつけなければなりません。 この様な事が可能でしょうか?仕事で必要で全然わからず途方にくれています。どなたかエクセルに詳しい方教えてください。

  • 【至急】エクセルデータ統合について

    急ぎの質問です。 顧客にダイレクトメール送付をする予定です。 あるデータベースから顧客の名前と住所をエクセルに抽出し、その後大量のデータを見直して、不要なものやダブりのデータを削除し、整理しました。 ラベル印刷するため、エクセルからワードにデータ以降する段階で、最初の段階で郵便番号を抽出していなかったことに気づきました。 いまから、郵便番号を抽出したデータを再度見直して整理する時間はありません。 郵便番号なし・整理済みのエクセルデータと、郵便番号あり・未整理のエクセルデータを統合し 郵便番号あり、整理済み のデータを作成する方法を教えて下さい。 本日中の仕事です。 急ぎで申し訳ございませんが、お願いします。

  • excel データー照合について

    仕事でデーターの照合作業をしています。 内容は2つのデーターベースがあるなかで、 会社名が照合しているかを確認したいと思っております。 数は1000件以上です。 関数のv-lookupで紐けが可能だと思いますが、何故かうまくいきません。 ※2つのデーターベースの会社名は若干異なりそのために出来ないのでしょうか? 教えて下さい!宜しくお願い致します。

  • 二つのエクセルデータを照合する方法。

    2つのエクセルを照合する方法を教えてください。 エクセル1には A列に電話番号が100件入っています。 エクセル2にはA列に電話番号が100件B列に住所が100件 入っています。 電話番号の内容は一緒ですが、エクセル1と2では並び方が違います。 やりたい事はエクセル1に電話番号に対応した住所情報をエクセル2から検索して入力する事です。 この作業を関数を使っていっきにする方法はありませんか? 実際は1000件くらいのデータなのですが、やり方が分からず目視でやっているので気が狂いそうです。 ※昨日似たような質問をしましたが、質問の仕方があいまいだったので出しなおしました。 明日作業がまっているので夜のうちに質問します。 ちなみにエクセル2010です。

  • データのふりわけ?

    エクセルの1つのセルに郵便番号・住所・名前が入っているデータがあるのですが、簡単に(できるだけ)それらを別々のセルに(Aのセルに郵便番号、Bのセルに住所、Cのセルに名前というふうに)振り分ける方法ってありませんか?

  • エクセル2003でシート1からシート2に・・・><助けて下さい

    おはようございます。 エクセル2003についてご教授くだされば幸いでございます^^。 例えばエクセルで基のデータの住所・郵便番号・マンション名がシート2に入っているとします。シート1の中でセルにマンション名を正しく入力すれば住所や郵便番号まで自動的にシート1に入力されるような設定はできるのでしょうか。 エクセルに関して詳しい方がいらっしゃいましたらどうかご教授願います^^。 よろしくお願いいたします。

  • エクセルで自動反映させるには・・・助けて><

    おはようございます。 エクセル2003についてご教授くだされば幸いでございます^^。 例えばエクセルで基のデータの住所・郵便番号・マンション名がシート2に入っているとします。シート1の中でセルにマンション名を正しく入力すれば住所や郵便番号まで自動的にシート1に入力されるような設定はできるのでしょうか。 エクセルに関して詳しい方がいらっしゃいましたらどうかご教授願います^^。 よろしくお願いいたします。

専門家に質問してみよう