İçeriğe geç
parazade
İleri seviyesiDers 5 / 10

İleri Ders 5: DOLAYLI ve KAYDIR ile Dinamik Aralık

Yayın: · Son güncelleme:

Bu derste

Bu derste KAYDIR ile veri eklendikçe kendiliğinden uzayan aralıklar kurar, son üç ayın toplamını sabit adres yazmadan bulur, DOLAYLI ile hücrelerdeki metinden aralık üretirsiniz. İki fonksiyonun dosyayı yavaşlatan tarafını da öğrenirsiniz.

Ders sonunda şunları yapabileceksiniz

  • KAYDIR'ın başlangıç hücresi, satır/sütun kaydırma ve yükseklik argümanlarını okumak
  • BAĞ_DEĞ_SAY ile dolu satır sayısını bulup aralığın boyunu belirlemek
  • Son N ayın toplamını sabit adres yazmadan hesaplamak
  • DOLAYLI ile metin olarak kurulan bir adresi gerçek aralığa çevirmek
  • Değişken (volatile) fonksiyonların performans etkisini bilmek
İçindekiler
  1. Dinamik aralık neden gerekir?
  2. KAYDIR'ın argümanları
  3. Son üç ayın toplamı
  4. DOLAYLI ile metinden adres
  5. Sütun seçmek için kaydırma
  6. Dinamik aralığı adlandırmak
  7. Performans ve bakım uyarısı
  8. Sıradaki adım

Dinamik aralık neden gerekir?

Dinamik aralık, boyu ya da yeri veriye göre değişen aralıktır. Her ay yeni satış rakamı eklediğiniz bir tabloda "son üç ayın toplamı" formülü sabit B7:B9 yazılırsa eylül verisi girildiğinde yanlış ayları toplar. KAYDIR ve DOLAYLI, aralığı bir hesaplamaya göre kurduğu için bu güncellemeyi sizin yerinize yapar.

Bu dersteki tabloda ocaktan ağustosa kadar sekiz ayın satışı var. Eylül-aralık satırları henüz boş.

KAYDIR'ın argümanları

KAYDIR, bir başlangıç hücresinden belirli sayıda satır ve sütun uzaklaşıp istenen boyutta bir aralık döndürür: =KAYDIR(başv; satırlar; sütunlar; [yükseklik]; [genişlik]). KAYDIR(B1;6;0;3;1) B1'den 6 satır aşağı iner, B7'den başlar ve 3 satır yüksekliğinde, 1 sütun genişliğinde bir aralık verir: B7:B9.

Fonksiyon tek başına bir aralık döndürdüğü için genellikle TOPLA, ORTALAMA gibi bir fonksiyonun içinde kullanılır. Satır argümanı negatif olabilir, bu durumda yukarı doğru kayar.

Son üç ayın toplamı

Son üç ayı bulmak için önce kaç ayın dolu olduğunu bilmeniz gerekir. BAĞ_DEĞ_SAY(B2:B13) dolu satış hücrelerini sayar ve 8 döndürür. Başlık satırı B1 olduğuna göre son ay B9'dadır ve son üç ay B7'den başlar.

Bu hesap tek formüle şöyle sığar: =TOPLA(KAYDIR(B1;BAĞ_DEĞ_SAY(B2:B13)-2;0;3;1)). 8-2 = 6 satır kaydırma B7'ye denk gelir ve haziran, temmuz, ağustos toplanır: 158.000 TL. Eylül rakamını B10'a yazdığınızda sayım 9 olur ve formül temmuz-eylül aralığına kendiliğinden geçer.

Aynı yöntemle tüm dolu ayların ortalaması da alınır. =ORTALAMA(KAYDIR(B2;0;0;BAĞ_DEĞ_SAY(B2:B13);1)) yüksekliği dolu ay sayısına eşitler ve sekiz ayın ortalaması olan 47.812,5 TL'yi verir.

DOLAYLI ile metinden adres

DOLAYLI, metin olarak yazılmış bir adresi gerçek başvuruya çevirir. =DOLAYLI("B5") B5'teki değeri getirir. Gücü, adresi başka hücrelerden birleştirerek kurabilmenizden gelir.

D2'de 2, E2'de 4 yazıyorsa =TOPLA(DOLAYLI("B"&D2&":B"&E2)) önce "B2:B4" metnini oluşturur, sonra bu aralığı toplar. Ocak-mart toplamı 125.700 TL olur. Kullanıcı yalnızca satır numaralarını değiştirerek istediği dönemi seçer. Sayfa adını bir hücreden okuyup DOLAYLI("'"&A1&"'!B2") biçiminde farklı sayfalara bakan özet tablolar da aynı mantıkla kurulur.

Sütun seçmek için kaydırma

KAYDIR yalnızca satırda değil sütunda da kayar. Bölgelerin satırlarda, ayların B1:M1 başlıklarında olduğu bir tabloda seçilen ayın sütununu toplamak için sütunlar argümanını KAÇINCI ile hesaplarsınız. =TOPLA(KAYDIR(A2;0;KAÇINCI("Mart";B1:M1;0);5;1)) A2'den Mart sütununa kadar sağa kayar ve beş bölgenin mart satışını toplar.

Ay adını bir hücreden okursanız kullanıcı açılır listeden ay seçerek toplamı değiştirebilir. Aynı soruyu İNDİS ile =TOPLA(İNDİS(B2:M6;0;KAÇINCI("Mart";B1:M1;0))) biçiminde de sorabilirsiniz; bu yazım değişken değildir.

Dinamik aralığı adlandırmak

KAYDIR formülünü her hücreye ayrı ayrı yazmak yerine bir ada bağlayabilirsiniz. Formüller sekmesinden Ad Yöneticisi'ni açıp Yeni'ye tıklayın. Ad kutusuna SatisVerisi yazın, Başvuru yeri kutusuna =KAYDIR($B$2;0;0;BAĞ_DEĞ_SAY($B$2:$B$13);1) girin ve Tamam'a basın.

Artık =TOPLA(SatisVerisi) ya da =ORTALAMA(SatisVerisi) yazdığınızda Excel o anki dolu aralığı kullanır. Aynı ad bir grafiğin seri değerlerinde ya da Veri Doğrulama listesinin kaynağında da işe yarar. Eylül rakamı girildiğinde grafik yeni ayı kendiliğinden gösterir.

Bu yöntem, formülü tek bir yerde tuttuğu için bakımı da kolaylaştırır. Aralığın başlangıcını değiştirmeniz gerektiğinde yalnızca tanımı güncellersiniz. Adı kullanan bütün hücreler yeni tanıma göre hesaplanır.

Yüksekliği BAĞ_DEĞ_SAY'a bağladığınızda arada boş hücre bırakmamaya dikkat edin. Haziranı boş bırakıp temmuzu girerseniz sayım yedi olur ve aralık temmuzu dışarıda bırakır.

Performans ve bakım uyarısı

KAYDIR ve DOLAYLI değişken (volatile) fonksiyonlardır. Çalışma kitabında herhangi bir hücre değiştiğinde, bağlı olmasalar bile yeniden hesaplanırlar. Birkaç formülde fark edilmez, ama binlerce satıra kopyalandığında dosya belirgin biçimde yavaşlar.

DOLAYLI'nın ikinci bir zayıflığı vardır: adres metin olduğu için satır ya da sütun eklediğinizde güncellenmez. "B2:B4" metni, B sütununun soluna yeni bir sütun eklendiğinde hâlâ B'yi gösterir. Basit "son N satır" ihtiyaçlarında İNDİS ile kurulan B2:İNDİS(B2:B13;BAĞ_DEĞ_SAY(B2:B13)) aralığı değişken değildir ve daha hafiftir.

Sıradaki adım

Alıştırmada farklı N değerleri için son N ayın toplamını KAYDIR ile hesaplayacaksınız. Formülü yazdıktan sonra B10'a bir eylül rakamı girip sonuçların nasıl değiştiğini izleyin. Aynı hesabı İNDİS ile kurulan bir aralıkla yeniden yazmak, iki yöntemi karşılaştırmanız için iyi bir ek çalışmadır.

Örnekler

Örnek 1: Son üç ayın satış toplamı
ABCD
1AySatış
2Ocak42.000158.000
3Şubat38.500
4Mart45.200
5Nisan47.800
6Mayıs51.000
7Haziran49.300
8Temmuz53.600
9Ağustos55.100
10Eylül
11Ekim
12Kasım
13Aralık
=TOPLA(KAYDIR(B1;BAĞ_DEĞ_SAY(B2:B13)-2;0;3;1))

Türkçe Excel'de bağımsız değişkenler noktalı virgülle (;), İngilizce Excel'de virgülle (,) ayrılır.

D2 hücresinin sonucu: 158.000

BAĞ_DEĞ_SAY 8 döndürür. KAYDIR B1'den 6 satır aşağı inip B7:B9 aralığını verir: 49.300 + 53.600 + 55.100 = 158.000 TL.

Örnek 2: Hücrelerden seçilen dönemin toplamı
ABCDEFG
1AySatışİlk satırSon satır
2Ocak42.00024125.700
3Şubat38.500
4Mart45.200
5Nisan47.800
6Mayıs51.000
7Haziran49.300
8Temmuz53.600
9Ağustos55.100
10Eylül
11Ekim
12Kasım
13Aralık
=TOPLA(DOLAYLI("B"&D2&":B"&E2))

Türkçe Excel'de bağımsız değişkenler noktalı virgülle (;), İngilizce Excel'de virgülle (,) ayrılır.

G2 hücresinin sonucu: 125.700

D2 ve E2'deki 2 ve 4 sayılarından "B2:B4" metni oluşur. DOLAYLI bunu aralığa çevirir: 42.000 + 38.500 + 45.200 = 125.700 TL.

Örnek 3: Dolu ayların ortalaması
ABCD
1AySatış
2Ocak42.00047.812,5
3Şubat38.500
4Mart45.200
5Nisan47.800
6Mayıs51.000
7Haziran49.300
8Temmuz53.600
9Ağustos55.100
10Eylül
11Ekim
12Kasım
13Aralık
=ORTALAMA(KAYDIR(B2;0;0;BAĞ_DEĞ_SAY(B2:B13);1))

Türkçe Excel'de bağımsız değişkenler noktalı virgülle (;), İngilizce Excel'de virgülle (,) ayrılır.

D2 hücresinin sonucu: 47.812,5

Aralık B2'den başlar ve dolu ay sayısı kadar (8) uzar. Sekiz ayın toplamı 382.500 TL, ortalaması 47.812,5 TL'dir.

Ders dosyasını indir.xlsx dosyası, ücretsiz
AlıştırmaAlıştırma: KAYDIR ile Son N Ayın Toplamı →Sekiz ayı dolu, dört ayı boş bir satış tablosunda D sütunundaki N değerine göre son N ayın toplamını KAYDIR ve BAĞ_DEĞ_SAY ile hesaplayın. Formül yeni ay eklendiğinde kendiliğinden kaymalı.

Sıkça Sorulan Sorular

KAYDIR yerine ne kullanabilirim?

Veriyi Excel tablosuna çevirirseniz yapılandırılmış başvurular yeni satırlarla kendiliğinden uzar. Son N satır için İNDİS ile kurulan aralıklar da değişken olmadığından daha hafiftir.

DOLAYLI başka bir dosyaya başvurabilir mi?

Başvurabilir, ama yalnızca o dosya açıkken. Kaynak dosya kapalıysa DOLAYLI #BAŞV! hatası verir.

KAYDIR #BAŞV! hatası veriyor, neden?

Kaydırma sonucu aralık sayfanın dışına taşıyordur; örneğin B1'den -2 satır yukarı çıkmak. Satır ve sütun argümanlarının başlangıç hücresine göre geçerli bir yere denk geldiğini kontrol edin.