İLERİ EXCEL BÜYÜK DOSYA PERFORMANSI

Pazartesi sabahı raporu açıyorsunuz: 1.040.000 satırlık satış dökümü. Excel pencerede beyazlaşıyor, "Yanıt vermiyor" yazısı çıkıyor, sekmenin altındaki ilerleme çubuğu 47 saniye sürüyor. Bir hücreyi düzenliyorsunuz — DÜŞEYARA formülleri zincirleme yeniden hesaplanıyor, klavye kilitleniyor. Dosya boyutu 180 MB, e-postaya sığmıyor, OneDrive senkronu sürekli kopuyor. Sorun makinenizde değil; sorun, Excel'in hücre tabanlı motorunu satır milyonlarıyla zorlamanızda. Power Pivot ve veri modeli devreye girdiğinde aynı dosya 12 MB'a iniyor ve formül anında sonuç veriyor.
1. Excel Neden Yavaşlar: Hücre Motorunun Sınırı
Klasik Excel, her hücreyi bağımsız bir nesne olarak tutar. 1 milyon satır × 15 sütun, 15 milyon bağımsız hücre demek. Her hücrenin biçimi, formülü, bağlantısı bellekte ayrı tutulur. Tek bir DÜŞEYARA formülü diğer 999.999 satıra kopyalandığında, hesap motoru her satırı tek tek tarar. İşlem karmaşıklığı O(n×m) olduğundan, satır sayısı iki katına çıkınca süre iki katı değil dört katı uzar.
Yavaşlığın gerçek kaynaklarını şu sırada bulursunuz:
- Volatile (uçucu) formüller: BUGÜN, ŞİMDİ, DOLAYLI, KAYDIR — her değişiklikte tüm sayfayı yeniden hesaplar.
- Tam sütun referansları: A:A yerine A2:A1048576 yazmak motoru gereksiz tarama yapmaya zorlar.
- Koşullu biçimlendirme katmanları: Her kural her hücre için ayrı değerlendirilir.
- Bağlantılı (linked) çalışma kitapları: Kapalı dosyalardan veri çekmek yeniden hesaplamayı yavaşlatır.
- Pivot tablo önbellekleri: Aynı kaynaktan oluşturulan birden çok pivot, önbelleği paylaşmazsa dosyayı şişirir.
2. Power Pivot ile Sütun Tabanlı Motora Geçiş
Power Pivot, Excel'in içine gömülü bir analiz motoru olan VertiPaq'ı kullanır. VertiPaq sütun tabanlı (columnar) saklama yapar ve veriyi sıkıştırır. Bir sütundaki tekrar eden değerleri sözlük (dictionary encoding) ile kodlar — 1 milyon satırda yalnızca 50 farklı şehir adı varsa, şehir sütunu 1 milyon kez yazılmaz, 50 kez yazılır ve referans verilir. Bu yüzden 180 MB'lık xlsx dosyası, veri modeline alındığında 10-15 MB'a iner.

Power Pivot'a veri aldıktan sonra DÜŞEYARA yazmazsınız — bunun yerine tablolar arasında ilişki kurarsınız. Satış tablosundaki MüşteriID, Müşteri tablosundaki MüşteriID ile bağlandığında, müşteri adına ulaşmak için formül çalışmaz; motor ilişkiyi takip eder. Bu, hücre formülünden bin kat daha hızlıdır çünkü ilişkiler hash tabanlı çalışır.
3. Power Query ile Veriyi Modele Doğru Şekilde Almak
Power Query, ham veriyi temizleyip Power Pivot'a beslemenin doğru yoludur. CSV ya da SQL bağlantısı kurarken şu kuralları uygulayın:
- Gereksiz sütunları en başta kaldırın — model belleğe yüklendikten sonra atmak geç kalır.
- Veri tiplerini açıkça belirtin: Metin yerine tarih, ondalıklı yerine tam sayı kullanmak sıkıştırma oranını artırır.
- Filtreleri kaynakta uygulayın — "Query folding" özelliği filtreyi SQL'e çevirir ve veriyi indirmeden eler.
- "Yalnızca Bağlantı Oluştur" seçeneği ile veriyi sayfaya değil, doğrudan veri modeline yükleyin.
- Tarih tablosunu el ile oluşturup işaretleyin — Time Intelligence DAX fonksiyonları bunu zorunlu kılar.
Bu adımları öğrenmek ve ileri seviye uygulamalar için ileri Excel eğitimi içeriklerinden yararlanabilirsiniz; özellikle veri modelleme ve DAX bölümleri büyük dosya performansı için kritik temeli kurar.
4. DAX Formülleri: SUMIFS Yerine CALCULATE
Klasik Excel'de SUMIFS ile milyonlarca satır arasında koşullu toplam alırken motor satır satır gezer. DAX'ta CALCULATE ve SUM birleşimi, sıkıştırılmış sütun üzerinde paralel çalışır. Örneğin:
Toplam Satış 2024 := CALCULATE( SUM(Satis[Tutar]), Tarih[Yil] = 2024 )
Bu ölçü (measure), pivot tabloya sürüklendiğinde hangi bağlamda olursa olsun (şehir, ürün, ay kırılımı) yeniden yazılmasına gerek kalmaz. Filtre bağlamı motor tarafından otomatik uygulanır. CALCULATE, FILTER, ALL, RELATED gibi DAX fonksiyonlarını anladığınızda, 50 sayfalık formül labirentini 5-6 ölçüye indirebilirsiniz. Söz dizimi ayrıntıları ve bağlam davranışı için resmi dokümantasyona başvurabilirsiniz.
5. Dosya Şişmesinin Sessiz Sebepleri
Bazı dosyalar mantıksız büyür. Açıp baktığınızda 20 bin satırlık tablo görürsünüz ama dosya 90 MB. Olası nedenler:
- Kullanılmayan stiller — eski şablonlardan miras kalan binlerce hücre stili.
- Boş gibi görünen ama biçimlendirilmiş 1.048.576. satıra kadar uzanan sütunlar.
- Gömülü nesneler (resim, grafik) ve eski pivot önbellekleri.
- Paylaşılan çalışma kitabı modunda kalan değişiklik geçmişi.
Çözüm: Ctrl+End ile gerçek son hücreyi görün, gereksizleri silin, "Dosya > Bilgi > Sorunları Denetle > Belge Müfettişi" ile temizleyin. xlsb (binary) formatına kaydetmek dosyayı %30-50 küçültür ve açılışı hızlandırır.
6. Hesaplama Modu ve Çok Çekirdek Kullanımı

Büyük modellerle çalışırken "Formüller > Hesaplama Seçenekleri > Manuel" moduna geçin. Her hücre değişiminde tüm sayfa yeniden hesaplanmaz; F9 ile siz tetiklersiniz. "Dosya > Seçenekler > Gelişmiş > Formüller" altında çok iş parçacıklı hesaplamayı açıp mevcut çekirdek sayısını kullanın. 8 çekirdekli bir makinede tek iş parçacığında dakikalarca süren hesaplama, sekiz çekirdeğe dağıldığında 8 saniyeye düşebilir.
7. Ne Zaman Excel'den Çıkmalı
Power Pivot 1.999.999.997 satıra kadar veri tutabilir ama RAM sizi sınırlar. 5-10 milyon satırın üzerine çıkıyorsanız ve veri günlük büyüyorsa, Excel artık doğru araç değildir. Power BI Desktop aynı motoru (VertiPaq) kullanır ama daha geniş bellek alanı, planlanmış yenileme ve paylaşım altyapısı sunar. SQL Server, PostgreSQL ya da bir veri ambarına geçiş kaçınılmaz hale gelir. Excel raporlayıcı olarak kalır, hesap motoru olmaktan çıkar.
1 milyon satırlık dosyanın donması bir donanım problemi değildir — yaklaşım problemidir. Hücre tabanlı düşünmekten sütun tabanlı düşünmeye geçtiğinizde aynı veri, aynı makinede saniyeler yerine milisaniyelerle yanıt verir. Power Pivot, Power Query ve DAX üçlüsü Excel'in içinde ücretsiz gelir; yalnızca açıp kullanmayı bilmek gerekir.
Sıkça Sorulan Sorular
Power Pivot'u kullanabilmek için ayrı bir lisans gerekir mi?
Hayır. Power Pivot, Microsoft 365 aboneliklerinde ve Office Professional Plus sürümlerinde dahili olarak gelir. Dosya menüsünden Seçenekler > Eklentiler > COM Eklentileri yolunu izleyip Microsoft Power Pivot for Excel kutusunu işaretlemeniz yeterlidir. Şeritte Power Pivot sekmesi göründüğünde kullanıma hazırdır.
1 milyon satırı geçen dosyalarda Excel'in 1.048.576 satır sınırı sorun olur mu?
Sayfa üzerinde olur ama veri modelinde olmaz. Power Pivot'a Power Query ile veri aldığınızda sayfa sınırını aşarsınız çünkü veri Excel hücrelerine değil, doğrudan VertiPaq motoruna yüklenir. Pratikte 100 milyon satıra kadar çalışan modeller mevcuttur; sınır bellektir.
xlsb formatı xlsx'e göre neden daha hızlı açılır?
xlsx aslında sıkıştırılmış bir XML klasörüdür ve açılırken her dosya ayrıştırılır. xlsb ikili (binary) formatta saklanır, Excel doğrudan okur. Dosya boyutu %30-50 küçülür, açılış ve kaydetme süresi belirgin azalır. Tek dezavantajı bazı üçüncü taraf araçların xlsb okuyamamasıdır.
DÜŞEYARA yerine XLOOKUP kullanmak performansı artırır mı?
Küçük tablolarda fark yok denecek kadar azdır. Büyük tablolarda XLOOKUP, ikili arama yapabildiği için sıralı veriyle DÜŞEYARA'dan hızlıdır. Ama gerçek performans sıçraması, tekil formül seçiminden değil, formül kullanmayı bırakıp veri modeli ilişkilerine geçmekten gelir.
Manuel hesaplama moduna geçince hangi riskler ortaya çıkar?
F9 ile yeniden hesaplamayı unutursanız ekrandaki değerler güncel veriyi yansıtmaz; rapor paylaşırken yanlış sonuç görülebilir. Excel sağ alt köşede Hesapla uyarısı gösterir, oraya dikkat etmek gerekir. Büyük modellerle çalışırken yine de manuel mod tercih edilir, sadece kaydetmeden önce F9 alışkanlığı kazanılmalıdır.
Power Query'de query folding'in çalıştığını nasıl anlarım?
Power Query Düzenleyici'de uygulanan adımlardan herhangi birine sağ tıklayıp Native Query seçeneğinin aktif olup olmadığına bakın. Aktifse adım kaynağa SQL olarak gönderiliyordur, yani folding çalışıyordur. Pasif görünüyorsa ondan sonraki adımlar yerel olarak çalışır ve büyük veride yavaşlar.
Birden fazla pivot tablo varken dosya neden hızla büyür?
Her pivot ayrı bir önbellek (pivot cache) tutarsa veri belleğe ve dosyaya birkaç kez yazılır. Pivot tabloları aynı kaynaktan oluşturup PivotTable Seçenekleri > Veri sekmesinden önbelleği paylaşmaya zorladığınızda dosya boyutu önemli ölçüde küçülür. Veri modeli üzerinden çalışınca bu sorun zaten ortadan kalkar.
Veri modeli üzerinde DAX ölçüleri ile hesaplanan sütunlar arasında fark nedir?
Hesaplanan sütun, veri yüklenirken satır satır hesaplanır ve diske yazılır — bellek kullanır. Ölçü (measure) ise sorgu sırasında, sadece görüntülenen bağlamda hesaplanır ve bellekte iz bırakmaz. Pivot'ta toplamlar, yüzdeler, yıllık değişim gibi metrikler için ölçü tercih edilir; sıralama ya da filtreleme için kullanılacak değerler hesaplanan sütun olur.


