BÜYÜK EXCEL DOSYALARINDA PERFORMANS: FORMÜL, PİVOT VE MODEL OPTİMİZASYONU
Excel dosyanız büyüdükçe “çalışıyor ama ağır” hissi çok tanıdık hale gelir: bir hücreye veri yazarsınız, ekran donuklaşır; pivot yenileme dakikalar sürer; kaydetme ve açma işlemleri sinir bozucu bir ritüele dönüşür. Oysa çoğu performans problemi, doğru noktalara dokunarak hızlıca iyileştirilebilir.
Bu makale, büyük Excel dosyalarında performans sorunlarını üç eksende ele alıyor: formül hesaplama maliyeti, pivot tabloların yenileme/önbellek davranışı ve veri modeli (Power Pivot) ile Power Query katmanının etkisi. Amaç; dosyayı “daha küçük” değil, “daha akıllı” hale getirmek.
İlerledikçe hem teşhis hem de uygulanabilir optimizasyon teknikleri göreceksiniz. Anlatılanların çoğu, bir raporu sıfırdan kurmak yerine mevcut dosyanın tepkisini iyileştirmek için tasarlandı; yani operasyonel bir “hızlandırma rehberi” gibi düşünün.
Performans Teşhisi: Sorun Nerede Başlıyor?
İlk adım, yavaşlığın kaynağını ayırmaktır. Büyük dosyalarda performans genellikle üç noktada bozulur: hesaplama (formüller), veri hazırlama (Power Query) ve raporlama/özetleme (pivot + veri modeli). Her biri farklı bir darboğaz yaratır.
Hesaplama Süresini Okumak
Formüller yavaşsa belirtiler nettir: hücreye veri girince gecikme, kopyala-yapıştırda takılma, filtreleme sonrası uzun “hesaplanıyor” bekleyişi. Özellikle çok sayıda satırda aynı karmaşık formül varsa, hesaplama zinciri kolayca şişer.
Yenileme ve Kaydetme Gecikmelerini Ayırmak
Pivot yenileme uzun sürüyorsa, pivot önbelleği, kaynak aralık yapısı, ek ölçüler ve filtreleme kombinasyonları incelenmelidir. Dosya kaydetme/açma yavaşsa, gereksiz biçimlendirme, çok sayıda nesne, büyük aralıklar ve şişkin veri modeli daha olası nedenlerdir.
Pratik bir yaklaşım: önce dosyayı ikiye bölün. “Veri girişi ve hesaplama” ile “raporlama” aynı sayfada iç içeyse, daha en baştan gereksiz yeniden hesaplama tetiklenir. Yapısal ayrım, optimize etmenin en ucuz yoludur.

Formül Optimizasyonu: Daha Az, Daha Akıllı Hesaplama
Formül optimizasyonu, en hızlı kazanım sağlayan alandır çünkü hesaplama her veri değişiminde tekrarlar. Hedef; aynı sonucu daha düşük maliyetle üretmek ve gereksiz yeniden hesaplamayı azaltmaktır.
Volatile Fonksiyonları Azaltın
RAND, NOW, TODAY, OFFSET, INDIRECT gibi volatile fonksiyonlar, çalışma kitabında küçük bir değişiklik olsa bile geniş ölçekte yeniden hesaplamayı tetikleyebilir. Bu fonksiyonlar gerekli değilse kaldırın; gerekiyorsa daha sınırlı bir alanda kullanın veya sonuçlarını sabitleyin.
Aralık Yerine Tablo Kullanın
“A:A” gibi tüm sütunu referanslamak, büyük dosyada maliyeti yükseltir. Bunun yerine yapılandırılmış tablo (Excel Table) kullanın. Tablo, dinamik büyürken referansları kontrollü tutar; ayrıca pivot ve Power Query için daha temiz bir kaynak oluşturur.
Tekrarlayan Alt Hesapları Bir Kez Üretin
Binlerce satırda aynı ara hesabı tekrar tekrar yapıyorsanız, LET ile ara değerleri tanımlayın ya da yardımcı sütunla maliyeti dağıtın. Amaç, “aynı şeyi defalarca hesaplamak” yerine “bir kez hesaplayıp kullanmak” olmalı.
=LET(
k; [@MüşteriID];
tarih; [@Tarih];
toplam; SUMIFS(Satışlar[Tutar]; Satışlar[MüşteriID]; k; Satışlar[Tarih]; "<="&tarih);
sonDurum; XLOOKUP(k; Müşteriler[ID]; Müşteriler[Durum]; "Bilinmiyor");
IF(sonDurum="Aktif"; toplam; 0)
)Bu örnekte, aynı müşteriye ait toplamı ve durumu tek seferde toplayıp karar veriyoruz. Büyük veri setlerinde LET, “okunabilirliği” artırırken hesaplamayı da daha yönetilebilir hale getirir.
Hesaplama Zinciri ve Dosya Yapısı: Yeniden Hesaplamayı Kontrol Etmek
Excel’in performansı yalnızca formül sayısına değil, formüllerin birbirine bağımlılığına da bağlıdır. Bağımlılık zinciri uzadıkça, küçük bir hücre değişimi bile zincirleme yeniden hesaplama yaratır.
Manuel Hesaplama Modunu Stratejik Kullanın
Çok büyük dosyalarda, veri yüklemesi ve düzenleme aşamasında hesaplamayı geçici olarak manuel yapıp, yalnızca kritik anlarda “hesapla” demek ciddi hız kazandırır. Burada kritik nokta, manuel modda unutup yanlış rapor üretmemektir; bu yüzden rapor sayfalarında uyarı alanı bulundurmak iyi bir pratiktir.
Şartlı Biçimlendirme ve Stil Şişkinliği
Geniş aralığa yayılmış şartlı biçimlendirme kuralları, özellikle kaydırma ve filtrelemede performansı düşürür. Kuralları daraltın, benzer kuralları birleştirin ve gereksiz “tüm sütun” uygulamalarını kaldırın. Ayrıca çok sayıda benzersiz stil, dosyanın kaydetme/açma süresini şişirebilir.
Dosya yapısında “ham veri”, “dönüşüm”, “model” ve “rapor” katmanlarını ayırmak; hem bakım kolaylığı hem de performans için güçlü bir temel sağlar. Bu ayrım, yeniden hesaplamanın gereksiz sayfaları etkilemesini de önler.
Pivot Tablo Performansı: Önbellek, Kaynak ve Tasarım
Pivot tablo performansı, veri kaynağının düzeninden, pivot önbelleğinin yönetiminden ve rapor tasarımından etkilenir. Büyük dosyalarda pivotlar “hızlı özet” olmaktan çıkıp “yenilemesi ağır rapor motoru”na dönüşebilir.
Kaynak Aralığı Doğru Tanımlayın
Pivotun kaynağı, dağınık aralıklar yerine tek bir tablo olmalı. Boş satırlar, karışık veri türleri ve gereksiz sütunlar pivot önbelleğini büyütür. Kaynağı sadeleştirmek, hem bellek hem süre kazandırır.
Önbellek Paylaşımı ve Pivot Kopyaları
Aynı kaynakla çalışan birden fazla pivotunuz varsa, mümkün olduğunca aynı önbelleği paylaşmalarını sağlayın. Bazı durumlarda pivot kopyalama veya farklı kaynak tanımları, gereksiz yere çoklu önbellek oluşturur. Bu da dosya boyutu ve yenileme süresini artırır.
Gereksiz Hesap Alanlarını ve Ayrıntıyı Azaltın
Pivot içindeki hesaplanan alanlar, özellikle geniş veri setlerinde pahalıdır. Mümkünse hesaplamayı veri modelinde ölçü (measure) olarak tanımlayın veya Power Query’de ön hesap yapın. Ayrıca “ayrıntıyı göster” (drill-down) davranışı, kullanıcı tarafında kopya veri üretip sayfayı şişirebilir; kullanımını sınırlandırın.

Veri Modeli Optimizasyonu: Power Pivot ile Daha Az Bellek, Daha Hızlı Analiz
Veri modeli (Power Pivot), doğru kurulduğunda büyük Excel dosyaları için en sağlam performans yaklaşımıdır. Çünkü sütun tabanlı sıkıştırma ve ilişkisel modelleme, klasik sayfa formüllerine göre çok daha ölçeklenebilir sonuç verir.
Yıldız Şeması Mantığıyla Modelleyin
Tek bir dev tablo yerine, bir “olgu” (satış gibi) tablosu ve etrafında boyut (müşteri, ürün, tarih) tabloları ile yıldız şeması kurun. Bu yapı, ilişki yönetimini basitleştirir ve ölçü hesaplarını hızlandırır.
Veri Türleri ve Kardinaliteyi İyileştirin
Metin yerine uygun olduğunda sayısal anahtarlar kullanın; gereksiz uzun metin sütunlarını modele almayın. Kardinalitesi yüksek sütunlar (çok farklı değer içeren) sıkıştırmayı zorlaştırır ve modeli büyütür. Bu yüzden kategori alanlarını sınırlamak, tekrar eden metinleri boyut tablosuna taşımak önemli bir optimizasyondur.
DAX Ölçülerini Daha Ekonomik Yazın
DAX’te satır bağlamı ve filtre bağlamı farkı, performansın kalbidir. Aynı mantığı farklı fonksiyonlarla yazdığınızda süre dramatik biçimde değişebilir. Özellikle iteratörlerin (SUMX gibi) gereksiz kullanımı, büyük veri setlerinde maliyeti yükseltir. Önce basit toplama ve filtre fonksiyonlarıyla çözmeyi deneyin; iteratöre son çare olarak gidin.
Power Query Optimizasyonu: Dönüşümleri Doğru Katmanda Yapın
Power Query, veri hazırlama tarafında güçlüdür; ama dönüşümler “yanlış sırada” yapılırsa yenileme süresini gereksiz uzatır. Burada hedef; gereksiz adımları azaltmak, veri hacmini erkenden küçültmek ve mümkünse kaynağa doğru itmek (sorgu katlama) olmalıdır.
Veriyi Erken Filtreleyin ve Sütunları Atın
En iyi performans kuralı: Kullanmayacağınız sütunu en başta kaldırın, raporda ihtiyacınız olmayan satırları mümkün olduğunca erken filtreleyin. Böylece sonraki adımlar daha küçük veri üzerinde çalışır.
Birleştirme ve Gruplama Adımlarını Dikkatli Kullanın
Join/merge ve group by adımları pahalı olabilir. Özellikle büyük tabloları birleştirirken anahtar alanların veri türlerinin uyumlu olması ve gereksiz sütunların önceden atılması kritiktir. Ayrıca mümkünse kaynağın (SQL gibi) kendi üzerinde birleştirme yapmak, Excel içinde yapmaktan daha hızlı sonuç verebilir.
let
Kaynak = Excel.CurrentWorkbook(){[Name="Satışlar"]}[Content],
Tipler = Table.TransformColumnTypes(Kaynak,{{"Tarih", type date}, {"Tutar", type number}, {"MüşteriID", Int64.Type}}),
GerekliSutunlar = Table.SelectColumns(Tipler,{"Tarih","Tutar","MüşteriID","ÜrünID"}),
Son12Ay = Table.SelectRows(GerekliSutunlar, each [Tarih] >= Date.AddMonths(Date.From(DateTime.LocalNow()), -12)),
Ozet = Table.Group(Son12Ay, {"MüşteriID"}, {{"ToplamTutar", each List.Sum([Tutar]), type number}})
in
OzetBu örnek, önce türleri düzeltip sonra sütunları azaltıyor ve filtreyi erkene alıyor. Ardından en sonda özetliyor. Büyük veriyle çalışırken bu sıralama, yenileme süresini belirgin şekilde düşürür.
Dosya Boyutunu ve Bellek Kullanımını Azaltma
Performans yalnızca süre değil, bellek tüketimi ve dosya boyutuyla da doğrudan ilişkilidir. Bellek baskısı arttıkça Excel daha sık “beklenmedik” donmalar yaşatır ve bazı işlemler (özellikle pivot yenileme) daha da uzar.
Gereksiz Nesneleri ve Şişkin Aralıkları Temizleyin
Kopyalanmış ama kullanılmayan sayfalar, büyük şekiller, gizli ama ağır alanlar ve “son kullanılan hücre” problemleri (gereksiz biçimlendirme nedeniyle) dosyayı büyütür. Düzenli temizlik, kaydetme/açma hızına doğrudan etki eder.
Görünmeyen Maliyetler: Yinelenen Metinler ve Uzun Açıklamalar
Binlerce satırda aynı metni tekrar tekrar tutmak, hem sayfa hem model tarafında maliyet yaratır. Bu tip alanları mümkünse boyut tablosuna taşıyın veya kod/anahtar yaklaşımına geçin. Bu, sıkıştırmayı da iyileştirir.
Bu bölümdeki kazanımlar genellikle “bir seferlik bakım” ile gelir; sonrasında dosyanın günlük kullanımı daha akıcı hale döner.

Uygulanabilir Kontrol Listesi: 30 Dakikada İyileştirme
Elinizde mevcut bir dosya varsa, aşağıdaki kontrol listesiyle hızlı bir iyileştirme turu yapabilirsiniz. Bu adımlar, hem formül hem pivot hem de model katmanında “en sık görülen” yavaşlık kaynaklarını hedefler.
- Formüllerde tüm sütun referanslarını daraltın, tablo referansına geçin.
- Volatile fonksiyonları tespit edip alternatife taşıyın veya sonuçlarını sabitleyin.
- Tekrarlayan ara hesapları LET veya yardımcı sütunla tekilleştirin.
- Pivot kaynaklarını tek tabloya indirin; gereksiz sütunları kaynaktan çıkarın.
- Pivotlarda hesaplanan alan yerine ölçü yaklaşımını tercih edin.
- Power Query’de sütun kaldırma ve filtrelemeyi ilk adımlara çekin.
- Veri modelinde yıldız şeması kurgusu ve doğru veri türleriyle sıkıştırmayı iyileştirin.
Bu listeyi uygularken, her değişiklikten sonra dosyanın davranışını gözlemleyin. Bazı dosyalarda tek bir “yanlış aralık” düzeltmesi bile büyük hız artışı sağlar; bazılarında ise küçük kazanımların toplamı etkili olur.
İleri Seviyede İyileştirme: Doğru Mimari, Sürdürülebilir Hız
Kalıcı performans için, rapor mimarisini ölçeklenebilir hale getirmek gerekir. Ham veri sayfalarda büyümeye devam edecekse, formüllerle “sonsuz satır” yönetmek yerine veri modeline yaslanmak daha doğru bir yoldur. Rapor sayfası minimal, model güçlü, dönüşüm kontrollü olmalıdır.
Bir sonraki adım olarak, dosyanızdaki yavaşlığın kök nedenine göre mini bir yol haritası çıkarın: formül ağırlıklıysa hesaplama zincirini kısaltın; pivot ağırlıklıysa kaynak ve önbelleği sadeleştirin; model büyüdükçe veri türleri ve şema tasarımına odaklanın. Bu yaklaşım, hem bugünkü performansı hem de yarın eklenecek yeni verilerin etkisini yönetilebilir kılar.
Eğer bu konuları uygulamalı örneklerle derinleştirmek isterseniz, İleri Excel eğitimi içeriğinde büyük dosya yönetimi, Power Query optimizasyonu, veri modeli tasarımı ve ölçü mantığına yönelik pratik senaryolar bulabilirsiniz.
Özet: Büyük dosyalarda hız; “daha güçlü bilgisayar” kadar, doğru formül stratejisi, pivot tasarımı ve veri modeli optimizasyonu ile ilgilidir. En iyi sonuçlar, bu üç katmanı birlikte ele aldığınızda gelir.


