Rehberler

Excel’e Sığmayan Büyük CSV Dosyası Nasıl Açılır?

Opener ekibi5 dk okuma

Bir Excel çalışma sayfası en fazla 1.048.576 satır ve 16.384 sütun alır; bu yüzden 3 milyon satırlık bir dışa aktarım oraya sığmaz — Excel ilk kısmı yükler, sizi uyarır ve gerisini dışarıda bırakır. Dosyanın tamamını görmek için onu bu sınırı olmayan bir araçla, örneğin CSV görüntüleyiciyle açın, bir sayfa yerine Excel’in Veri Modeline yükleyin, dosyayı bölün ya da Python veya bir veritabanıyla analiz edin.

Excel dosyayı neden keser

CSV dosyasının kendine ait bir boyut sınırı yoktur. Düz metindir: her satır bir kayıt, değerler virgül ya da noktalı virgülle ayrılmış (bu size yeniyse CSV dosyası nedir rehberine bakın). Ancak Excel açtığınız her şeyi bir çalışma sayfasına koyar ve çalışma sayfasının sabit bir ızgarası vardır: 1.048.576 satıra 16.384 sütun (XFD sütunu).

Dosya bu ızgaradan büyükse Excel, dosyanın tamamen yüklenmediğini bildiren bir uyarı gösterir ve yalnızca sığan satırları tutar. Başlık satırı artı 1.048.575 veri satırı içeri girer; 1.048.577. satır ve sonrası ekranda gördüğünüz şeyden çıkar gider.

Google Sheets de burada çıkış yolu değildir. Tablo başına, tüm sayfalar toplamında 10 milyon hücre sınırı vardır. 3 milyon satır ve 10 sütunluk bir dosya zaten 30 milyon hücre eder; yani o da içe aktarılamaz.

Asıl risk: kaydetmek veri kaybettirir

Uyarı kolayca kapatılabilir ve ekranda kalan şey tamamen normal bir tablo gibi görünür. Tehlike daha sonra gelir:

Excel uyarıyı zaten gösterdiyse dosyayı kaydetmeden kapatın ve orijinal dışa aktarıma dokunmayın. Sonra ne yapacağınıza karar vermeden önce dosyanın gerçekte ne kadar büyük olduğunu kontrol edin.

1. seçenek: dosyanın tamamını tarayıcınızda açın

Verilere çoğunlukla yalnızca bakmanız gerekiyorsa — birkaç kaydı kontrol etmek, bir müşteriyi bulmak, bir sütunda ne olduğunu görmek — ızgara sınırı olmayan bir görüntüleyici en hızlı yoldur.

Opener CSV görüntüleyici dosyayı tarayıcınızda okur ve asla yüklemez; dışa aktarım müşteri ya da finans verisi içerdiğinde bu önemlidir. Ayrıştırma arka planda çalışır ve yalnızca ekrandaki satırlar çizilir; bu sayede 200.000 satırlık bir dosya yaklaşık bir saniyede açılır, milyonlarca satırlık dosyalar da sıradan bir dizüstü bilgisayarda çalışır. Pratikteki sınır sabit bir satır sayısı değil, cihazınızın belleğidir.

Dosya açıldıktan sonra şunları yapabilirsiniz:

Sonuncusu işe yarar bir püf noktasıdır: 3 milyon satırı tek bir bölgeyi içeren 40.000 satıra kadar filtreleyin, bunları dışa aktarın; küçük dosya Excel’de hiçbir uyarı vermeden açılır. Görüntüleyici formül, özet tablo ya da grafik çalıştırmaz; bunlar için okumaya devam edin.

2. seçenek: Excel’in Veri Modeline yükleyin

Excel’in yeni masaüstü sürümleri bir CSV’yi doğrudan açmak yerine Power Query üzerinden (Veri sekmesindeki “Get Data” / “From Text/CSV” yolu) içe aktarabilir. Fark, verilerin nereye gittiğindedir.

Sonucu bir çalışma sayfasına yüklemek yerine yalnızca bağlantı olarak yüklemeyi ve Veri Modeline eklemeyi seçin. Veri Modeli verileri ızgaranın dışında sıkıştırılmış biçimde saklar; bu yüzden 1.048.576 satır sınırına bağlı değildir. Ardından bunun üzerine bir PivotTable (özet tablo) kurabilir ve 3 milyon satırın tamamını özetleyebilirsiniz — ay başına toplamlar, kategori başına sayılar gibi.

Bunun bedeli: satırlar arasında normal bir sayfadaki gibi kaydıramazsınız ve menü adları Excel sürümleri arasında değişir. Excel’de kalmanız gerektiğinde ve sonuç satır satır bir görünüm değil de bir özet olduğunda en iyi seçenek budur.

3. seçenek: komut satırında sayın, önizleyin ve bölün

macOS’te, Linux’ta ya da WSL’li Windows’ta birkaç standart komut, dosyayı hiçbir şeye yüklemeden “ne kadar büyük?” ve “içinde ne var?” sorularını saniyeler içinde yanıtlar:

wc -l export.csv              # satır sayısı
head -n 20 export.csv         # ilk 20 satır
head -n 100000 export.csv > sample.csv   # denemeler için daha küçük bir örnek

wc -l komutunun kayıtları değil, satırları saydığını unutmayın. Bazı değerler tırnak içinde satır sonu içeriyorsa (adresler ve yorumlar çoğu zaman içerir) satır sayısı kayıt sayısından fazla çıkar.

Dosyayı Excel’in açabileceği, her birinin kendi başlık satırı olan parçalara bölmek için:

tail -n +2 export.csv | split -l 1000000 - part_
for f in part_*; do
  { head -n 1 export.csv; cat "$f"; } > "$f.csv" && rm "$f"
done

Bölmek hızlı kontroller için iyidir, ama aynı tırnak içi satır sonu sorununa dikkat edin: split satırlara göre keser ve çok satırlı bir değeri ikiye bölebilir. Ayrıca hepsinin toplamına ihtiyacınız varsa dört ayrı çalışma kitabıyla uğraşmak zahmetlidir.

4. seçenek: pandas, SQLite ya da DuckDB ile analiz edin

Hesaplama, birleştirme ya da toplama yapacaksanız dürüst cevap gerçek bir veri aracıdır. Bunların hepsi sıradan bir dizüstü bilgisayarda on milyonlarca satırı kaldırır.

Python ve pandas dosyanın tamamını belleğe okur:

import pandas as pd

df = pd.read_csv("export.csv")
print(len(df))
print(df.groupby("region")["amount"].sum())

Dosya RAM’inizden büyükse parça parça okuyun:

total = 0
for chunk in pd.read_csv("export.csv", chunksize=500_000):
    total += chunk["amount"].sum()

DuckDB, bir CSV dosyasını önce içe aktarmadan doğrudan SQL ile sorgulayabilir:

SELECT region, COUNT(*) AS orders, SUM(amount) AS revenue
FROM 'export.csv'
GROUP BY region
ORDER BY revenue DESC;

SQLite birçok sistemde kuruludur ve verileri sorgulanabilir tek bir dosyada tutmak istediğinizde iyi çalışır:

sqlite3 sales.db
sqlite> .mode csv
sqlite> .import export.csv sales
sqlite> SELECT COUNT(*) FROM sales;

İyi bir iş akışı, ağır işi burada yapıp küçük bir sonucu — birkaç bin satırlık bir özeti — Excel ya da bir rapor için yeniden CSV’ye yazmaktır.

Sık sorulan sorular

Excel’in satır sınırını artırabilir miyim?

Hayır. 1.048.576 satır sınırı her çalışma sayfası için sabittir. Yalnızca etrafından dolaşabilirsiniz: verileri Veri Modeline yükleyin, dosyayı bölün ya da başka bir araç kullanın.

Dosyamın kesilip kesilmediğini nasıl anlarım?

Excel dosyayı açarken uyarır; verileri tam olarak 1.048.576. satırda biten bir sayfa da güçlü bir işarettir. Emin olmak için orijinal dosyanın boyutunu wc -l ile kontrol edin ya da toplam satır sayısını gösteren CSV görüntüleyicide açın.

Google Sheets ya da LibreOffice açar mı?

Genellikle hayır. Google Sheets tablo başına 10 milyon hücreyle sınırlıdır, LibreOffice Calc’ın da sayfa başına sabit bir azami satır sayısı vardır. İkisi de daha küçük dosyalar için iyidir, ama milyonlarca satırlık bir dışa aktarım için bir görüntüleyici, bir veritabanı ya da bir betik gerekir.

Büyük bir müşteri dökümünü tarayıcı tabanlı bir araçta açmak güvenli mi?

Araca bağlı. Birçok online dönüştürücü dosyanızı bir sunucuya yükler. Opener dosyayı tarayıcınızda yerel olarak okur ve hiçbir yere bir şey göndermez; veriler cihazınızda kalır.