我已經下載了一個數據集,詳細介紹了1979年1月至2004年12月期間在英格蘭報告的所有車禍事件 - 此文件位於csv格式,並且可以理解爲非常大(準確地說,是6,224,199行)。由於文件大小超過Excel 2010可以處理的行數,因此我必須將文件拆分爲更小的文件才能在Excel中同時打開它。我嘗試使用記事本和記事本++,但記事本崩潰,並且Notepad ++拒絕打開如此大的(720MB)文件。我已考慮使用類似Delimit的Excel 替代,但它不支持宏。 現在,忽略大小問題,我需要計算每個月的崩潰總數,並記下它們。有一列用於指定每次崩潰的日期,但行不會根據崩潰日期進行排序。我正在考慮使用CTRL + F來計算具有特定月份/年份值的行數,然後記錄每次搜索的結果數量,但考慮到數據跨越了25年,我必須手動搜索並記錄從300個月結果。如何計算並記錄具有特定月份/年份值的工作表中的行數
0
A
回答
0
我同意Jeanno和Brad的說法,對於這種類型的需求,Access是比Excel更好的工具。但是,我想知道用Excel讀取這樣一個大文件的嘗試是否會有一個現實的持續時間。
我連接了一些大的文本文件來創建一個663 Mb的文件,我認爲它足夠接近。下面的宏讀取文件的每一行,並將其分割爲準備分析的字段。注意:我的文件使用「|」作爲分隔符而不是「,」。
該宏在100秒內讀取7,782,013條記錄。 Access仍然是更好的選擇,但是如果Access不可用,Excel是可行的。
注意:此宏需要引用「Microsoft腳本運行時」。
Sub ReadAndSplit()
Dim FileStream As TextStream
Dim FileSysObj As FileSystemObject
Dim Line As String
Dim LinePart() As String
Dim NumLines As Long
Dim TimeStart As Double
TimeStart = Timer
Set FileSysObj = CreateObject("Scripting.FileSystemObject")
NumLines = 0
' 1 means open read only
Set FileStream = FileSysObj.OpenTextFile(ThisWorkbook.Path & "\Test4.txt", 1)
Do While Not FileStream.AtEndOfStream
Line = FileStream.ReadLine
NumLines = NumLines + 1
LinePart = Split(Line, "|")
Loop
FileStream.Close
Debug.Print NumLines
Debug.Print Timer - TimeStart
End Sub
相關問題
- 1. 每個記錄在特定年份和月份的累計值
- 2. MSACCESS我想要得到計算所有記錄的特定月份和年份
- 3. 如何計算特定月份和特定年份中MSSQL的天數
- 4. 在SQL Server 2005中選擇具有特定月份和年份的記錄
- 5. 獲取特定年份的月份值
- 6. 按年份和月份計數記錄,包括零計數
- 7. 計算月份和年份的日期
- 8. 如何根據月份和年份來計算字段的值?
- 9. 按日期計算大於X(日,月,年)的月份記錄
- 10. 如何計算給定的月份和年份
- 11. 使用Codeigniter計算特定月份的所有月份
- 12. 具有給定年份和月份的月份中的Python天數?
- 13. 如何根據特定的月份/年選擇記錄
- 14. 如何計算當前月份/年份的天數
- 15. 計算不是年份值的月份和天數
- 16. MySQL在特定月份,年份之間獲取記錄
- 17. MYSQL在特定月份和年份之前獲取記錄
- 18. 如何顯示「O」的年份和月份值,如果沒有記錄在表存在該月/年
- 19. 計算給定月份和年份的週日數
- 20. Javascript:計算給定年份的月份天數
- 21. NSFetchRequest爲特定的月份和年份
- 22. nHibernate按年份和月份計算
- 23. 獲取特定月份和年份的日期範圍內的所有記錄
- 24. Excel:計算特定月份,周,年的計費時間
- 25. MySQL選擇具有yyyy-mm-dd作爲日期的特定年份或年份月份行
- 26. 查找給定月份和特定年份的具體日期
- 27. TSQL計算月份的月份數
- 28. 在特定的月份和年份之前獲取所有記錄
- 29. 在年份和月份中獲取數據庫中的記錄
- 30. 計算excel中年份和週數的月份
您最好使用Access這種文件。導入文本文件很簡單 – Jeanno 2015-02-09 21:18:07
在Access中打開它。您的任何問題都可以通過查詢來回答。 – Brad 2015-02-09 21:18:30
如果數據在Access中,您仍然可以使用Excel,如果您真的想通過使用外部(Access)數據源的Pivot表 – Brad 2015-02-09 21:19:08