Microsoft Excel Dinamik Diziler ile Veri Işleme
Excel'de bir formülü yüzlerce satıra kopyalamak artık gereksiz. Tek hücreye yazdığınız formül, sonucu kendiliğinden aşağıya ya da yana doğru yayıyor. Bu davranışa "spill" (dökülme) deniyor ve arkasındaki teknoloji Excel dinamik diziler. FILTER ile veriyi süzüyor, UNIQUE ile tekrarları temizliyorsunuz. Kaynak tablo büyüdüğünde formülü tekrar sürüklemeniz gerekmiyor; sonuç kendini güncelliyor. Aşağıda mantığı, temel fonksiyonları ve sık yapılan hataları sırayla ele alıyoruz.
Dinamik dizi mantığı ve dökülme aralığı
Klasik Excel'de bir formül bir hücreye bir sonuç üretirdi. Çok hücreli sonuç için CTRL + SHIFT + ENTER ile dizi formülü yazmak gerekiyordu. Dinamik dizilerde bu zorunluluk kalktı.
- Formül tek hücreye yazılır, sonuç kaç hücre gerekiyorsa o kadar alana taşar.
- Dökülen aralığın etrafında ince mavi çerçeve görünür. İçindeki hücreler düzenlenemez, sadece sol üstteki formül düzenlenir.
- Dökülen aralığın tamamına atıf yapmak için hücre adresinin sonuna # eklenir. Örnek: E2#.
- Bu atıf boyutla birlikte değişir. Yani =COUNTA(E2#) her zaman güncel satır sayısını verir.
- Fonksiyonlar Microsoft 365 ve Excel 2021 sürümlerinde çalışır. Eski sürümlerde formül _xlfn.FILTER gibi görünür ve hata döner.
Kaynak veriyi tabloya çevirmeniz (CTRL + T) işi daha da kolaylaştırır. Tabloya yeni satır eklediğinizde formülün baktığı alan otomatik genişler. Office kısayollarını sık kullananlar için bu kombinasyon zaman kazandıran küçük bir alışkanlık.
FILTER ile koşullu veri süzme
FILTER, bir aralığı verdiğiniz koşula göre süzer ve yalnızca eşleşen satırları döker. Söz dizimi şöyle:
=FILTER(dizi; dahil_et; [boşsa])
- dizi: Döndürmek istediğiniz sütun veya sütun grubu.
- dahil_et: Dizi ile aynı yükseklikte, DOĞRU/YANLIŞ üreten bir karşılaştırma.
- boşsa: Eşleşme yoksa gösterilecek metin. Yazmazsanız #CALC! hatası gelir.
Pratik örnekler:
- Tek koşul: =FILTER(A2:D500; C2:C500="İstanbul"; "kayıt yok")
- İki koşul birlikte (VE): koşulları çarpın. =FILTER(A2:D500; (C2:C500="İstanbul")*(D2:D500>1000); "kayıt yok")
- İki koşuldan biri (VEYA): koşulları toplayın. =FILTER(A2:D500; (C2:C500="İstanbul")+(C2:C500="İzmir"); "kayıt yok")
- Sadece belirli sütunlar: dizi bölümünde B2:B500 gibi tek sütun verin, koşul başka sütundan gelsin.
- Metin içerenler: =FILTER(A2:D500; ISNUMBER(SEARCH("kablo"; B2:B500)); "kayıt yok")
Koşulu hücreye bağlarsanız mini bir arama paneli elde edersiniz. G1 hücresine şehir yazın, formülde C2:C500=G1 deyin. Tablo yazı yazdıkça yenilenir. Filtre menüsüne dokunmadan çalışan canlı bir rapor olur.
UNIQUE ile tekrarları temizleme
UNIQUE bir listedeki benzersiz değerleri döker. Üç bağımsız değişkeni var:
=UNIQUE(dizi; [sütuna_göre]; [tam_bir_kez])
- =UNIQUE(B2:B500) — listedeki her değeri bir kez getirir.
- =UNIQUE(B2:B500; ; TRUE) — yalnızca bir defa geçen değerleri getirir. Tek seferlik kayıtları ayıklamak için kullanışlı.
- =UNIQUE(A2:C500) — çok sütunlu benzersiz satır kombinasyonları döndürür. Mükerrer kayıt temizliğinde bire bir.
- SORT ile sarmalayın: =SORT(UNIQUE(B2:B500)) alfabetik benzersiz liste verir.
- Boş hücreler sıfır olarak gelirse önce FILTER ile temizleyin: =SORT(UNIQUE(FILTER(B2:B500; B2:B500<>"")))
Bu üçlü zincir birçok temizleme işini tek formüle indirir. Veri > Yinelenenleri Kaldır komutu veriyi kalıcı olarak siler; UNIQUE ise kaynağa dokunmaz. Orijinali korumak istediğinizde formül yolu daha güvenli.
Özet tablo kurma
Benzersiz liste ile toplam hesaplarını birleştirerek pivot benzeri bir özet çıkarabilirsiniz:
| Amaç | Formül |
|---|---|
| Benzersiz kategori listesi | =SORT(UNIQUE(C2:C500)) |
| Her kategorinin toplamı | =SUMIF(C2:C500; F2#; D2:D500) |
| Her kategorinin adedi | =COUNTIF(C2:C500; F2#) |
F2# atıfı sayesinde kategori sayısı arttığında toplam sütunu da genişler. Elle sürükleme yok.
Sık görülen hatalar ve çözümleri
- #SPILL! — Dökülme alanında dolu hücre var ya da alan tabloya denk geliyor. Alanı boşaltın; dinamik diziler Excel tablosun