Dinamik Dizi Fonksiyonları

Excel "Performans" Masterclass (Bölüm 2) Doğru Formül ile Hesaplama Hızını Kat Kat Artır

Yayınlanma Tarihi: 30 November 2025

Excel "Performans" Masterclass (Bölüm 2) Doğru Formül ile Hesaplama Hızını Kat Kat Artır

Selam !

 

Bu serinin ilk yazısında, Excel dosyanı şişiren gizli yapısal kalıntıları. Dosyan artık daha hafif. Ama ne zaman ki bir hücreye veri giriyorsun, Excel i düşünüyor, bekliyor sonra yazıyor. İşte bu noktada suçlu problem yazılan, kullanılan formüllerde olabilir.

Bu bölümde, dosyanın hesaplama hızını etkileyen formül hatalarını odaklanıyoruz.

Haydi Başlayalım.

 

 Hesaplama Motorunun Mantığı

Formül optimizasyonunun kritik noktası şu: Excel, her formülü aynı hızda hesaplamaz. Bazı formüller (değişken), sayfadaki küçük bir değişikliği bile tüm dosyanın yeniden hesaplanmasını gerektirirken, bazıları sadece ilgili hücreleri günceller. Hızlanmak için, bu ayrımı bilmen gerekiyor.

Formül optimizasyonunun kritik noktası şu: Excel, her formülü aynı hızda hesaplamaz. Burada asıl mesele, bazı formüllerin "değişken" (volatile) olmasıdır; yani sayfadaki en ufak bir değişiklikte bile, isterse sadece tek bir hücrede olsun, bu formüller tüm dosyanın baştan sona yeniden hesaplanmasına sebep olur. Bu da özellikle büyük ve karmaşık dosyalarda ciddi bir yavaşlamaya yol açar.

Örneğin, DOLAYLI (INDIRECT) veya KAYDIR (OFFSET) gibi fonksiyonlar, her hücre değişikliğinde tetiklenerek dosyanın tamamını tekrar tekrar işler. Oysa bazı formüller (mesela İNDİS/KAÇINCI ya da ÇAPRAZARA (XLOOKUP)), sadece kendileriyle ilgili hücreleri veya aralıkları günceller, dosyanın geri kalanına dokunmaz.

Hızlanmak ve verimli bir çalışma ortamı oluşturmak için, hangi formüllerin tüm dosyayı etkilediğini, hangilerinin ise sadece ilgili hücrelerle sınırlı kaldığını bilmek şart. Bu ayrımı anlamak, hem dosya boyutunu makul seviyede tutmak hem de hesaplama süresini minimuma indirmek için elzem.

 

Değişken (Volatile) Formülleri Yolla Gitsin

 Excel'in hesaplama motorunu en çok yoran formüller, ve yukarıda anlatıldığı gibi, her an değişebilen ve her hücre değişikliğinde tüm dosyayı yeniden hesaplatan formüller. Olabildiğince uzak durmak lazım bunlardan, bu arkadaşlar tam bir performans düşmanı.

 

Volatile Formüller (Kaçın!)

Alternatifler
(Tercih Et!)

Neden Hız Katkısı Yapar?

DOLAYLI (INDIRECT)

İNDİS/KAÇINCI (INDEX/MATCH) veya ARA (XLOOKUP)

Sadece belirtilen hücreleri/aralıkları günceller, tüm dosyayı taramaz.

KAYDIR (OFFSET)

İNDİS/KAÇINCI (INDEX/MATCH)

Kaydır formülü her an değişebileceği için sürekli kendini kontrol eder.

ŞİMDİ (NOW) / BUGÜN (TODAY)

Statik tarih/saat girişi yap veya sadece raporlama sayfasında kullan.

Her saniye/dakika otomatik güncelleme, dosyanın sürekli uyanık kalmasına neden olur.

 

Binlerce satırlık bir veri setinde, örneğin "Ürünler" tablosunda bir ürünün fiyatını bulmak için hem DOLAYLI hem de İNDİS/KAÇINCI formüllerini aşağıdaki gibi kullanabilirsin:

DOLAYLI ile:

=DOLAYLI("B" & KAÇINCI("ArananÜrün";A2:A1000;0) + 1)

Bu formülde "ArananÜrün" değerinin A sütununda kaçıncı sırada olduğunu bulur, ardından B sütununda aynı satırdaki değeri getirir.

İNDİS/KAÇINCI ile:

=İNDİS(B2:B1000; KAÇINCI("ArananÜrün";A2:A1000;0))

Burada ise "ArananÜrün" değerinin A sütununda kaçıncı satırda olduğunu bulur ve B sütunundaki karşılık gelen değeri getirir.

 

Tam Sütun ve Satır Referanslarından Uzak Dur

Ya bu benimde alışkanlığım aslında, hani uzak dur diyorum ama şimdi bir formül yaza desen muhtemelen tam sütun seçerek yazarım. Ama sen bana bakma, performans anlamındaki yanlışların en büyüklerinden bir tanesi bu.

 =TOPLA(A:A) veya =DÜŞEYARA(A1;B:Z;...).

Excel'in modern versiyonlarında her sayfada 1 milyondan fazla satır vardır. Sen sadece 500 satır kullanıyor olsan bile bile, A:A referansıyla Excel'i o 1 milyon satırın tamamını kontrol etmeye zorlarsın.

Çözüm :

Yalnızca ihtiyacın olan aralığı belirt :

=TOPLA(A1:A500)

Dinamik Çözüm:

Verini Tablo olarak biçimlendir (Ctrl+T). Tablo adını kullanarak dinamik aralık referansları ver:

 =TOPLA(Tablo1[Miktar])

Özellikle  arama (VLOOKUP, XLOOKUP) ve toplama (SUMIFS, COUNTIFS) formüllerinde bu kurala uymak, hesaplama süresini inanılmaz derecede kısaltıyor.

 

Çok Fonksiyonlu Formüller Yerine Basitleri Kullan (Sadelik iyidir)

Excel'in en hızlı arama fonksiyonları basit mantıkla çalışanlardır. Şimdi akla ilk önce DÜŞEYARA (VLOOKUP) fonksiyonu oluyor. Evet çat diye yazıyoruz, ama hesaplama oldukça yavaş çalışıyor. (yapılan testlerin yalancısıyım) Temel de bir sebebi var aslında: DÜŞEYARA (VLOOKUP) fonksiyonu her zaman arama aralığının tamamını tarar.

Çözüm :

  • Daha Hızlı Arama İkilisi: İNDİS/KAÇINCI (INDEX/MATCH) ikilisi, alameti-i farikası tam olarak ihtiyacın olan hücreyi bulmak olduğu için, DÜŞEYARA'ya göre genellikle çok daha hızlıdır. Çünkü sadece arama sütununu ve sonuç sütununu referans alır, aradaki diğer sütunları yok sayar. (Burada 365 kullanmadığını varsaydım eğer 365 kullanıyorsan tabiki ÇAPRAZARA (XLOOKUP)

 

Fonksiyon

Hesaplama Maliyeti

Öneri

DÜŞEYARA (VLOOKUP)

Yüksek

Tüm arama aralığını tarar.

İNDİS/KAÇINCI

Düşük

Sadece arama ve sonuç sütunlarını tarar.

XLOOKUP (Yeni Versiyon)

En Düşük

En son algoritmayı kullanır, en hızlıdır.

 

 VLOOKUP kullanmaktan vazgeçip İNDİS/KAÇINCI ya da XLOOKUP'a geçerek dosyanı daha da hızlandırabilirsin.

 

Hesaplama Modunu Yönetmeyi Öğren

Çok büyük, karmaşık formül setleri içeren dosyalarla çalışırken, her küçük veri girişinde (bir hücreye sayı yazmak bile) dosyanın saniyelerce beklemesine yol açıyor. Çünkü Excel burada “acaba bundan etkilenen başka hücreler var mı acaba” diye bakıyor her defasında.

Çözüm :

  • Formüller sekmesine git.
  • Hesaplama Seçenekleri (Calculation Options) butonuna tıkla.
  • Modu Otomatik yerine Elle (Manual) olarak ayarla.

Dikkat! Elle moduna geçtiğinde, formüllerin yeni değerleri hemen göstermez. Formüllerin sonuçlarını görmek istediğin zaman F9 tuşuna basarak tüm dosyayı anında yeniden hesaplatabilirsin. Bu, büyük dosyalar üzerinde çalışırken sana kontrol ve hız kazandırır.

 

Dizi ve Eski Toplama Formüllerini Sınırla

TOPLA.ÇARPIM (SUMPRODUCT) veya ETOPLA (SUMIF) yerine Ctrl+Shift+Enter ile girilen geleneksel Dizi Formülleri, her bir hücreyi tek tek kontrol ettiği için hesaplama süresini uzzatırlar.

Çözüm :

Koşullu toplama ve sayma işlemlerinde, modern ve daha optimize edilmiş fonksiyonları kullan:

ETOPLA (SUMIF)

ÇOKEĞERORTALAMA (AVERAGEIFS)

ÇOKEĞERSAY (COUNTIFS)

Excel'i yavaşlatan etkenlerin, genellikle gözden kaçırdığımız formül yazım şekillerimiz olduğunu gördün. DOLAYLI ve tam sütun referanslarından kaçınarak, doğru arama fonksiyonlarını tercih ederek ve hesaplama modunu akıllıca yöneterek, dosyanın performansını formül düzeyinde artırabilirsin. Diğer seçenekler ilk yazıda.

 

Kolay gelsin.

 

 

0 Yorum

Bu yazıya henüz yorum yapılmamış.

Yorum Yap