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

 今晩は、質問させていただきます。どうぞよろしくお願いいたします。
環境:Win7 64bit SP1、 エクセル2010
でございます。

 「1000万行×3列」のCSVファイルデータを、100万行ずつ
シート1~10に振り分けたく悩んでおります。
・エクセルは100万行しかありませんので、「一旦開いてから各シートに分割」という方法が使えませんし、
・またReadLineいたしますと(1行ずつの方法しか存じませんので)時間がかかりそうですし、
何よりcsvファイルのカンマ記号も含め1行全てが、エクセルのひとつのセルに入ってしまうのでは、などと考えております。

 何か良さそうな方法を思いつかれる方はおられませんでしょうか。
もしお詳しい方がいらっしゃいましたら,どうぞよろしくお願いいたします。

A 回答 (5件)

>そのようにいたしますと、「,」(=カンマ)で区切られたCSVファイルの1行のデータ全てが


エクセルの「A1」に入ってしまいます。

実際に私の提示した方法を試されたのでしょうか?

私が提示した方法は、エクセルの一般機能(区切り位置)で上記のようなデータを列に自動的に分割する方法を紹介しています。

このように1回だけ区切り位置の機能を利用すると、その設定をエクセルが記憶していて、2回目からコピー貼り付けするだけで、自動的に列に分割してくれます。

自分でマクロコードを編集や記載する手間や時間を考慮すれば(毎日何回も同じ作業を繰り返すようなことがないなら)、私の提示した方法でショートカット操作を使えって操作すれば、10回のコピー貼り付け操作は5分もあればできると思うので、実戦的には効率的だと思うのですが・・・
    • good
    • 1
この回答へのお礼

 どうもありがとうございます!助かりました。m(_ _)m
エラーばかり表示されてエクセルもワードも固まってしまうため、貼り付け自体が行えておらず「データ区切り」まで試すことができておりませんでした。
 まず「CSV→Wordで読み込」時に「エラー:…使用可能な最大ページ数を超過したか、文書が破損しています。…」と表示されたため読み込みが行えず、秀丸で読み込むことにいたしました。
 しかしそれでもテキスト→エクセル貼り付け時に、「リソース不足です。」と表示されてしまい、(PCのメモリは16GBだったのでございますが。。。)
別のPC(メモリ32GB)に移動して貼り付けようとしたところ、今度は「貼り付けできません」というエラーが出てまいりました。これについては同様なエラーで困っておられる方が多いようで「オブジェクト非表示の状態になっている」事が原因の事例が多いようでしたが、私の場合は当てはまっておりませんでしたので、諦めました。
 新しいエクセルファイルを用意してテキスト→エクセルの貼り付けを行ったところ、貼り付けが出来ましたので、何が原因なのかは時間をかけて調べれば分かりそうでございます。
 ただファイル数が50ほどあるのでVBAで出来る方法を探していたのでございますが、これについては、お教えいただいた「データ区切り」機能を実行できるコードを見つければ解決出来るのでは、と考えております。
 この度はご親切にお教えいただき誠にありがとうございました!^^

お礼日時:2015/01/25 20:38

100万行超のデータをExcelで扱う方法



無料のMicrosoft COMアドイン
Office 365 ProPlus /Office Professional Plus 2013/単体販売のExcel2013で利用可能

Microsoft Power BI 紹介サイト
http://www.gixo.jp/blog/2252
http://www.gixo.jp/page/1?s=Power%20Pivot

Microsoft
http://www.microsoft.com/ja-jp/office/2013/busin …

この回答への補足

>お礼コメント
 大変失礼いたしました。No.3様へのお礼のコメント欄に書いたつもりでございました^^;
今から試してまいります!どうもありがとうございます!m(_ _)m

補足日時:2015/01/25 11:22
    • good
    • 0
この回答へのお礼

 どうもありがとうございます!m(_ _)m
試させていただきましたが、XP時代に開発されたもののようで
最大行=65,536まででございました。今回は1,000,000で分割したいので
使用できませんでしたがおそらく、類似ソフトがあるように思われます。
なので探してまいります。
 この度はご親切にどうもありがとうございました。m(_ _)m

お礼日時:2015/01/25 11:19

こちらは使えませんか?ずばり、CSVファイルを任意の行数・項目数に分割するツールです。



https://www.hioki.co.jp/support/soft01/power_cur …

このソフトを提供している会社は測定器屋さんで、電圧の変動を測定し記録するような機械を作っています。これで例えばデータ収集間隔が1ミリ秒の24時間収集なんてやった場合、出来上がるデータの行数は8640万行にもなり、とてもじゃないですけどExcelでは開けないし、編集しろと言われても困る巨大データになります。こうなることがわかっているので、こうした分割ツールが必要になるわけです。
    • good
    • 0
この回答へのお礼

 どうもありがとうございます!m(_ _)m
試させていただきましたが、XP時代に開発されたもののようで
最大行=65,536まででございました。今回は1,000,000で分割したいので
使用できませんでしたがおそらく、類似ソフトがあるように思われます。
なので探してまいります。
 この度はご親切にどうもありがとうございました。m(_ _)m

お礼日時:2015/01/25 11:20

No1の回答の補足です。



ワードで100万行のデータを取り扱ったことはないのですが、100万行目を何回も選択することが手間かもしれないので、ワードの機能を利用した以下のような手順が簡単です。

Ctrl+Gでジャンプダイアログを出して「移動先」を「行」にして「10000001」と入力してOKします。
その後Ctrl+Shift+Home→Ctrl+X→エクセルでCtrl+Vで1サイクルですが、2回目からはワードに戻ってCtrl+Gで、上記の設定が残っているのでそのままOKして次のブロックのコピー(切り取り)操作をすると効率的だと思います。
    • good
    • 0
この回答へのお礼

 どうもありがとうございます!m(_ _)mm(_ _)m
No.1のお礼に書かせていただきました通り、今回は難しそうでございますが
Ctrl+Shift+Homeを存じませんでした(^^)便利ですねこれ。今までスクロールバーでずーっと移動しておりました^^;
 ご親切にアドバイス頂き誠にありがとうございました!!

お礼日時:2015/01/25 11:30

>・エクセルは100万行しかありませんので、「一旦開いてから各シートに分割」という方法が使えませんし、



この程度の作業なら、私なら以下のような方法で編集してしまいます(長くても5分もあれば作業できると思います)。

csvファイルをワードで開いて、ページレイアウトタブの「行番号」をクリックし「連続番号」を表示しておきます。
このファイルを100万行単位で切り取り、すなわち右のスクロールバーをスライドして100万行目を見つけて、Ctrl+Shift+Homeで100万行を選択して、Ctrl+Xで切り取り、エクセルにCtrl+Vで貼り付けて、最後に「データ」「区切り位置」で「次へ」で区切り文字を「カンマ」にして「完了」します。

2回目からは、同様に100万行分を切り取り、エクセルに貼り付ければ、区切り位置の設定をExcelが記憶していますので自動的にセルに分割されます。
    • good
    • 1
この回答へのお礼

 どうもありがとうございます!m(_ _)m
そのようにいたしますと、「,」(=カンマ)で区切られたCSVファイルの1行のデータ全てが
エクセルの「A1」に入ってしまいます。
(CSVファイルの1行目「○○, △△, (チェック)(チェック)」→エクセルのA1=「○○」、B1=「△△」, C1=「(チェック)(チェック)」 としたいのですが、
テキストやワードで開いて行選択でコピペすると、A1=「○○, △△, (チェック)(チェック)」になってしまいます。)

 もしデータ量が少なければ、そのあとでVBAか関数でカンマをSplitしても良いと思うのですが、
今回は100万行ありますので難しそうでございます。orz
 この度はご親切に誠にありがとうございました!!m(_ _)m

お礼日時:2015/01/25 11:28

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

このQ&Aを見た人はこんなQ&Aも見ています