Excel'de OFSET İşlevi: Nasıl Çalışır ve Nerelerde Kullanılır
OFSET işlevi (İngilizce sürümünde OFFSET), belirli bir başlangıç noktasından belirli sayıda satır ve sütun kaydırılmış bir hücre aralığına referans döndürür. Kendisi değerleri doğrudan vermez; bunun yerine, diğer işlevler (TOPLA, ORTALAMA vb.) tarafından hesaplamalar için kullanılan adresi belirtir. Bu, yeni verilerin eklenmesine otomatik olarak uyum sağlayan "canlı" tablolar oluşturmak için temel bir araçtır.
İşlevin Söz Dizimi ve Bağımsız Değişkenleri
Formül şu şekilde yazılır:
=OFSET(referans; satırlar; sütunlar; [yükseklik]; [genişlik])
Her bir bağımsız değişkeni ayrıntılı olarak inceleyelim:
| Bağımsız Değişken | Zorunluluk | Açıklama |
|---|---|---|
| referans | Evet | Sayımın yapıldığı başlangıç hücresi veya aralık. |
| satırlar | Evet | Yukarı doğru kaydırmak için (negatif sayı) veya aşağı doğru kaydırmak için (pozitif) gereken satır sayısı. |
| sütunlar | Evet | Sola doğru kaydırmak için (negatif) veya sağa doğru kaydırmak için (pozitif) gereken sütun sayısı. |
| yükseklik | Hayır | Döndürülen aralığın satır cinsinden yüksekliği. Belirtilmezse, başlangıç referansının yüksekliğine eşit kabul edilir. |
| genişlik | Hayır | Döndürülen aralığın sütun cinsinden genişliği. Belirtilmezse, başlangıç referansının genişliğine eşit kabul edilir. |
Unutulmaması Gereken Önemli Bir Nokta: OFSET işlevi bir değer değil, referans döndürür. Eğer =OFSET(A1; 1; 0) formülünü doğrudan bir hücreye girerseniz, Excel referansı bir değer olarak yorumlamaya çalıştığı için yalnızca A2 hücresindeki değeri gösterir. Ancak işlevin gerçek gücü, onu diğer formüllerin içine yerleştirdiğinizde ortaya çıkar; örneğin: =TOPLA(OFSET(...)).
Pratik Kullanım Örnekleri
1. Son N Kaydın Toplanması
Muhasebede sık karşılaşılan bir görev: Tabloda kaç satırın doldurulduğundan bağımsız olarak, yalnızca son 5 güne ait satışların toplamını hesaplamak.
Verilerin B sütununda, B2 hücresinden başladığını varsayalım.
Formül şu şekilde olacaktır:
=TOPLA(OFSET($B$2; EĞERSAY($B:$B)-5; 0; 5; 1))
Nasıl Çalışır:
EĞERSAY($B:$B)sütundaki dolu hücre sayısını hesaplar.- Sayım başlangıç noktasını bulmak için (aşağı doğru kaydırma) 5 çıkarılır.
5ve1bağımsız değişkenleri, yakalanan aralığın boyutunu belirler (5 satır yüksekliğinde, 1 sütun genişliğinde).TOPLA, bu dinamik penceredeki değerleri toplar.
2. Dinamik Açılır Liste Oluşturma
Sürekli genişleyen bir ürün listeniz varsa, veri doğrulamadaki açılır listenin, aralığı manuel olarak düzenlemeye gerek kalmadan yeni öğeleri otomatik olarak dahil etmesini sağlayabilirsiniz.
- Veri sekmesine gidin -> Veri Doğrulama.
- "Kaynak" alanına şu formülü girin:
=OFSET($A$2; 0; 0; EĞERSAY($A:$A)-1; 1)
Burada $A$2 listenin ilk hücresidir ve -1 tablo başlığını dikkate alır. Artık A sütununun altına yeni bir ürün eklendiğinde, bu ürün seçim listesinde otomatik olarak görünecektir.
Performans İpucu: OFSET işlevi "kararsız"dır (volatile). Bu, aralığı ilgilendirmese bile sayfada yapılan herhangi bir değişiklikte yeniden hesaplandığı anlamına gelir. Çok büyük dosyalarda (binlerce satır ve karmaşık formüller) çok sayıda OFSET işlevi kullanımı çalışmayı yavaşlatabilir. Böyle durumlarda, DİZİN işlevi aracılığıyla bir alternatif düşünün.
3. Dinamik Rapor Başlıkları
Raporun başlık kısmına güncel verileri otomatik olarak çekmek için OFSET'i kullanabilirsiniz. Örneğin, her zaman son kaydın tarihini görüntülemek için:
=OFSET($A$1; EĞERSAY($A:$A)-1; 0)
Bu formül, A sütunundaki son dolu hücrenin değerini döndürür.
OFSET ile Çalışırken Sık Yapılan Hatalar
- #BAŞV! (#REF!): Kaydırma işlemi aralığı sayfa sınırlarının dışına çıkardığında oluşur. Örneğin, ilk satırdan 5 satır yukarı kaydırmaya çalışmak (
-5kaydırmalıA1). - Geçersiz Aralık Boyutu: "Yükseklik" veya "genişlik" bağımsız değişkenleri negatif sayılar veya sıfır olarak belirtilirse, işlev bir hata döndürür.
- Mutlak Referansların Göz Ardı Edilmesi: Temel hücreye göreli referans içeren bir formülü kopyalarken (örneğin,
$A$1yerineA1), başlangıç noktası kayar ve sonuçlar yanlış olur. Başlangıç hücresini her zaman dolar işaretleriyle sabitleyin.
SSS
OFSET ve DİZİN arasındaki fark nedir?
Her iki işlev de bir hücreye referans döndürebilir. Ancak OFSET, döndürülen dizinin boyutlarını (yükseklik ve genişlik aracılığıyla) belirlemede daha esnektir, ancak sürekli yeniden hesaplama nedeniyle daha yavaştır. DİZİN büyük dizilerde daha hızlı ve kararlı çalışır, ancak değişken genişlikteki dinamik aralıklar oluşturmak için söz dizimsel olarak biraz daha karmaşıktır.
OFSET koşullu biçimlendirmede kullanılabilir mi? Evet, bu, örneğin son girilen verileri içeren tüm satırı renkle vurgulamak veya etkin bir tarihe göre hücreleri aydınlatmak için en iyi yöntemlerden biridir.
Formül neden #DEĞER! hatası döndürüyor? "Satırlar" ve "sütunlar" bağımsız değişkenlerini kontrol edin. Bunlar sayı olmalıdır. Hata genellikle, bağımsız değişken olarak bir metin dizisi veya sayı yerine metin döndüren başka bir işlevin sonucu geçirildiğinde oluşur.