• 締切済み

エクセル 異なるブックのデータ比較

教えてください。 エクセルのファイルA1.xls(原本)とA2.xlsがあるとします。 どちらも行ごと(レコード)にデータを入力したデータベースのファイルです。 A1は原本データで、A2がデータ(レコード)を追加した編集後のファイルです。 この時、A1とA2の列(レコード)を比較し、A2にあってA1に無いものを抽出するフリーソフトなどはご存知ではないでしょうか。 あくまで、A1とA2の差分の抽出ではなく(A1にあってA2にないものはは除く)、A2にあってA1にないものだけを抽出したいのです。

みんなの回答

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.6

別案で、エクセルでA2データに作業列をいれて抽出する方法です。 お互いにA列に抽出したい番号などがあるとして 編集後ファイルの作業列に =COUNTIF([ファイルA1.xls]Sheet1!$A:$A,A1) 入れて下までコピィしておけば、原本ファイルに同じ番号がない行だけ 0 と表示されますので、後はオートフィルターで 0 を抽出して 原本ファイルにコピィします。 過去スレで、エクセルだけでマスターのファイルにデータを追加していく方法見つけましたので紹介だけしておきます。 この方法では各自のファイル(編集後ファイルには)データは残りませんが、テクニックとしてだけです。

参考URL:
http://oshiete1.goo.ne.jp/qa3775393.html
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.5

誤記訂正 誤:CSVからTXT 正:CSVかTXT

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.4

簡単に済ますなら、CSVからTXTで保存してWinmerge等のTXT比較APで見てみるという手も有りますね。 まぁ、データ量にもよりますが。

参考URL:
http://www.geocities.co.jp/SiliconValley-SanJose/8165/winmerge.html
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

アクセスを勉強して、「クエリ」を使えば出来ると思います。 ーー エクセルVBAでも両者を共通するキーでソートし、マッチングのロジックで照合すば簡単に(コード数は少なく)できるが、そこまでの勉強が、大変でしょう。 ーー 両者をキー列でソートして、目視で比べるのが、質問者にとって、結局早いのでは。目処は1000件、1-2回の作業かな。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

No1です。 理想でいえば、共有のフォルダにアクセスでDB(テーブル)作成しておいて、 それぞれのパソコンにインストールされたアクセスを利用すれば複数のパソコンから同時に入力、編集が出来ます (データベースソフトではできますが、エクセルでは出来ない機能です) アクセスがないパソコンからのデータの追加で似た様な事例ですが、 各支店からエクセルでデータをメール送信してもらい、 フォルダに保存後に、アクセスを起動して追記していく事は可能です。 ほか、アクセスのテーブルをエクセルで出力することも可能です。 逆にエクセルからアクセスのテーブルをシートに取り込むことも可能ですが、 元データを編集するとなると、エクセルのVBA(ADO)を駆使して作成することになると思います。 各自のパソコンでエクセルを使用してデータを入力して、作業終了後に アクセスを起動して新規のデータ分を追加していく運用であれば難しくはないでしょう。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

フリーソフトではありませんが >A1とA2の列(レコード)を比較し、A2にあってA1に無いものを抽出する アクセスがインストールされているパソコンが会社にないでしょうか。 アクセスのクエリの機能に不一致クエリがあります。 ご質問にぴったりです。エクセルのシートをリンクして一発で抽出できます。 追加したレコードが抽出できた後にどうされますか? 原本データに追加しながらデータベースを管理するとかであれば そのまま、アクセスの追加クエリの機能になります。 用件がこの様なことで、アクセスがありましたら、目的を質問にしてみてはいかがでしょうか。 データベースの使い方では良くある内容ですので、いくらでもアドバイスの回答が付いてくると思います。

excell
質問者

補足

データを抽出したあとは、ご想像の通り、原本データに追記していきます。 たとえば、アクセスでBDを作ったとして、複数人にデータを追記してもらう場合、PCにACCESSが入ってなくとも作ったDBは利用可能でしょうか?

関連するQ&A

  • エクセルで、抽出したデータだけを別ファイルにしたい

     エクセルをデータベースソフト的に使っています。  かりに、第1行~第100行に、100(個の)レコードがあるとします。そこに「A列が1であるもの」といった抽出をかけると、20レコードが表示されました。  この状態で「ファイル→名前をつけて保存」を行なうと、20レコードだけからなるファイルが生成される──と思ったら、抽出状態で保存しても、やはり100レコードなんですね。  20レコードだけのファイルをつくるにはどうすればいいでしょうか。

  • Excelで2つのファイルの比較

    「A0101.xls」というファイルがあります。(後ろの数字は日付と考えて下さい) これを編集したものを「A0505.xls」として保存しました。 その後、「A0101.xls」を編集して「A0808.xls」として保存しました。(本来なら「A0505.xls」から編集すべきものです) 「A0505.xls」と「A0808.xls」で編集された内容を比較して最新の状態にしたいと思います。 もう1つファイルを用意して、ifで1セル毎比較させる方法もありますが、シート数も多いので、何か簡単に相違点を拾える方法があれば教えて下さい。 違うシートだけ抽出できるだけでも助かります。 よろしくお願いします。

  • Excelでブック間のデータの比較について教えてください。

    ブック間で同じようなデータ(A列に番号とB列に名前)が入力されているのですが、1つのデータは更新されて、番号と名前が増えています。1つは、おくれたままなのですが、この2つのブックで誰が抜けているのかを調べたいのです。=Countif(A:A,[Book2.xls]社員一覧!$A1)としたところ異なった名前は1で空白セルのみが0になってしまいます。 2つのブックを比較したい場合はどうすればよいのでしょうか。 宜しくお願い致します。

  • セル値に変更のあった行を他のブックにリストアップする。

    データベース上書きのため、値が入力され、既存のデータと変更のあった行だけを抽出したいと思います。データベースはサーバに保存され、エクセルデータを全読み込みする形式でデータベースを更新しています。データが20000行に及ぶ為、読み込みに時間がかかります。そこで、差分データだけの読み込みを行いたいと思います。 B列のセルに数値を入力していますので、B列が変更された行だけ差分データとして更新しようとしています。そのセルのA列にはそれぞれ固有のコード番号をふっています。 B列セルに変更があった場合に、同じ行のA列セルの値を他ブックに記録するか、もしくはその行をまったく同じ形式で他ブックに保存出来ませんか?

  • 複数のエクセルブックを一覧にすることはできますか?

    200個くらいの同一形式のエクセルを一覧にしたいのですが、 アクセスがない為、エクセルでなんとかできないかと、悩んでおります。 データは1つのフォルダの中に、 1.xls 2.xls ・ ・ ・ 200.xls と200個あり、それぞれA1:N20の範囲の中のセル内容を、 __|_A列_|_B列_|_C列_|・・・|_?列 _| 1行 |_1.xls_|_A1 _|_B1 _|・・・|_N20 _| 2行 |_2.xls_|_A1 _|_B1 _|・・・|_N20 _| 3行 |_3.xls_|_A1 _|_B1 _|・・・|_N20 _| 上記のように、 A列にファイル名を入れて、B列以降に1つのブックの内容を入れたいです。 (A列へのファイル名は、なくても最悪OKなのですが・・・。) 説明が足りないかもしれませんが、どなたか教えてください。 よろしくお願い致します。

  • 別ブックの指定行参照

    参照したい行をA2に入力したら、別ファイルからデータを拾ってくる方法を知りたいです。 例えば… メイン.XLSのA2に、データベース.XLSの参照したい行を入力します。 データベース.XLSのD7が参照したいなら メイン.XLSのA2に7と入力する ※今回は列は固定でDとします。 するとメイン.XLSのA1にデータベース.XLSのD7が自動で入るようにしたいです。 エクセル初心者なので、宜しくお願いします。

  • エクセルのデータ比較

    シート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つのファイルの値の比較をしようとしていて、不一致行を抽出しようとしています。以下をエクセル上もしくはアクセスで簡単に抽出できる方法を教えてください。 2つのファイルには列が8列ずつあります。5列目までが一致しているけれども6-8列目が異なるケースを抜き出したいと思っています。 例えば Aファイル A,A,A,A,A,100,200,0 ・・・(1) A,A,A,A,A,200,200,0 ・・・(2) Bファイル A,A,A,A,A,100,200,0・・・(1) A,A,A,A,A,200,100,0・・・(2) 上記の場合(2)のデータの抽出をしたいと思っております。

  • 他ブックからデータ取得

    困っています、よろしくお願いします 現在画像のような月データ(例としてのため簡略化しています。実際はもっとデータ数は多いです)を大量に、いくつかのブックで保存しています。 これらをファイルごと、具体的にはAフォルダに12か月分あると考えてください やりたい事としては、Aファイルにあるこの画像のデータのA列の日付を参照し、日付が変更した行から5行を取り出してその他の同日のデータは消去してを繰返して、Bファイルに新規保存していきたいです この場合、2012/2/2のM列の値段が100から500までの5行を抽出し、他の2012/2/2の行を消去し詰める その後2012/2/12の範囲のM列の値段が1500から1900までの5行を抽出し、他の2012/2/12の行を消去し詰める といった事を最終行まで繰返したいのです この時、対象となる日付の5行以下ならそれら全てを参照、例えば5行を抽出し、他の2012/2/27のデータが3行しかないなら、それらをはじかず全てデータとしてとりこみたいです また、できれば抽出する行数(この場合5行)を自由に変更できるようにもしたいです 日本語がおかしくてよく伝わらないとおもいますが、VBAとかプログラムとかこういうのが全くわからなくて困っています ほんとうに、よろしくお願いいたします

  • 二つのエクセル名簿を比較し、抽出したい

    エクセルでできた名簿が2つあります。 どちらも 列EがID、 列Fが氏名 列Gがフリガナ という構成は同じです。 両方の名簿で同じ人は、同じIDです。 ただ、上記記載以外の列、備考や更新日などは同じ人でも異なったデータが入っています。 二つの名簿ファイルを借りに名簿A、名簿Bとすると 名簿Aにのみ掲載されてる人のレコードのみ抽出したいのです。 両方の名簿から、ABともに掲載されてる人、Bのみに掲載されてる人を除き、Aのみに掲載されてる人だけのリストを作りたい。 理想は、名簿Aのリストはそのままにして、 まったく別の列(例えば列Z)に抽出した人だけ 1を入力するなどが理想です。 1行ずつ目で見て比較していくのは、時間のむだでとてもできません。

専門家に質問してみよう