
以下のような、カンマで区切られたCSVファイルがあるとします。
個人ID,測定日,速度,曜日,エラーチェック
a001,20110212,0,1,0
a001,20110212,5,1,0
a001,20110212,10,1,0
a002,20110212,2,1,1
a002,20110212,8,1,0
a003,20110212,10,1,1
a003,20110212,15,1,0
これが実際には下に4000万行ほど続き、ファイルサイズは2GBを超えます。
そのため、使用しているExcel(2010)では完全に開くことができません。
そして、やりたい作業は以下の2つです。
1、列を絞りたい
たとえば、個人IDと速度、エラーチェックだけ残してあとは消す、など。
2、行でファイルを分割したい
たとえば、a001さんのデータだけを抽出したCSVファイルを別で保存するなど。
最低限、巨大なCSVファイルを扱うことができるエディタがあればよいのですが、上に挙げた作業が簡単にこなせる機能があれば嬉しいです。
また、プログラムはFortran90を扱うことができますので、Fortranによる方法があればそちらでもかまいません。(その場合は、完全でなくてもよいのでソースを書いてくださると助かります。)
No.6ベストアンサー
- 回答日時:
そりゃExcelのワークシートには読み込める行数の制限はありますが、
VBAでファイルの読み書きをする分には問題ないはず。(ただ、3GB位のテキスト
ファイルを読んだことがあるだけで、大容量のファイルの書き出しは
したことはないのだけれど。この時のExcelのバージョンは2000です。)
以下、VBAのサンプル。
Sub 列を絞る()
fno1 = FreeFile
Open "入力ファイル名" For Input As fno1
fno2 = FreeFile
Open "出力ファイル名" For Output As fno2
Do While Not EOF(fno1)
Input #fno1, a1, a2, a3, a4, a5
Write #fno2, a1, a3, a5
' a1 の前後に"(ダブルコーテーション)が挿入されます。
' 都合が悪ければ以下を使用のこと。
' Print #fno2, CStr(a1); ","; CStr(a3); ","; CStr(a5)
Loop
Close fno1
Close fno2
End Sub
Sub 行を分割()
fno1 = FreeFile
Open "入力ファイル名" For Input As fno1
fno2 = FreeFile
Open "出力ファイル名" For Output As fno2
Do While Not EOF(fno1)
Input #fno1, a1, a2, a3, a4, a5
If a1 = "a001" Then
Write #fno2, a1, a2, a3, a4, a5
End If
Loop
Close fno1
Close fno2
End Sub
フリーウェアを使用するのに制限がないのなら、No.1さんのgrep, awkを使用するのが
お勧めです。特にプログラムを書かなくても(書いても1行程度)実行可能なのが魅力です。
列を絞る場合:
awk -F, '{ OFS=","; print $1, $3, $5; }' 入力ファイル名 > 出力ファイル名
行を分割する場合:
grep "a001" 入力ファイル名 > 出力ファイル名
以上
No.5
- 回答日時:
早速テストしていただいてありがとうございます。
とても参考になりました。
やはり技術仕様をそのまま鵜呑みにはできないですね。
4000万行というのが凄いですけど。
No.4
- 回答日時:
書き忘れましたけど
Filemakerは30日体験版がありますので是非テストしてみて
結果をお教え下さい。ホントに4000万レコード扱えるのか。
体験版をインストールしたらデスクトップにショートカット
できるので、それにCSVをドロップするだけです。
1も2もメニューから選ぶだけですぐできますから是非お願い
します。
貴重なご意見、ありがとうございます。
Filemakerを試してみました。読み込みはできて、一応やりたかった作業はこなせそうです。
しかし、使用に関して問題点が多く、今回メインで使用することはあきらめました。
問題点は、以下の3つです。(使用PCは、Core-i7採用、16GB RAM、SSD搭載です)
1、読み込みに時間がかかる。(4000万行、2GBで1時間以上かかりました)
2、処理に時間がかかる。(列を1つ消すのに20分くらいかかりました)
3、余計なファイルが作成される。(編集用?に、1.5倍以上の容量のファイルが一緒に保存されました)
かなり便利なツールだとは思いますが、大容量ファイルには向かないのだと思います。
No.3
- 回答日時:
ACCESSのファイルサイズは
2 GB からシステム オブジェクトに必要な領域のサイズを引いた値らしい。
Filemakerは
単一のテーブル内のレコード数:ファイル寿命全体を通じて、合計 64,000 兆
までのレコード
ファイルサイズ : ハードディスクおよび OS の API の能力によって、最大8TB
ですから問題無いと思いますけど。
No.2
- 回答日時:
MS-EXCELではデータ吸うに限界があります。
MS-ACCESSを使えば簡単にできます。
エディタでやるなら、TeraPadはどうですかね?
データ数の限界は知りませんが、パソコンのメモリー限界までいけるんじゃないでしょうか?
2GBということなので、WindowsならXP機ではできないですね。
Windows7で、メモリーを4GB以上積んでいればできるのじゃないでしょうか?
No.1
- 回答日時:
Linuxならgrepとawkでできます。
Windowsならこれを使えば。
http://www.vector.co.jp/soft/winnt/util/se365621 …
http://www.vector.co.jp/soft/win95/util/se376460 …
grepでa001を含む行だけ抽出
awkで特定の項目だけ抽出
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Excel(エクセル) CSVファイルでVBAを動かす方法 3 2023/04/04 10:22
- Visual Basic(VBA) VBAで特定の場所にあるCSVファイル(複数)から特定場所を抜き出してExcelに転記したいです。 11 2023/05/23 16:29
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Access(アクセス) CSVファイルの「0落ち」にVBA 6 2023/02/02 15:27
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- Visual Basic(VBA) エクセルVBAについて 8 2022/07/13 22:41
- Excel(エクセル) Excelを開くとエラーが出る 2 2022/10/03 16:13
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
STEAM版BF4が起動しない
-
パソコンソフトでお知恵を下さ...
-
既存のプログラムで拡張子HPGの...
-
スプレッドシートの作業範囲
-
SketchUp Freeのダウンロードの...
-
Acronis True Image HD 2022の...
-
jtrim 1.53cが正常な動きをし...
-
iTunesと似た機能のソフトを教...
-
Google日本語で『賛否』が出ない
-
ChatGPTの回答をコピーしても箇...
-
Windows Media Playerが動作し...
-
LibleOffice Calc のテキストボ...
-
Googleドライブの使い方が分か...
-
パソコンに保存してある動画をD...
-
premiere「ディスク上のファイ...
-
画像のウォーターマークをツー...
-
powerAutomateの使用メモリにつ...
-
mp3 ファイルをCDに焼く無料ソ...
-
notepadというテキストエディタ...
-
画像ファイルの並び替え
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
microsoft teamsの左のアイコン...
-
Acronis True Image HD 2022の...
-
jtrim 1.53cが正常な動きをし...
-
SketchUp Freeのダウンロードの...
-
iTunesと似た機能のソフトを教...
-
premiere「ディスク上のファイ...
-
既存のプログラムで拡張子HPGの...
-
Google日本語で『賛否』が出ない
-
ChatGPTの回答をコピーしても箇...
-
google日本語の品詞
-
Windows Media Playerが動作し...
-
mp3 ファイルをCDに焼く無料ソ...
-
コピー元とコピー先を同じにす...
-
このウイルスソフトは、どうな...
-
powerAutomateの使用メモリにつ...
-
スプレッドシートの作業範囲
-
STEAM版BF4が起動しない
-
ゆうちょ認証アプリが使えません
-
クラウド上に差分バックアップ...
-
win10からwin11へのIME登録単語...
おすすめ情報