人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

2つの、膨大なCSVデータがあります。
(仮にAとBとします。各5~8万件)

これらを突き合わせて、重複のチェックをします。
Aに含まれているデータを、Bから除きたいのです。
Bの中には同一データが複数入っている可能性があります。
突合せをする項目はIDです。表記のゆれはありません。

件数が多いのでexcelが使えません。
accessは一応入ってます(不慣れですが)。

accessないし他の方法で、上記の重複チェック⇒重複分削除をする方法をお教えください。

条件がありまして、作業の際に人為的ミスを起こしたくないので、「なるべくステップの少なく確実な手順」を希望します。宜しくお願いします!

●質問者: bababa
●カテゴリ:コンピュータ インターネット
✍キーワード:access CSV Excel ステップ データ
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● mizki101
●20ポイント

Accessで不一致クエリを作成すれば出来ます。

http://makotowatana.ld.infoseek.co.jp/access/achowFindUnmatchedQ...


さらにそこから削除クエリを動かせばデータを削除できます。

http://www.nurs.or.jp/~ppoy/access/access/acQ018.html


もしくはこんな方法も

http://www.accessclub.jp/bbs3/0125/superbeg43581.html


逆に考えて、一致するデータだけ取り出して新しいデータファイルを作るのも

一つの手です。

多分こちらの方が簡単です。


2 ● akibare
●20ポイント

Accessでのやり方です。

1) [ファイル - 外部データ - インポート]でAとBをインポートします(それぞれテーブル名はAとBとする)。

2) 新規クエリを作成します。デザインビューで[ビュー - SQLビュー]を選択して以下のクエリを貼り付けます

DELETE *

FROM B

WHERE ID IN (SELECT B.ID FROM B INNER JOIN A ON B.ID = A.ID);

3) [!]ボタンでクエリを実行します。

http://dummy.co.jp/


3 ● goldman
●20ポイント

ファイルA.TXTのIDが3項目、ファイルB.TXTのIDが6項目目にあると仮定して、

// ファイルAを3項目目でソートする

srtcsv A A.OUT (3)

// ファイルBを6項目目でソートする

srtcsv B B.OUT (6)

// ファイルAとファイルBを指定した項目番号で照合しファイルAからファイルBを

// 除いたレコードを抽出する

CSVMAT2 A.OUT B.OUT OUTPUT.CSV [(3)][(6)]

でOUTPUT.CSVに出力されます。

http://www.vector.co.jp/soft/winnt/util/se403833.html


4 ● Mook
●20ポイント

MS が提供しているフリーの logparser というプログラムで CSV ファイルを DB のように制御できます。

CSV をはじめ、Windows のさまざまなリソースを SQLで制御できます。

(詳細はヘルプをご参照ください。)


   1、Logparser.msi をダウンロードし、インストールします。


   2、タイトル行を挿入します。

CSVの先頭にID,DATA のように、タイトル行を作成します(SQL内で使用)。


   3、下記のバッチを作成し、実行します。

      ファイル名、項目名はサンプルです。実際のファイルにあわせて、変更して下さい。

@echo off

set command="C:\Program Files\Log Parser 2.2\LogParser.exe"

:: 入力ファイル名

set InFile='D:\B.CSV'

set refFile='D:\A.CSV'

:: 出力ファイル名

set OutFile='D:\NewB.CSV'

Echo 実行には数分かかります。

%command% "SELECT ID, DATA INTO %OutFile% FROM %InFile% WHERE ID NOT IN ( SELECT ID FROM %refFile% )" -i:CSV -o:CSV

Pause


   4、newB.CSV の先頭行(タイトル行)を削除します。


といった手順でできるかと思いますが、どうでしょうか。

ID と DATA を持った、65000 行の二つのファイルで試してみましたが、6分ほどで処理ができました。


5 ● OHTO
●20ポイント

あんまり難しい方法はわからないんですが・・・

件数さえ少なければ、エクセルで操作はできるのですよね?

それであれば、CSVファイルをテキストエディター等で開いて、A,Bそれぞれを2つに分けて、保存する。

それぞれのファイルで、重複チェックをかければやれますよね。ルーチンワークじゃなくって、数回の作業であれば、その方が断然早いです。


http://www.hatena.ne.jp/

URLはダミーです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ