ExcelのMAX値を超えるCSVファイルを渡されたのですが、どうしてもすべてのデータを見ることができるようにしたいのです。分割する方法は知っていて、試したのですが、うまくいきません。
背景を少し。CSVファイルはExcelのCSVファイルで、ファイルをくれた人は、約2m`の行のデータがあると言っています。
Excelにインポートすると、1,048,576
行までのデータを取得し、新しいタブでデータの1,048,577
行から再インポートしますが、1行しか得られません、もっとあるはずです(200万以上あると" the person" が言った事実だけではなく、最後の数行のセットの情報によって)。
こうなった原因は、もしかしたらCSVファイルをExcelのCSVファイルとして提供されているので、1,048,576
以降の情報がすべて失われているからかもしれないと思いました(?)
SQLデータベース形式のファイルを要求する必要があるのでしょうか?
MS-Accessで.CSVファイルをロードすることをお勧めします。
MS-Excelを使用すると、このソースへのデータ接続を作成し(ワークシートにレコードを実際にロードすることなく)、接続されたピボットテーブルを作成できます。 これで、テーブルに実質的に無制限の行数を含めることができます(プロセッサとメモリによって異なります。3Gbメモリを搭載した15 mlnの行があります)。
追加の利点は、MS-Accessで集約ビューを作成できるようになったことです。 このようにして、数億行の概要を作成し、MS-Excelで表示できます(32ビットOSのNTFSファイルの2Gb制限に注意してください)。
まず、ファイル形式をcsvからtxtに変更します。 簡単に実行できます。ファイル名を編集して、csvをtxtに変更するだけです。 (Windowsでは、データの破損の可能性について警告が表示されますが、問題ありません。[OK]をクリックしてください)。 次に、txtファイルのコピーを作成して、2つのファイルに200万行のデータが含まれるようにします。 次に、最初のtxtファイルを開き、200万行を削除してファイルを保存します。 次に、2番目のtxtファイルを開き、最初の100万行を削除してファイルを保存します。 2つのファイルを最初にtxtに変更したのと同じ方法で、2つのファイルをcsvに戻します。
Excel 2007+は100万行を多少超える程度に制限されています (正確には2^20)ので、2M行のファイルを読み込むことはできません。 分割というテクニックはExcelに内蔵されているものだと思いますが、それは幅の問題に対してのみ有効で、長さの問題には有効ではありません。
私がすぐに見た本当に最も簡単な方法は、いくつかのファイル分割ツール - 多くの 'em を使用し、結果の部分 csv ファイルを複数のワークシートに読み込むためにそれを使用することです。
ps: "excel csv files" は存在しません。存在するのは、一般にcsvファイルと呼ばれる形式の1つを使用したExcelで作成されたファイルだけです...。
Microsoft Queryについて誰も言及しなかったことに驚いています。 必要なものだけをクエリすることで、必要に応じて大きなCSVファイルからデータを要求できます。 (クエリは、Excelでテーブルをフィルタリングする方法のように設定されます)。
さらに良いことに、Power Queryアドインのインストールが可能であれば、非常にシンプルで迅速です。 注:Power Queryは2010年と2013年のアドインですが、2016年に付属しています。
Matlabを使用している場合は、インポート機能を介して大きなCSV(またはTXT)ファイルを開くことができます。 このツールは、テーブル、列ベクトル、数値行列など、さまざまなインポート形式オプションを提供します。 ただし、Matlabはインタープリターパッケージであるため、このような大きなファイルをインポートするには独自の時間がかかり、約10分で200万行を超えるファイルをインポートすることができました。
このツールには、[データのインポート]ボタンをクリックして、Matlabの[ホーム]タブからアクセスできます。 大きなファイルのアップロードの例画像を以下に示します。 。。 インポートすると、データは右側のワークスペースに表示され、Excelのような形式でダブルクリックしたり、さまざまな形式でプロットしたりできます。 。。
MS Accessを使用します。 2,673,404レコードのファイルがあります。 notepad ++では開かず、Excelは1,048,576を超えるレコードをロードしません。 mysqlデータベースからデータをエクスポートしたので、タブが区切られています。csv形式でデータが必要です。 Accessにインポートしました。 ファイル拡張子を.txtに変更して、MS Accessがインポートウィザードを通過できるようにします。
MS Accessはファイルにリンクするため、データベースをそのまま維持するには、csvファイルを保持します。
私はこの主題を研究しているのを見つけました。 このすべてのデータをExcelデータシートにコピーする方法があります。 (以前に5,000万行のCSVファイルでこの問題が発生しました)。 フォーマットがある場合は、追加のコードを含めることができます。 これを試してみてください。
Sub ReadCSVFiles()
Dim i, j As Double
Dim UserFileName As String
Dim strTextLine As String
Dim iFile As Integer: iFile = FreeFile
UserFileName = Application.GetOpenFilename
Open UserFileName For Input As #iFile
i = 1
j = 1
Check = False
Do Until EOF(1)
Line Input #1, strTextLine
If i >= 1048576 Then
i = 1
j = j + 1
Else
Sheets(1).Cells(i, j) = strTextLine
i = i + 1
End If
Loop
Close #iFile
End Sub