• 締切済み

Excel 二つのシートのデータ比較とコピーはどうしたらよいでしょうか

Excel 二つのシートのデータ比較とコピーはどうしたらよいでしょうか? 先月の売上表と今月の売上表のデータを比較し、以下のことを行いたいです。ちなみに先月と今月では売り上げが上がってくる商品数が異なります。先月/今月で共通しているのは商品番号のみなので、こちらを基準として (1)先月/今月を比較し、今月のみに売り上げのある(重複していない)商品に関し、商品番号を抽出したい (2)先月/今月を比較し、両月ともに売り上げのある(重複している)商品に関しては、商品番号に属するデータ(先月分には記載があり、今月分には記載なし。しかも複数項目あります。たとえばH列に生産国、I列に商品名など)を先月分のシートから今月分のシートに移植したい 以上なのですが、商品数が多くて、目視で確認するのに大変な時間がかかり、困っています。どなたかよい解決方法を教えていただけると大変助かります。よろしくお願いします。

みんなの回答

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

シート1に先月分のデータがあり、シート2に今月分のデータがあるとします。項目名は1行目にあり、それぞれのシートでの並びは同じであるとします。 例えばA列の2行目から商品番号があり、(1)の問題に対する答はシート2のJ列に表示させるとします。 そこでシート2のH1セルに生産国、I1セルに商品名があるとしてシート1にその商品番号がある場合にはそれらの列には自動的にシート1のデータが表示されるようにするためにはH2セルに次の式を入力してI2セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(COUNTIF(Sheet1!$A:$A,$A2),INDEX(Sheet1!$H:$I,MATCH($A2,Sheet1!$A:$A,0),COLUMN(A1)),"") J1セルには新規商品番号とでも入力し、J2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A2="","",IF(COUNTIF(Sheet1!$A:$A,$A2),"",$A2)) 参考になりましたら幸いです。

peroshi326
質問者

お礼

KURIMOTO様 ご指導いただきありがとうございました!(1)は無事に解決できました。(2)はまだ解決法が見つかりません…。ただ、VLOOKUP関数を使用すれば良いようなので、同僚と知恵を絞ってみます…。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • mar00
  • ベストアンサー率36% (158/430)
回答No.1

1)は今月のシートに =COUNTIF(先月シート名!商品番号の入力されている列,商品番号)を 使えば重複していない商品には0がかえると思います。 コピーしたいのであれば数式をコピーで値にしてから昇順で並べ替えれば 重複していない商品が上に来るのでそれをコピー ただし、順番をかえたくないのなら予めどこかの列に連番を打っておいたほうが 良いと思います。(元に戻せるように) (2)はVLOOKUP関数を使えば出来るのではないかと思います。

peroshi326
質問者

お礼

mar00様 ご回答を寄せていただきありがとうございました。(1)に関しては無事に解決いたしました!(2)に関しては、私はVLOOKUP関数に詳しくはないので、同僚にちょっと相談してみます。本当に助かりました。ありがとうございました。 peroshi326

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

関連するQ&A

  • エクセルのシート間のデータ抽出について

    (1)シートは「集約」用のシートと、「各月」のシートがあります。「集約」シートは、A列には日付、B列には番号、C列には備考欄という表があります。各月のシートも同様ですが、番号の項目だけどの月も「1、2、3,4~」と通し番号でつけてあります。通し番号の数は月によって異なります。多くなる月もあれば、少なくなってしまう月、何もない月もあります。(2)「集約」の日付なり番号なりを入力すると、各月のデータが一つの表に反映されるようにしたいです。何かよい手立てはないものでしょうか?よろしくお願いします。

  • エクセルでデータの比較をしたいです。お教え頂けないでしょうか

    エクセルでデータの比較をしたいです。お教え頂けないでしょうか エクセルで2つのシートにある同一の商品コードと 在庫数を比較するマクロを作成中です。 シート1のA列にある商品コードとB列にある在庫数を取得し シート2のA列にある商品コードから同じ商品コードを探します。 同一の商品コードがあった場合に在庫数を比較して その数が減少していなければC列に次の処理を加える。  商品コードが合致した後は 処理を抜けて次の商品コードを比較させたいのですが 下行にある商品コードを探し続けてしまいます。(データの総当りとなる) つきましては どの様に記述すれば良いのでしょうか お教え頂けます様 よろしくお願い致します。 *********** Sub check1() Dim kz1 As long 'シート1データ数 Dim kz2 As long 'シート2データ数 Dim st1 As String 'シート名 Dim dt1 As Variant '商品コード Dim dt2 As Variant '在庫数 Sheets("sheet1").Select st1 = ActiveSheet.Name kz1 = Range("a65536").End(xlUp).Row Range("a1").Select ActiveCell.Offset(1, 0).Select For a = 0 To kz1 - 2 Sheets(st1).Select dt1 = ActiveCell.Value '商品コード dt2 = ActiveCell.Offset(0, 1).Value '在庫数 Sheets("sheet2").Select kz2 = Range("a65536").End(xlUp).Row Range("a1").Select ActiveCell.Offset(1, 0).Select For b = 0 To kz2 - 1 '同一商品コードを検索 if activecell.value = dt1 '在庫数を比較 if activecell.value >= dt2 '在庫数が同じ もしくは増加していた場合に処理 '次の処理を追加 endif else ActiveCell.Offset(1, 0).Select endif Next b Sheets(st1).Select Next a end sub

  • エクセルで異なるシートのデータを比較したり、コピーしたりしたい

    お世話になっております。 エクセルとはほとんど初対面といった状態で、四苦八苦している状況です。 今やりたいことは、下記のようなことです。 実現方法やアドバイスなど、何でもいいので教えてください。 宜しくお願いします。 シートA,シートBがある。 シートAは今回取込んだデータ。 シートBはこれまで取込んだ累計データ。 2つのシートの項目は同じで、複数列ある。 その中にキーとなる列がある。 (例:項目番号,項目名称,説明,etc 項目番号がキー) (1)まず、シートAのデータを一旦消去し、CSVファイルを読み込む。 (2)次に、シートBの既存のデータとシートAのデータを比較する。  シートAにあってシートBにないデータは追加する。  シートAにあってシートBにもあるデータは上書きする。 (2)の方法が分りません。 シートAにあるデータがシートBにあるのかどうかと言うところはAdvancedFilterと言う関数を使って出来たのですが、追加/上書きと言うところが出来ません。 AdvancedFilter以外にもっと使いやすい関数があるのでしょうか? それとも根本的にもっと違ったやり方があるのでしょうか? ちなみに、別のデータベースを使うとかは不可です。 エクセルでやらないといけない仕様なのです。 宜しくお願いします。

  • エクセル関数を向教えてください!!!

    (1)売上表があります。 ちがうシートに(2)在庫表があります。 (2)在庫シート D列商品コード L列入出庫数 の表があります。 (1)売上シートのE列に商品番号を入力すると入力に応じて (2)在庫シート のL列入出庫数を減らすようにしたいです。 どのようにしたらできるのでしょうか?? 関数は無知で見よう見まねでやっています。 詳しい方、教えてください。よろしくお願いいたします。

  • エクセルでの比較データコピー

    エクセル2010でマクロを組んでデータ処理を簡単に行いたいのですが、 よくわからないので、教えてください! シート2のC列とシート1のD列を比較し、同じ文字列があった場合に シート2のE列をシート1のF列にコピーする。 ただし、シート2のE列に〇が入っている場合は、シート2のG列をシート1のF列にコピーする。 どなたかご教示いただけませんか? よろしくお願いします!

  • 2つのファイル(Sheet)比較して重複しないデータを追加する方法

    EXCEL2003で2つのファイル(Sheet)で同フォーマットの表(データベース)にて1つの列をキーとして比較して、重複しないデータを片方の表に追加する事は出来ますか? 一番好ましいのはマクロを組んで一発で出来るのが良いのですが、最低関数式等で出来ますか?

  • VBAを使った、Excelでのシート間データ抽出

    はじめまして。みなさまどうか教えてください。 Sheet1にはA列に250行程、コードが存在します。 Sheet2にはA列(コード)からI列まで、そして1000行程データが存在します。 Sheet1にあるコードは重複はなく、Sheet2のコード内に必ず同じコードがあります。 Sheet2にも重複コードはありません。 そこでSheet1のコードを使い、Sheet2を検索し、同一コードのデータ(A列からI列の行すべて)を全て(250件分)、Sheet1のコード記載順(A1、A2、A3・・・・)で、Sheet3に抽出したいのです。 どうか、よろしくお願いします。

  • エクセル2010 シート2とシート1の重複削除

    シート2のB列を元に シート1のB列と比較し、シート1側の重複したデータを一括で削除するという マクロを作りたいのですが 知識が足りずに作る事ができません。 データ数が多いので 効率のいい方法があったら教えていただけないでしょうか? またはマクロを教えていただけないでしょうか? 他の列はデータが埋まっていて作業領域にする事ができません。 よろしく お願いします。

  • エクセルのデータ比較

    シート1のA行のデータとB行のデータをすべて比較して、同じデータがあれば C列にそのデータを書き出したいのですが、どうすればよろしいのでしょうか。 行数(比較するデータの数)はそれぞれ数千行あります。 例(a~hはデータです) シート1     A列 B列 a c b d  c f d h の場合、比較した結果をC列に次のように表示させます。 A列 B列  C列 a c c b   d d c f d h どなたかよろしくご教示くださるよう、お願いします。

  • エクセルの2つのシートを使ったデータ加工について

    (1) 項目1 項目2 ・・・  目標 金額(前月) 目標-金額 (2) 項目1 項目2 ・・・  目標 金額(今月) 目標-金額 というようなそれぞれ2つのシートがあります。 この2つのシートから、 項目1 項目2 ・・・  目標 金額(前月) 金額(今月) 目標-金額 前月-今月 といったような新しいシートを作成したいです。 ただ、ここで問題なのが、(1)と(2)のデータ列の数や並びが同じでないことなんです。 (1)にはあるが(2)にはないデータがあったり、逆に(1)にはないが(2)にデータがあったりなどです。 (1)と(2)に共通(重複)しているデータについてはVLOOK関数などで金額を抽出できそうですが、 そうでないものの処理をどうしたらいいのか…。 (1)と(2)で共通(重複)してないものを見つけて、その部分をコピー&貼り付けすればできなくはありませんが、大量のデータで、かつ何度も同じことをするのが非効率に感じます。 エクセルで上記のようなことが簡単?にできるのかどうか、詳しい人がいたら教えて下さい。 よろしくお願い申し上げます。 ちなみに、マクロは素人です。

専門家に質問してみよう