プロが教えるわが家の防犯対策術!

いつもお世話になっています

CSVファイルの特定の項目について、文字を加えたいのですが、件数が膨大
なため(15万レコード程度)、エクセルで操作することができません。

文字を加えるというのはこのようなイメージです

 012011,012225,125666,54855~
     ↓
 012011,K012225,125666,54855~

分割してエクセルによみこまして処理することも考えたのですが、大変手間でも
ありますので、このような機能があるようなCSVファイル操作できるフリーソフト
はありませんでしょうか? 

A 回答 (7件)

たぶん他の方の回答で解決されたかと思いますが、せっかくなので。



>エディタでもできそうですね。

どうなんでしょう。この置換はたとえば秀丸エディタでも可能ですが、15万レコードに対し置換をかけると、どのくらい時間がかかるのか… ちょっと私にはわかりません。(というかそもそもエディタで開けるのかがわからないんですが、もし無理だったら済みません。)

>どのように置換すればよいか、差し支えなければご教示いただけませんでしょうか?

shift-jisであることが前提です。
まず、最初の数値の前が改行されてないとダメなので、1行空けます。

012011,012225,125666,54855
で、最初の列は6桁みたいですので、このソフトで正規表現で行なうとすると、
「\n([0-9]{6})\,」→「\n$1,K」となります。
(秀丸だとちょっと異なります。)
\nが改行、()内がワイルドカード、\,はエスケープした「,」です。置換後の方で、$1で()内を展開し、「,」の後にKを追加しています。
なお、このソフトでの正規表現にはhttp://www.vector.co.jp/soft/win95/util/se142895 …に書いてあるように、
↓のDLLのインストールが必要です。
http://www.hi-ho.ne.jp/babaq/bregexp.html
インストールといっても、ソフトのexeと同じフォルダにDLLファイルを置くだけですが。
    • good
    • 0
この回答へのお礼

正規表現のご教示ありがとうございます。私はエディタの秀丸をもっています。おそれいりますが、秀丸での正規表現についてご教示いただけませんでしょうか。

お礼日時:2005/01/26 16:19

akamanbo さんの仰られた Speeeeed


古いバージョンがありましたので、
http://www.vector.co.jp/soft/win95/util/se142895 …
で 新しくし、約18万行の.DBFをCSVにおとし、やってみましたところ、5秒ぐらいで(書換1項目=該当レコード約1万件)すみました。
TEXTのみと思ってましたが、中々いいですね。
解凍したてのSpeeeeed初期設定では
*.bat;*.cgi;*.css;*.htm;*.html;*.js;*.log;*.pl;*.shtml;*.txt のみで、csvは入っていませんので、CSVを追加するか、全てのファイル(*.*)で 置き換えするファイルを指定すればOKです。

参考URL:http://www.vector.co.jp/soft/win95/util/se142895 …
    • good
    • 0
この回答へのお礼

ありがとうございました。このソフトをDLして、実行したところ、うまくいきました。

fishing88さんのお礼の欄をかりて、回答をいただいた皆様にお礼申し上げます。わずか半日の間に多くのアドバイスをいただき、感謝しています。おかげでなんとかなりそうです。これからも機会がありましたら、よろしくご指導下さい。本日はありがとうございました。

お礼日時:2005/01/26 20:40

Perlを使いましょう。


KplusNo2.pl
$"=',';
while(<>){
@data=split(/,/,$_);
$data[1]="K".$data[1];
print "@data";
}
使い方
Perl -i.bak KplusNo2.pl data.csv
元のファイルは、拡張子.bakを付けて保存されます。
    • good
    • 0
この回答へのお礼

ご教示ありがとうございます。しかしデータベースでさえ敷居が高い私ですので、Perlまではちょっと・・・

お礼日時:2005/01/26 17:06

そうでした、先ほどのは列単位がNGでした。



シェアウェアですが、「ListPad」は、かなり評判がよいようです。
このページの一番下にあります。
http://www2.lint.ne.jp/~lrc/da_csvedit.htm

ReadMeから抜粋しておきます
------------------------------
 ListPadはシェアウェアです。継続的なご利用に際しては登録が必要となり
ます。詳しくはヘルプの「シェアウェアについて」をご覧ください。機能制限
はありませんが設定読み込みの度に登録状況を見、未登録の場合は5分の1の
確立でリマインダーが出ます。具体的には起動、設定変更、絞り込み検索の
時に設定を見ています。
------------------------------
    • good
    • 0
この回答へのお礼

ありがとうございます。早速DLしてやってみました。しかし、このソフトで10万件以上の処理をするは無理のようで、フリーズしてしまいました。

お礼日時:2005/01/26 16:17

これは、どうでしょうか。



「Csviewer」
http://www.vector.co.jp/soft/win95/util/se351269 …

試してみたところ、20列で、20万件を読み込みして、
検索・置換は出来ました。

ただ、編集はセル単位は行えなく、検索・置換のみのようです。
    • good
    • 0
この回答へのお礼

早々のご教示ありがとうございました。たしかに、このソフトは読みとり能力はすごいですね。でも、思うように置換ができません・・特定の文字ならば置換はできるのですが、同一の列のみに特定の文字を加えたいのですが・・

お礼日時:2005/01/26 14:38

CSVですか…


私なら、強引にテキストファイルとして
http://www.vector.co.jp/soft/win95/util/se142895 …
このソフトで処理すると思います。
改行文字を利用し、正規表現で置換処理を行なえば、おそらく可能ではないかと。

他にもっといい方法があるかも知れません。
    • good
    • 0
この回答へのお礼

早々のご教示ありがとうございます。改行文字を利用しての正規表現での置換ですか。エディタでもできそうですね。どのように置換すればよいか、差し支えなければご教示いただけませんでしょうか?

お礼日時:2005/01/26 13:52

件数が多いのでデータベースを利用されてはどうでしょう。


フリーだとMysqlというソフトが有名です。
SQLを多少勉強しなければいけないですが、ご要望の操作も簡単に出来ますよ
    • good
    • 0
この回答へのお礼

早速のご教示ありがとうございます。データベースソフトですね。SQLですか・・すこし、敷居が高いような気がします。

お礼日時:2005/01/26 13:47

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