アプリ版:「スタンプのみでお礼する」機能のリリースについて

初めて質問させて頂きます。
excelは入力メイン、多少の関数は使用できる程度の初級者です。

二つのcsvファイルのデータを照らし合わせて重複しているデータの横列に数字の1を追加していきたいです。
二つのファイルの内、一つ目のファイルは大元になっているファイルでデータが15万件程あります(Aファイルとします)。二つ目のデータは2万件程で、中のデータは全て大元データと重複しています(Bファイルとします)。

Aファイルの最右列に、Bファイルと重複しているデータは後でフィルタできるように印として数字の1を入力するよう指示されたのですが、データ量が多く単純作業にも関わらず時間がかかってしまう為時間短縮できる方法があればと質問させて頂きました。

良い解決方法をご存知の方がいらっしゃいましたら、ご教示頂けると助かります。
どうぞよろしくお願いします。

A 回答 (2件)

どのようなデータを比較するのか分かりませんが、MATCH関数で調べられると思います。


MATCH関数の使い方を調べてみてください。

他のBookのシートを参照する方法は分かりますか。
同じBookで同じシートなら「=A1」のように直接セルをしていすればよいのですが、
1.別シートを参照する場合、
 =Sheet1!A1
のように
 シート名+!+セル番地
と指定します。
2.別のBookのシートを参照する場合、
 =[book.xlsx]Sheet1!A1
のように
 [+ファイル名+]+シート名+!セル番地
と指定します。
ファイル名にはそのファイルが保存されているパスを含むことができます。
 =[C:\ユーザー\デスクトップ\bool.xlsx]Sheet1!A1

あとはMATCH関数でエラーが出なければ重複するデータがあると判断できます。
IF関数とISERROR関数の組み合わせで作ってみてください。
※IF関数、ISERROR関数の使い方を調べてください。


・・・余談・・・
自分は問題とその対処方法を理解して初めて解決すると考えています。
他の人に解決手段を作ってもらって、目の前にある問題の先送りは当人のためにはならないという趣旨です。
ですので、自分で考えて分からないところとを聞くようにすることは良いと思いますが、
すべて他人に丸投げすることはお勧めしません。
この質問に関しては解決の手順を示しましたので、そのなかで分からないことについて「お礼」や「補足」で返答してもらえれば
理解の助けになるような返答を返します。
    • good
    • 0
この回答へのお礼

早々にご返信頂き、ありがとうございます。

勉強不足で何をどう使用すれば良いかも思いつかず丸投げの質問になっていたんですね。
そんな事にも気づかず大変失礼しました。

教えて頂いた通り、MATCH関数とISERROR関数で希望通りの処理をすることが出来ました。
作業時間がかなり短縮でき本当に助かりました。
関数も組み合わせで作業の幅が広がるんですね!自分でも勉強してみます。

今回は本当にありがとうございました。

お礼日時:2016/08/02 12:47

元がCSVファイルなら、それをExcelで読み込むのは危険だと思います。


なぜなら、Excelに取り込んでそれを保存した時点で、本来のCSVのフォーマットを崩す可能性があるから。
フォーマットがどうなってもいいなら関係ありませんが。
ダブルクォーテーションが消えるとか。

あと、CSVファイルを直接ダブルクリックしてExcelを開くことにより、中身が壊れる可能性もありますね。
そういうのを理解していればExcelでも事足りるでしょう。

Accessが使えるなら、こんな方法論も取れると思います。
CSVファイルのフォーマットが変わらないなら、Excelでやればいいと思います。

1.
TableAにAファイルの中身、TableBにBファイルの中身をメモ型フィールド項目「CSV_VALUE」内に全部突っ込んでおく。
TableAには、「1」を追加する用のテキスト型フィールド「DUPLICATE_FLG」を設けておく。

2.SQLを叩く
UPDATE
TableA A
SET
A.DUPLICATE_FLG = 1
WHERE
EXISTS (
SELECT
B.CSV_VALUE
FROM
TableB B
WHERE
B.CSV_VALUE = A.CSV_VALUE
)

3.テーブルを開いて、Ctrl+Aで丸々、新csvファイルとして正規表現が利用できるテキストエディタに貼り付ける。
(EmEditorなど)
1行目のタイトル行は不要なので、行削除する。

4.正規表現を使って、「1」の部分を置換する。
検索:\t$
置換文字:,
検索:\t1$
置換文字:,1
    • good
    • 0
この回答へのお礼

csvファイルをエクセルで開くのは危険なんですね、知りませんでした!
accessはラベル印刷やクエリもウィザードぐらいしか使ったことが無いぐらいの初心者なのですが、教えて頂いたやり方で挑戦してみたいと思います。
今回はご回答頂きありがとうございました!

お礼日時:2016/08/02 12:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!