• ベストアンサー

エクセルでシート間のデータを照合して相違箇所を知りたいです。

エクセル2000です。 たびたびの質問ですみません。 非常に大きな表なので、手作業では大変そうなのでよろしければアドバイスお願いします。 シート間のデータを照合して相違箇所を知りたいと思います。 初心者なのでマクロは使ったことがありません。 初心者でも出来るやり方はありますでしょうか? すみませんがよろしくお願いします。

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

  • ベストアンサー
  • tizzy
  • ベストアンサー率51% (115/224)
回答No.7

たびたびどうも(笑) >シート1、2で同一だったデータも表に書き入れる というのは 「相違が無ければ、元データをそのまま表示する」 ということですか? シート1のA1に 50という数字 シート2のA1に 50という数字があるとして シート3のA1にも 50と表示させたい ということでしょうか? その場合でしたら チョッと式を変更して =IF(Sheet1!A1=Sheet2!A1,Sheet1!A1,"違います") という具合でどうでしょう? シート1と2のA1を比較して、同じなら シート1のA1を表示する 違っていれば 違います と表示する という意味の式になります。 こういうことで宜しいのでしょうか??

99blues
質問者

お礼

おはようございます! 昨日はどうもありがとうございました。 今朝一番に作業をしました。とても見やすい表になりました。 エクセルってすごいですね。感動です。 tizzyさん、またきっとお力を借りるときがくると思いますが、その時はよろしくお願いします!!!(^-^) (慣れ慣れしくてごめんなさい)

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (6)

  • 78tch
  • ベストアンサー率31% (50/157)
回答No.6

> データが700行のEZ列まであるのでどうしようかと。。。 →まさか。 コピーとペーストは分かりますか?「編集」というところにありますよ。 ・1行目に式を入れた後、2行目に移って、また1行目に戻ってから、式をコピー(ctrlを押しながらcキーを押す)します。 ・再度2行目に移って、shiftを押しながら、↓キーか、PageDownキーを押して、2行目から700行目まで選んで、ペースト(ctlキーを押しながらvキーを押す)してください。 もしくは、 ・700行目になにかデータを入れます。なんでもいいです。 ・1行目に式を入れた後、2行目に移って、また1行目に戻ってから、式をコピー(ctrlを押しながらcキーを押す)します。 ・再度2行目に移って、shiftとctlを押しながら↓キーを押すと、2行目から700行目まで一気に選ばれますから、ペースト(ctrlキーを押しながらvキーを押す)してください。

全文を見る
すると、全ての回答が全文表示されます。
  • tizzy
  • ベストアンサー率51% (115/224)
回答No.5

No.2です。 「シート1と2のデータのある範囲と同じ範囲のセルにコピー」 というのは、シート1.2のデータが 例えば、A1からH20までの中に記入されているとすると シート3のA1からH20のセルすべてに 先程の式を入れるということです。 ひとつずつ入れると大変ですので はじめのひとつのみを入力してあとは コピー、貼り付けをします。 先程提示した式の中のA1という部分は 貼り付けられるセルの位置によって 自動で変わりますのでご安心を。 1. A1に =IF(Sheet1!A1=Sheet2!A1,"",1) と入力してEnter。 2. A1のセルをコピーします 3. A1からH20までのすべてのセルを選択します 4. 選択したものの上で右クリック>>貼り付け という手順です。 ひとつ忘れていましたが 表示される文字を「1」などの数字以外のものを 指定したい場合には =IF(Sheet1!A1=Sheet2!A1,"","違います") というように " " で囲むようにしてください。 上の式ですと違いが見つかったセルに 「違います」と表示されます。 説明がわかりにくかったようで申し訳ないです。 また分からなければ再度お尋ねください。

99blues
質問者

お礼

tizzyさん 丁重なお返事ありがとうございます!! おかげさまで、想像していたとおりにできました!! 本当にありがとうございました。 これで充分なのですが、ちょっと欲がでて(^^;) 今は相違データのみ書き出されているのですが、シート1、2で同一だったデータも表に書き入れるのは難しいですか? しつこく質問してすみませんm--m

全文を見る
すると、全ての回答が全文表示されます。
  • 78tch
  • ベストアンサー率31% (50/157)
回答No.4

#1です。横入りで恐縮ですが > 「シート1と2のデータのある範囲と同じ範囲のセルにコピー」と言う意味 →シート1のA1セルと、シート2のA1セルを比べた結果であるところの「同一/相違」なり「Yes/No」なりという表示をどこかにしなければならないでしょう? それを、シート3に表示させるとして、ではシート3のどのセルにそれを表示させればわかりやすいですか? やっぱりA1でしょう?という意味ですよ。 もしくは、相違のあるセルの番地を列挙させたかったですか?それはVBA使わなきゃツラすぎます。

99blues
質問者

補足

アドバイスありがとうございます。 せっかくアドバイスを頂いているのに、初心者の私が使いきれてないので申し訳ないです。。。 やりたいことはこの方法でいけそうなのですが、これはセルにひとつずつコピーをしていかないといけないのでしょうか? データが700行のEZ列まであるのでどうしようかと。。。

全文を見る
すると、全ての回答が全文表示されます。
  • absurd0rt
  • ベストアンサー率23% (4/17)
回答No.3

マクロでよければ一例として・・・ 使い方 ・データ検証 "Sheet1"と"Sheet2"に検証データを貼り付ける "Sheet1"の一番左上のセルをクリックして「データ検証」を実行 終われば終了メッセージが出ます "Sheet1"と"Sheet2"の違う箇所の文字の色が赤くなり、赤くなった列の一番上のセルも赤くなる 時間がかかって検証範囲を狭めたかったら65535(Const lngRow As Long = 65535)と 255(Const lngCol As Long = 255)を変更する ・ジャンプ 「データ検証」を実行した後 一番上の行で赤い文字のセルをクリックして「ジャンプ」を実行 その列の次の赤い文字のセルに"Sheet1"と"Sheet2"共に移動します。 赤い文字のセルが他になければメッセージが出ます 下のがマクロ Const lngRow As Long = 65535 Const lngCol As Long = 255 Sub データ検証() Dim lngCnt1 As Long Dim lngCnt2 As Long Worksheets("Sheet1").Activate For lngCnt1 = CLng(ActiveCell.Column) To lngCol For lngCnt2 = CLng(ActiveCell.Row) To lngRow With Worksheets("Sheet1").Cells(lngCnt2, lngCnt1) If .Value = Worksheets("Sheet2").Cells(lngCnt2, lngCnt1).Value Then .Font.Color = vbBlack Else .Font.Color = vbRed Worksheets("Sheet1").Cells(1, lngCnt1).Font.Color = vbRed End If End With Next lngCnt2 Next lngCnt1 MsgBox ("Finish!") End Sub Sub ジャンプ() Dim lngCnt1 As Long Dim lngRet1 As Long Dim lngCol1 As Long Worksheets("Sheet1").Activate lngCol1 = CLng(ActiveCell.Column) For lngCnt1 = CLng(ActiveCell.Row) + 1 To lngRow With Worksheets("Sheet1").Cells(lngCnt1, lngCol1) If .Font.Color = vbRed Then Worksheets("Sheet2").Activate Worksheets("Sheet2").Cells(lngCnt1, lngCol1).Select Worksheets("Sheet1").Activate .Select Exit For End If End With Next lngCnt1 If lngCnt1 > lngRow Then MsgBox ("There is nothing!") End If End Sub

99blues
質問者

お礼

アドバイスありがとうございます。 マクロは使ったことがないのですが、(超初心者で。。。)本を見ながらこの式を貼り付けましたが。。。 まだまだ勉強がたりませんね(^-^) これを機にもっとがんばろうと思いました。 そして、いつかマクロでこれを使います! どうもありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • tizzy
  • ベストアンサー率51% (115/224)
回答No.2

99bluesさん まったく同じ形の表があるシート二つの照合として ひとつの案ですが シート1とシート2があるとして もう1枚シート3を用意してそのシートのA1に =IF(Sheet1!A1=Sheet2!A1,"",1) と式を入れてシート1と2のデータのある範囲と 同じ範囲のセルにコピーします。 1と2で同じデータなら空欄になり 違いがあると1が表示されます。 表示する文字は式の最後の「1」の ところで決められますので×とかcheck などお好きなものでお試しください。 こういったことで宜しいのでしょうか? お尋ねになっていることと違っていたら ごめんなさいm(__)m

99blues
質問者

補足

どうもありがとうございます。 アドバイスどおりにやっているのですが、「シート1と2のデータのある範囲と同じ範囲のセルにコピー」と言う意味がよくわからなくて。。。 お忙しいところすみませんが、お時間があればもう一度アドバイスよろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • 78tch
  • ベストアンサー率31% (50/157)
回答No.1

3枚目のシートを用意して、 =EXACT(Sheet1!A1,Sheet2!A1) としていけばどうですか。VBAを使わず、という場合だいたいはワークシート関数を使うんですが、「fx」というボタンを押すと一覧が出てきて、一つ選ぶと簡単な説明が出来てきます。分類もされていますから、「自分がやりたいことに使える関数はないかなー」とそこから探すクセをつけましょう!

99blues
質問者

お礼

アドバイスどうもありがとうございます。 ワークシート関数をもう少し勉強します。 エクセルがもっと便利になりますよね(^-^)

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

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

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

  • 異なるエクセルシートの照合

    はじめての質問です。よろしくお願いします。 過去の事例でも同じような例があったと思いますが マクロは全く分からず、この設定にあったものを作成して頂けるなら幸いです。 (内容) 当方の仕入明細データと先方の売上明細データの照合です。かなり、双方の誤差が多く、現在手作業でやっていますが、時間がかかります。エクセルで誤差を 簡単に出せる方法を教えてください。 (設定) sheet1当方仕入 sheet2先方売上 A列:品名、D列:重量、E列:単価、F列:金額 です。品名は双方の表記が異なるので照合対象からはずしてください。一致するものは表示せず、差があるものだけ表記し、差額金額を出して欲しいのです。 問題は、行数の合計がsheet1と2で異なることがあります。(仕入漏れ&売上漏れ)

  • エクセルと照合について

    エクセルと照合について シート1とシート2に以下のような表を作成しています。 両者の照合結果をシート3に作成したいです。 関数と条件付き書式で、間違っていればシート3に「×」と黄色に塗りつぶしたいです。 できればエクセル2003と2007バージョン両方のやり方を教えてください。 初心者で申し訳ありませんがよろしくお願いします。

  • 2つのデータを照合したいです

    お客様から送られてくるエクセルの注文データと、自社で管理している注残データを照合し、お客様の注文データにあって自社注残データにないもの=新規注文データのみを別シートに抽出したいです。 これを行うにはマクロでいいのでしょうか? エクセルのシート1にユーザー注文データ。 シート2に自社注残データ。 この状態でマクロ実行→新たにシート3が作られ、照合できない新規注文データのみを抽出。 ということをイメージしています。 シート1(ユーザー注文データ)のI列に型式、F列に数量が入っています。 シート2(自社注残データ)のI列に型式、J列に数量が入っています。 この型式・数量の2項目を照合したいのですが、ユーザーデータには型式の頭に「P (Pと半角スペース)」が全数ついています。 このP+スペース以降の型式が照合対象です。 型式・数量が一致しないものを新たにシート3を作成しそちらに抽出したいです。 データ数は大体100行程度。 シート1・2共に1・2行には項目タイトルが入っているので、3行目からデータが始まります。 自分で作成しようとVBAの本を買ってきて勉強中なのですが、超初心者なので、まだまだ時間がかかりそうです。 どなたかお知恵を貸していただければと思います。 よろしくお願いいたします。

  • Excelデータの照合

    Excelデータの照合 こちらでも色々調べさせて頂いたのですが、自分のデータにうまくあてはめられず困っています。 Excelの元データ、入力データがあります。 元データが正規のデータで、入力データにモレがないか、ミスがないかをチェックする為に 照合をしたいんですけど、どうやったらうまく出来るかわかりません。 是非ご教授下さい。 元データ、入力データ共に2列あり、どちらも A列・・・コードナンバー B列・・・コードナンバーに対応する金額 が入力されています。 これは今現在は同一シート内に抜き出してありますが、元は別シートです。 なので別シートにあるものとして回答頂いても結構です。 入力データの中から、元データのA列、B列共に一致するものだけを抽出することは出来ますか? 不一致もしくは該当するデータがないものと、一致しているものが区別で切れば形式は何でもOKです。 (作業列を増やすとか、色分けするとか、文字で表示するとか) 出来ればVBAやマクロを使わず関数のみでお願いします。 検索を使うからVLOOKUP? 複数条件だからIF?? と色々考えましたが、2つセットで検索をかけるのがどうしても出来ず・・・(-_-;) よろしくお願いします!!

  • エクセルでのデータ照合

    エクセルで出来るか教えてください。 Sheet1 [品目コード]、[数量(c/s)]、[端数(p/c)] [ABCD] [110] 、 [ 2] [EFGH] [ 9 ] 、 [ 3] [IJKL] [ 0] 、 [ 7] Sheet2 [品名KEY]、[総個数(C/S)]、[総端数(P/C)] [ABCD] [ 110 ] 、 [   2] [EFGH] [ 8 ] 、 [ 3] [IJKL] [ 0 ] 、 [ 7] Sheet1とSheet2のデータ数量を照合して、数量に相違があるか簡単に調べる方法を 教えて下さい。 知識がないので行き詰っています。 知識が豊富なか方、助けてください。

  • エクセルデータ照合

    エクセルのデータ照合によりデータの統合をしたいです。 Sheet1 A校 50% B校 30% C校 40% D校 30% E校 20% Sheet2 B校 C校 E校 F校 Sheet1 とSheet2 の学校を照合して共通校のみを抽出しSheet3として B校 30% C校 40% E校 20% データ数は約1万件です。 宜しくお願いいたします。

  • エクセルで二つのシートの照合をしたい

    エクセルでレイアウトの同じ二つにシートがあります。 このシートを照らし合わせてセルのデータの異なる部分を抜き出したいの ですが、よい方法はありますでしょうか。 シートが150列・2万行と大きなものでIF関数などを使って照合して みましたが、時間がかかりすぎました。

  • 簡単に出来るデータの照合方法を教えて下さい

     大元のデータ(表(1)とします)、表A、表Bがあり、それぞれに会社名と人名が載っています。表Aと表Bの人名を表(1)の人名と照合し、異なっていれば書き換える(表(1)のデータを)という作業です。  会社名で一致させることを考えていますが、表(1)ではアンソーとなっていて、表Aではアンソー合同会社となっているなどデータが完全に一致していません。関数は初心者ですが、VLOOKUP、IF関数を使って簡単に出来る照合方法を教えて頂けますか?  因みに私が考えた方法は、 方法その1)  =VLOOKUP((1)の会社名,表Aのデータ範囲(会社名と人名),表Aの2列目、False)の関数を使い、#N/Aと表示される箇所は一つずつ表Aで検索 方法その2) 表(1)、表A、表Bの会社名をLEFT関数を使って決まった文字数を抜き出し、その後方法その1)を行う  800件程のデータがあるので、Excelでスピーディに照合作業が出来る方法があれば教えて下さい。

  • Excel シート間のデータの照合

    Excelで、シート間のお客様データ(だいたい各1万件)を照合します。下記は現在の照合方法ですが、これでは時間がかかるうえ手作業が多く発生しミスにつながります。頻繁に行う作業なので、関数でも、マクロでも、とにかくもう少し簡単にできる方法がありましたら、どうぞご教授ください。よろしくお願いします!! 【目的】 シート「sheet2008」には2008年度のデータ。シート「sheet2007」には「sheet2008」と同じ形式の2007年度のデータが入っています。シート「sheet2008」に、そのお客様の2007年度の担当営業マンを表示させたいのです。 【例】 列A(電話番号): 011-231-1112 列B(名前):佐藤 一郎 列C(住所):北海道札幌市中央区北1-1-1 列D(担当営業マン):鈴木 新規の列(2007年度の担当営業マン):鈴木  ・「sheet2008」「sheet2007」はほぼ同じデータですが、一部のお客様は名前が変わっていたり、住所が変わっていたりします。  ・「sheet2007」にないお客様が「sheet2008」にあったり、その逆があったりして、各シートのデータ件数は一致しません。  ・名前が同じでも住所が違うデータ、電話番号が同じでも担当営業マンが違うデータは別者として扱います。  ・「顧客ID」のような“必ずユニークな情報”は存在しません。 【現在の照合方法】 (1)「sheet2008」の各列の前に空白列を挿入する。  (データの1行目はタイトル行…B1:電話番号/D1:名前/F:住所/H:担当営業マン)  (データの2行目以降はデータ)     列A(空白行):     列B(空白行): 011-231-1112     列C(空白行):     列D(名前):佐藤 一郎     列E(空白行):     列F(住所):北海道札幌市中央区北1-1-1     列G(空白行):     列H(担当営業マン):鈴木 (2)「sheet2007」を列Aの電話番号で昇順に並べ替える。 (3)「sheet2008」の電話番号が「sheet2007」にあるかを調べる。     A2:「=IF(B2=(VLOOKUP(Sheet2008!$B2,Sheet2007!$A:$D,1,0)),"○","▲")」 (4)(3)で調べた「sheet2008」の電話番号と同じ行にある名前/住所が「sheet2007」にあるかを調べる。     C2:「=IF(D2=(VLOOKUP(Sheet2008!$B2,Sheet2007!$A:$D,2,0)),"○","▲")」     E2:「=IF(F2=(VLOOKUP(Sheet2008!$B2,Sheet2007!$A:$D,3,0)),"○","▲")」 (5)電話番号/名前/住所がすべて一致するデータについて、「sheet2007」にある担当営業マンの値を列Gに表示させる。     G2:「=IF((AND(A2="○",C2="○",E2="○"))=TRUE,(VLOOKUP($B2,Sheet2007!$A:$D,4,0)),"▲") (6)"▲"やエラー値で表示される計算結果について、目視で確認する。 (終了)

専門家に質問してみよう