Excel'de Formüllerle Dinamik Veri Seçimi
FILTER işlevi, büyük tablolardan belirtilen kriterlere göre gerekli verileri anında çıkarmanıza olanak tanır; pivot tablolar veya karmaşık makrolar kullanmadan dinamik raporlar oluşturur. Belirli bir öğe kümesine (değer listesine) göre filtreleme yapmak için bu işlev MATCH veya COUNTIF ile birlikte kullanılır. Sonuç, kaynak veriler değiştiğinde otomatik olarak güncellenir ve yalnızca Excel 2021 ile Microsoft 365 sürümlerinde mevcuttur.
FILTER İşlevinin Çalışma Prensibi
Bu işlev, bir veya daha fazla koşula uyan bir veri dizisi döndürür. Standart otomatik filtrenin aksine, formülün sonucu diğer hesaplamalarda (toplama, arama, grafik oluşturma) doğrudan kullanılabilir.
Temel sözdizimi:
=FILTER(dizi; dahil_et; [boşsa])
- dizi — verilerin alınması gereken hücre aralığı veya tablo.
- dahil_et — ana diziyle aynı yüksekliğe sahip mantıksal koşul (DOĞRU/YANLIŞ dizisi).
- boşsa — eşleşen satır bulunamadığında görünecek metin veya değer (#YOK! hatasını önler).
Normal aralıklar (B2:B100) yerine yapılandırılmış tablo başvurularını (örneğin, Tablo1[Satışlar]) kullanın. Bu, gelecekte tabloya yeni satırlar eklendiğinde formülün dayanıklı kalmasını sağlar.
Birden Fazla Koşulla Çalışma
Karmaşık filtreleme için mantıksal koşullar, "dahil_et" bağımsız değişkeni içinde matematiksel operatörlerle birleştirilir.
"VE" Operatörü (tüm koşulların sağlanması gerekir)
Çarpma işareti * kullanılır. Veriler yalnızca her iki koşulun da aynı anda gerçekleşmesi durumunda seçilir.
Görev: Ocak ayında "Ivanov" adlı satış temsilcisinin satışlarını bulma.
=FILTER(A2:C100; (A2:A100="Ivanov")*(B2:B100>=TARİH(2024;1;1)); "Veri yok")
"VEYA" Operatörü (koşullardan birinin sağlanması yeterlidir)
Toplama işareti + kullanılır. Koşullardan en az biri doğruysa veriler seçilir.
Görev: "Dizüstü Bilgisayarlar" veya "Tabletler" kategorisindeki ürünleri gösterme.
=FILTER(A2:C100; (D2:D100="Dizüstü Bilgisayarlar")+(D2:D100="Tabletler"); "Veri yok")
Değer Listesine Göre Filtreleme
Çoğu zaman verileri tek bir kritere göre değil, tüm bir listeye göre seçmek gerekir (örneğin, yalnızca ayrı bir listedeki şehirlere ait satışlar). Bunun için FILTER işlevi, MATCH (KAÇINCI) veya COUNTIF (EĞERSAY) kullanarak değerin listede var olup olmadığını kontrol eden bir yapı içine yerleştirilir.
Yöntem 1: MATCH İşlevini Kullanma
MATCH işlevi, ana sütundaki her değeri kriter listesinde arar. Eşleşme bulunursa bir sayı döndürür, aksi takdirde hata verir. ISNUMBER (SAYIMIDIR) işlevi bunu mantıksal bir diziye dönüştürür.
Örnek: Yalnızca F2:F10 hücrelerindeki listedeki müşteriler için siparişleri filtreleme.
=FILTER(A2:C100; SAYIMIDIR(KAÇINCI(A2:A100; F2:F10; 0)); "Eşleşme yok")
(İngilizce sürümde: ISNUMBER(MATCH(...)))
Yöntem 2: COUNTIF Kullanma
Bazen çok büyük dizilerde daha hızlı çalışan alternatif bir yöntemdir. Ana aralıktaki bir değerin kriter listesindeki oluşum sayısını hesaplar. Sayı > 0 ise koşul doğrudur.
=FILTER(A2:C100; EĞERSAY(F2:F10; A2:A100)>0; "Eşleşme yok")
Koşul aralığının yüksekliğinin ana veri dizisinin yüksekliğiyle kesinlikle eşleştiğinden emin olun. 100 satırlık bir tabloyu filtreliyorsanız, koşul da 100 satıra başvurmalıdır; aksi takdirde #DEĞER! hatası oluşur.
Hataları ve Boş Sonuçları İşleme
Varsayılan olarak, FILTER hiçbir uygun satır bulamazsa #HESAPLA! (veya eski derlemelerde #YOK!) hatası döndürür. Raporun düzgün görünmesi için işlevin üçüncü bağımsız değişkenini her zaman doldurun.
- Metin seçeneği:
...; "Veri bulunamadı") - Boşluk seçeneği:
...; "")— boş bir hücre döndürür. - Sıfır seçeneği:
...; 0)— sonraki toplamalar için uygundur.
Standart davranışın üzerine kendi hata mesajınızı yerleştirmek istiyorsanız (örneğin, verilerin kendisindeki bir hata durumunda), formülü IFERROR (EĞERHATA) içine sarın:
=EĞERHATA(FILTER(...); "Kaynak verileri kontrol edin")
Sık Yapılan Hatalar
- Boyut uyumsuzluğu: En sık karşılaşılan başarısızlık senaryosu. Verileri
A2:A100aralığından alırken, koşuluB2:B50aralığında kontrol edersiniz. Excel hata verir. Aralıkların yüksekliği aynı olmalıdır. - Üçüncü bağımsız değişkenin göz ardı edilmesi: "Boşsa" değeri belirtilmezse, kullanıcı anlaşılır bir mesaj yerine teknik bir hata görür.
- Operatör karışıklığı: Yeni başlayanlar sıklıkla
(Koşul1) VE (Koşul2)şeklinde yazar. Excel dizilerindeVEveVEYAkelimeleri çalışmaz; yalnızca*ve+gereklidir. - Statik aralıklar: Sürekli büyüyen bir veritabanında sabit başvuruların (
A2:A100) kullanılması. 100. satırın altındaki yeni satırlar seçime dahil edilmez. Çözüm: Kaynağı "Akıllı Tablo"ya (Ctrl+T) dönüştürün.
SSS
Filtreleme sonucunu otomatik olarak sıralayabilir miyim?
Evet. FILTER işlevini SORT işlevi içine sarın. Örnek: =SORT(FILTER(...); 1; 1) sonucu ilk sütuna göre artan şekilde sıralar.
Bu yöntem eski Excel sürümlerinde (2016, 2019) çalışır mı?
Hayır. FILTER işlevi ve dinamik diziler yalnızca Microsoft 365 aboneliğinde ve Excel 2021+ sürümlerinde mevcuttur. Eski sürümler için INDEX + SMALL + IF kombinasyonları (dizi formülleri) veya pivot tablolar kullanmanız gerekir.
Filtrelemeden sonra yalnızca benzersiz değerleri nasıl görüntülerim?
Dışarıya UNIQUE (TEK) işlevini ekleyin: =TEK(FILTER(...)). Bu, sonuçtaki satır yinelemelerini kaldırır.
Verileri aynı anda birden fazla sütuna göre filtreleyebilir miyim?
Evet, "dizi" bağımsız değişkeninde tüm tablo aralığını belirtin (örneğin, A2:C100) ve koşullarda bu aralığın belirli sütunları için mantığı tanımlayın. Sonuç, dizide belirtilen sütun sayısı kadar sütun kaplayacaktır.