Excel FILTER işlevi - formüllerle dinamik filtreleme

  • Bunu Paylaş
Michael Brown

Bu hızlı derste, Excel'de formüllerle dinamik olarak nasıl filtreleme yapacağınızı öğreneceksiniz. Yinelenenleri, belirli metinleri içeren hücreleri, birden çok ölçütle ve daha fazlasını filtrelemek için örnekler.

Excel'de genellikle nasıl filtreleme yaparsınız? Çoğunlukla Otomatik Filtre kullanarak ve daha karmaşık senaryolarda Gelişmiş Filtre ile. Hızlı ve güçlü olan bu yöntemlerin önemli bir dezavantajı vardır - verileriniz değiştiğinde otomatik olarak güncellenmezler, yani temizlemeniz ve yeniden filtrelemeniz gerekir. Excel 365'te FILTER işlevinin tanıtılması, uzun zamandır beklenen bir alternatif haline geldiBunların aksine, Excel formülleri her çalışma sayfası değişikliğinde otomatik olarak yeniden hesaplanır, bu nedenle filtrenizi yalnızca bir kez ayarlamanız gerekir!

    Excel FILTER işlevi

    Excel'deki FILTER işlevi, belirttiğiniz ölçütlere göre bir veri aralığını filtrelemek için kullanılır.

    İşlev, Dinamik Diziler işlevleri kategorisine aittir. Sonuç, formül girdiğiniz hücreden başlayarak otomatik olarak bir hücre aralığına dökülen bir değerler dizisidir.

    FILTER fonksiyonunun sözdizimi aşağıdaki gibidir:

    FILTER(dizi, include, [if_empty])

    Nerede?

    • Dizi (gerekli) - filtrelemek istediğiniz değer aralığı veya dizisi.
    • Dahil etmek (gerekli) - Boolean dizisi olarak sağlanan ölçütler (DOĞRU ve YANLIŞ değerleri).

      Yüksekliği (veriler sütunlarda olduğunda) veya genişliği (veriler satırlarda olduğunda) dizi Tartışma.

    • If_empty (isteğe bağlı) - hiçbir girdi kriterleri karşılamadığında döndürülecek değer.

    FILTER işlevi yalnızca Microsoft 365 için Excel ve Excel 2021'de kullanılabilir. Excel 2019, Excel 2016 ve önceki sürümlerde desteklenmez.

    Temel Excel FILTER formülü

    Başlangıç olarak, verileri filtrelemek için bir Excel formülünün nasıl çalıştığını daha iyi anlamak için birkaç çok basit durumu tartışalım.

    Aşağıdaki veri kümesinden, belirli bir değere sahip kayıtları ayıklamak istediğinizi varsayalım Grup , sütun, diyelim ki C grubu. Bunu yapmak için, B2:B13="C" ifadesini şunları içerir argümanı, "C" değerlerine karşılık gelen TRUE ile gerekli bir Boolean dizisi üretecektir.

    =FILTER(A2:C13, B2:B13="C", "Sonuç yok")

    Pratikte, ölçütleri ayrı bir hücreye, örneğin F1'e girmek ve değeri doğrudan formülde sabit kodlamak yerine bir hücre başvurusu kullanmak daha uygundur:

    =FILTER(A2:C13, B2:B13=F1, "Sonuç yok")

    Excel'in Filtre özelliğinin aksine, işlev orijinal verilerde herhangi bir değişiklik yapmaz. Filtrelenen kayıtları, formülün girildiği hücreden başlayarak dökülme aralığı (aşağıdaki ekran görüntüsünde E4:G7) olarak adlandırılan aralığa çıkarır:

    Hiçbir kayıt belirtilen ölçütlerle eşleşmezse, formül şu alana koyduğunuz değeri döndürür if_empty argümanı, bu örnekte "Sonuç yok":

    Eğer tercih ederseniz hiçbir şey döndürme bu durumda, son bağımsız değişken için boş bir dize ("") girin:

    =FILTER(A2:C13, B2:B13=F1, "")

    Verilerinizin organize olması durumunda yatay olarak Aşağıdaki ekran görüntüsünde gösterildiği gibi soldan sağa doğru, FILTER işlevi de güzel bir şekilde çalışacaktır. dizi ve şunları içerir argümanları, kaynak dizi ve Boolean dizisinin aynı genişliğe sahip olmasını sağlar:

    =FILTER(B2:M4, B3:M3= B7, "Sonuç yok")

    Excel FILTER işlevi - kullanım notları

    Excel'de formüllerle etkili bir şekilde filtreleme yapmak için dikkat etmeniz gereken birkaç önemli nokta vardır:

    • FILTER işlevi, orijinal verilerinizin nasıl düzenlendiğine bağlı olarak sonuçları çalışma sayfasında otomatik olarak dikey veya yatay olarak döker. Bu nedenle, lütfen her zaman aşağıda ve sağda yeterince boş hücre olduğundan emin olun, aksi takdirde #SPILL hatası alırsınız.
    • Excel FILTER işlevinin sonuçları dinamiktir, yani orijinal veri kümesindeki değerler değiştiğinde otomatik olarak güncellenir. dizi argümanı, kaynak verilere yeni girdiler eklendiğinde güncellenmez. dizi otomatik olarak yeniden boyutlandırın, ardından bir Excel tablosuna dönüştürün ve yapılandırılmış referanslarla formüller oluşturun veya dinamik bir adlandırılmış aralık oluşturun.

    Excel'de nasıl filtreleme yapılır - formül örnekleri

    Artık temel bir Excel filtre formülünün nasıl çalıştığını bildiğinize göre, daha karmaşık görevleri çözmek için nasıl genişletilebileceğine dair bazı bilgiler edinmenin zamanı geldi.

    Birden fazla ölçütle filtreleme (AND mantığı)

    Verileri birden fazla ölçütle filtrelemek için, iki veya daha fazla mantıksal ifade sağlarsınız. şunları içerir Tartışma:

    FILTER(dizi, ( aralık1 = KRİTERLER1 ) * ( aralık2 = kriterler2 ), "Sonuç yok")

    Çarpma işlemi dizileri şu şekilde işler VE mantığı sadece uygun olan kayıtların tüm kriterler Teknik olarak bu şekilde çalışır:

    Her mantıksal ifadenin sonucu, DOĞRU'nun 1'e ve YANLIŞ'ın 0'a eşit olduğu bir Boolean değerler dizisidir. Daha sonra, aynı konumlardaki tüm dizilerin öğeleri çarpılır. Sıfır ile çarpma her zaman sıfır verdiğinden, yalnızca tüm kriterlerin DOĞRU olduğu öğeler sonuç dizisine girer ve sonuç olarak yalnızca bu öğeler çıkarılır.

    Aşağıdaki örnekler bu genel formülü iş başında göstermektedir.

    Örnek 1. Excel'de birden çok sütunu filtreleme

    Temel Excel FILTER formülümüzü biraz daha genişleterek, verileri iki sütuna göre filtreleyelim: Grup (sütun B) ve Kazanır (sütun C).

    Bunun için aşağıdaki kriterleri ayarlıyoruz: F2'ye hedef grubun adını yazın ( KRİTERLER1 ) ve F3'te gerekli minimum galibiyet sayısı ( kriterler2 ).

    Kaynak verilerimizin A2:C13'te olduğu göz önüne alındığında ( dizi ), gruplar B2:B13 ( aralık1 ) ve galibiyetler C2:C13 ( aralık2 ), formül bu şekli alır:

    =FILTER(A2:C13, (B2:B13=F2) * (C2:C13>=F3), "Sonuç yok")

    Sonuç olarak, A grubunda 2 veya daha fazla galibiyet elde eden oyuncuların bir listesini elde edersiniz:

    Örnek 2. Verileri tarihler arasında filtreleme

    Öncelikle, Excel'de tarihe göre filtreleme yapmak için genel bir formül oluşturmanın mümkün olmadığını belirtmek gerekir. Farklı durumlarda, belirli bir tarihe, aya veya yıla göre filtreleme yapmak isteyip istemediğinize bağlı olarak ölçütleri farklı şekilde oluşturmanız gerekecektir. Bu örneğin amacı genel yaklaşımı göstermektir.

    Örnek verilerimize, son galibiyetin tarihlerini içeren bir sütun daha ekliyoruz (sütun D). Ve şimdi, belirli bir dönemde, örneğin 17 Mayıs ile 31 Mayıs arasında gerçekleşen galibiyetleri çıkaracağız.

    Lütfen bu durumda her iki kriterin de aynı aralık için geçerli olduğuna dikkat edin:

    =FILTER(A2:D13, (D2:D13>=G2) * (D2:D13<=G3), "Sonuç yok")

    Burada G2 ve G3 filtrelenecek tarihler arasındadır.

    Birden fazla ölçütle filtreleme (VEYA mantığı)

    Birden fazla VEYA koşuluna dayalı verileri ayıklamak için, önceki örneklerde gösterildiği gibi mantıksal ifadeler de kullanırsınız, ancak çarpmak yerine bunları toplarsınız. İfadeler tarafından döndürülen Boole dizileri toplandığında, elde edilen dizi hiçbir kriteri karşılamayan (yani tüm kriterler YANLIŞ) girişler için 0 değerine sahip olacak ve bu tür girişler filtrelenecektir.en az bir kriter DOĞRU ise çıkarılacaktır.

    Sütunları VEYA mantığıyla filtrelemek için genel formül aşağıda verilmiştir:

    FILTER(dizi, ( aralık1 = KRİTERLER1 ) + ( aralık2 = kriterler2 ), "Sonuç yok")

    Örnek olarak, şu özelliklere sahip oyuncuların bir listesini çıkaralım şu ya da bu galibiyet sayısı.

    Kaynak verilerin A2:C13, kazançların C2:C13 ve ilgilenilen kazanç sayılarının F2 ve F3'te olduğunu varsayarsak, formül aşağıdaki gibi olacaktır:

    =FILTER(A2:C13, (C2:C13=F2) + (C2:C13=F3), "Sonuç yok")

    Sonuç olarak, hangi oyuncuların tüm oyunları kazandığını (4) ve hangilerinin hiç kazanmadığını (0) biliyorsunuz:

    Çoklu VE ve VEYA kriterlerine göre filtreleme

    Her iki ölçüt türünü de uygulamanız gereken durumlarda şu basit kuralı unutmayın: VE ölçütlerini yıldız işaretiyle (*) ve VEYA ölçütlerini artı işaretiyle (+) birleştirin.

    Örneğin, belirli bir galibiyet sayısına sahip (F2) VE E2 VEYA E3'te belirtilen gruba ait oyuncuların bir listesini döndürmek için aşağıdaki mantıksal ifadeler zincirini oluşturun:

    =FILTER(A2:C13, (C2:C13=F2) * ((B2:B13=E2) + (B2:B13=E3)), "Sonuç yok")

    Ve aşağıdaki sonucu alacaksınız:

    Excel'de yinelenenleri filtreleme

    Büyük çalışma sayfalarıyla çalışırken veya farklı kaynaklardan gelen verileri birleştirirken, genellikle bazı kopyaların gizlice girme olasılığı vardır.

    Eğer arıyorsanız filtreleyin kopyalar ve benzersiz öğeleri ayıklayın, ardından yukarıda bağlantısı verilen eğitimde açıklandığı gibi UNIQUE işlevini kullanın.

    Eğer hedefiniz kopyaları filtrele yani birden fazla kez ortaya çıkan girdileri ayıklayın, ardından FILTER işlevini COUNTIFS ile birlikte kullanın.

    Buradaki fikir, tüm kayıtlar için oluşum sayılarını almak ve 1'den büyük olanları çıkarmaktır. Sayıları almak için, her bir kayıt için aynı aralığı sağlarsınız. criteria_range / kriterler Bunun gibi bir çift COUNTIFS:

    FİLTRE( dizi , COUNTIFS( sütun1 , sütun1, sütun2 , sütun2 )>1, "Sonuç yok")

    Örneğin, A2:C20'deki verilerden yinelenen satırları her 3 sütundaki değerlere göre filtrelemek için kullanılacak formül aşağıda verilmiştir:

    =FILTER(A2:C20, COUNTIFS(A2:A20, A2:A20, B2:B20, B2:B20, C2:C20, C2:C20)>1, "Sonuç yok")

    İpucu. Yinelenenleri filtrelemek için anahtar sütunlar , COUNTIFS işlevine yalnızca bu belirli sütunları dahil edin.

    Excel'de boşluklar nasıl filtrelenir

    Boş hücreleri filtrelemek için kullanılan formül, aslında Excel FILTER formülünün birden fazla AND ölçütü içeren bir çeşididir. Bu durumda, tüm (veya belirli) sütunlarda herhangi bir veri olup olmadığını kontrol eder ve en az bir hücrenin boş olduğu satırları hariç tutarız. Boş olmayan hücreleri belirlemek için, "eşit değil" işlecini () boş bir dizeyle ("") birlikte aşağıdaki gibi kullanırsınız:

    FILTER(dizi, ( sütun1 "") * ( sütun2 =""), "Sonuç yok")

    A2:C12'deki kaynak verilerle, bir veya daha fazla boş hücre içeren satırları filtrelemek için E3'e aşağıdaki formül girilir:

    Belirli metin içeren hücreleri filtreleme

    Belirli bir metni içeren hücreleri ayıklamak için, FILTER işlevini klasik Hücre içeriyorsa formülüyle birlikte kullanabilirsiniz:

    FILTER(dizi, ISNUMBER(SEARCH(" Metin ", aralık )), "Sonuç yok")

    Şöyle çalışıyor:

    • SEARCH işlevi, belirli bir aralıkta belirtilen bir metin dizesini arar ve ya bir sayı (ilk karakterin konumu) ya da #VALUE! hatası (metin bulunamadı) döndürür.
    • ISNUMBER fonksiyonu tüm sayıları DOĞRU'ya ve hataları YANLIŞ'a dönüştürür ve elde edilen Boolean dizisini şunları içerir FILTER işlevinin bağımsız değişkeni.

    Bu örnek için, eklediğimiz Soy isimler B2:B13'teki oyuncuların isimlerini girin, G2'de bulmak istediğimiz isim kısmını yazın ve ardından verileri filtrelemek için aşağıdaki formülü kullanın:

    =FILTER(A2:D13, ISNUMBER(SEARCH(G2, B2:B13)), "Sonuç yok")

    Sonuç olarak, formül "han" içeren iki soyadını alır:

    Filtreleme ve hesaplama (Toplam, Ortalama, Min, Maks, vb.)

    Excel FILTER işleviyle ilgili harika bir şey, yalnızca koşullu değerleri ayıklamakla kalmayıp, aynı zamanda filtrelenmiş verileri özetleyebilmesidir. Bunun için FILTER'ı SUM, AVERAGE, COUNT, MAX veya MIN gibi toplama işlevleriyle birleştirin.

    Örneğin, F1'de belirli bir gruba ait verileri toplamak için aşağıdaki formülleri kullanın:

    Toplam galibiyet:

    =TOPLAM(FILTRE(C2:C13, B2:B13=F1, 0))

    Ortalama galibiyet:

    =ORTALAMA(FILTRE(C2:C13, B2:B13=F1, 0))

    Maksimum kazanç:

    =MAX(FILTER(C2:C13, B2:B13=F1, 0))

    Minimum kazanç:

    =MIN(FILTER(C2:C13, B2:B13=F1, 0))

    Lütfen tüm formüllerde, sıfır için sıfır kullandığımıza dikkat edin. if_empty argümanını kullanırsanız, kriterleri karşılayan hiçbir değer bulunamazsa formüller 0 değerini döndürür. "Sonuç yok" gibi herhangi bir metin sağlamak #VALUE hatasına neden olur, ki bu kesinlikle isteyeceğiniz son şeydir :)

    Harfe duyarlı FILTER formülü

    Standart bir Excel FILTER formülü büyük/küçük harfe duyarsızdır, yani küçük ve büyük harf karakterleri arasında ayrım yapmaz. Metin büyük/küçük harf ayrımı yapmak için EXACT işlevini şunları içerir Bu, FILTER'ı mantıksal testi büyük/küçük harfe duyarlı bir şekilde yapmaya zorlayacaktır:

    FILTER(dizi, EXACT( aralık , kriterler ), "Sonuç yok")

    Diyelim ki, her iki gruba da sahipsiniz A ve a ve grubun küçük "a" harfi olduğu kayıtları ayıklamak istiyorsunuz. Bunu yapmak için, A2:C13 kaynak veri ve B2:B13 filtrelenecek gruplar olmak üzere aşağıdaki formülü kullanın:

    =FILTER(A2:C13, EXACT(B2:B13, "a"), "Sonuç yok")

    Her zamanki gibi, hedef grubu önceden tanımlanmış bir hücreye, örneğin F1'e girebilir ve sabit kodlanmış metin yerine bu hücre referansını kullanabilirsiniz:

    =FILTER(A2:C13, EXACT(B2:B13, F1), "Sonuç yok")

    Veriler nasıl FİLTRELENİR ve yalnızca belirli sütunlar nasıl döndürülür

    Çoğunlukla, tüm sütunları tek bir formülle filtrelemek Excel kullanıcılarının istediği şeydir. Ancak kaynak tablonuz onlarca hatta yüzlerce sütun içeriyorsa, sonuçları kesinlikle en önemli birkaç sütunla sınırlamak isteyebilirsiniz.

    Örnek 1. Bazı bitişik sütunları filtreleme

    Bazı komşu sütunların bir FILTER sonucunda görünmesini istediğiniz durumlarda, yalnızca bu sütunları dizi çünkü hangi sütunların döndürüleceğini belirleyen bu argümandır.

    Temel FILTER formülü örneğinde, ilk 2 sütunu döndürmek istediğinizi varsayalım ( İsim ve Grup ) için A2:B13 değerlerini sağlarsınız. dizi Tartışma:

    =FILTER(A2:B13, B2:B13=F1, "Sonuç yok")

    Sonuç olarak, F1'de tanımlanan hedef grubun katılımcılarının bir listesini elde ederiz:

    Örnek 2. Bitişik olmayan sütunları filtreleme

    FILTER fonksiyonunun bitişik olmayan sütunlar döndürmesini sağlamak için şu akıllıca numarayı kullanın:

    1. için tablonun tamamını kullanarak istenen koşul(lar)a sahip bir FILTER formülü oluşturun. dizi .
    2. Yukarıdaki formülü başka bir FILTER işlevinin içine yerleştirin. "Sarmalayıcı" işlevini yapılandırmak için, TRUE ve FALSE değerlerinden oluşan bir dizi sabiti veya 1'ler ve 0'lar için şunları içerir argümanı, burada TRUE (1) tutulacak sütunları ve FALSE (0) hariç tutulacak sütunları işaretler.

    Örneğin, yalnızca İsimler (1. sütun) ve Kazanır (3. sütun) için {1,0,1} veya {TRUE,FALSE,TRUE} kullanıyoruz. şunları içerir dış FILTER işlevinin bağımsız değişkeni:

    =FILTER(FILTER(A2:C13, B2:B13=F1), {1,0,1})

    Ya da

    =FILTER(FILTER(A2:C13, B2:B13=F1), {TRUE,FALSE,TRUE})

    FILTER işlevi tarafından döndürülen satır sayısı nasıl sınırlandırılır

    FILTER formülünüz oldukça fazla sonuç buluyorsa, ancak çalışma sayfanızda sınırlı alan varsa ve aşağıdaki verileri silemiyorsanız, FILTER işlevinin döndürdüğü satır sayısını sınırlayabilirsiniz.

    F1'deki hedef gruptan oyuncuları çeken basit bir formül örneği üzerinde nasıl çalıştığını görelim:

    =FILTER(A2:C13, B2:B13=F1)

    Yukarıdaki formül bulduğu tüm kayıtların çıktısını verir, bizim durumumuzda 4 satır. Ancak sadece iki satırlık yeriniz olduğunu varsayalım. Sadece bulunan ilk 2 satırın çıktısını almak için yapmanız gereken şey şudur:

    • FİLTRE formülünü dizi INDEX işlevinin bağımsız değişkeni.
    • için row_num argümanında {1;2} gibi dikey bir dizi sabiti kullanın. Bu, kaç satır döndürüleceğini belirler (bizim durumumuzda 2).
    • için column_num argümanında {1,2,3} gibi yatay bir dizi sabiti kullanın. Bu, hangi sütunların döndürüleceğini belirtir (bu örnekte ilk 3 sütun).
    • Ölçütlerinizle eşleşen veri bulunamadığında olası hataların üstesinden gelmek için formülünüzü IFERROR işlevine sarabilirsiniz.

    Formülün tamamı şu şekildedir:

    =IFERROR(INDEX(FILTER(A2:C13, B2:B13=F1), {1;2}, {1,2,3}), "Sonuç yok")

    Büyük tablolarla çalışırken, dizi sabitlerini manuel olarak yazmak oldukça zahmetli olabilir. Sorun değil, SEQUENCE fonksiyonu sıralı sayıları sizin için otomatik olarak oluşturabilir:

    =IFERROR(INDEX(FILTER(A2:C13, B2:B13=F1), SEQUENCE(2), SEQUENCE(1, COLUMNS(A2:C13))), "Sonuç yok")

    İlk SEQUENCE, ilk (ve tek) bağımsız değişkende belirtilen sayıda ardışık sayı içeren dikey bir dizi oluşturur. İkinci SEQUENCE, veri kümesindeki sütunların sayısını saymak için COLUMNS işlevini kullanır ve eşdeğer bir yatay dizi üretir.

    İpucu. belirli sütunlar için kullandığınız yatay dizi sabitindeki tüm sütunları değil column_num argümanına yalnızca belirli sayıları dahil edin. Örneğin, 1. ve 3. sütunlardan veri çıkarmak için {1,3} kullanın.

    Excel FILTER işlevi çalışmıyor

    Excel FILTER formülünüzün bir hatayla sonuçlanması durumunda, büyük olasılıkla bu aşağıdakilerden biri olacaktır:

    #CALC! hatası

    İsteğe bağlı if_empty argümanı atlanırsa, ölçütleri karşılayan hiçbir sonuç bulunamaz. Bunun nedeni, şu anda Excel'in boş dizileri desteklememesidir. Bu tür hataları önlemek için, her zaman if_empty formüllerinizdeki değer.

    #DEĞER hatası

    Ne zaman oluşur dizi ve şunları içerir argümanı uyumsuz boyutlara sahiptir.

    #N/A, #VALUE, vb.

    içindeki bazı değerler farklı hatalara neden olabilir. şunları içerir bağımsız değişkeni bir hatadır veya Boole değerine dönüştürülemez.

    #HATA ADI

    Excel'in eski bir sürümünde FILTER kullanılmaya çalışıldığında ortaya çıkar. Lütfen bunun yalnızca Office 365 ve Excel 2021'de kullanılabilen yeni bir işlev olduğunu unutmayın.

    Yeni Excel'de, işlevin adını yanlışlıkla yanlış yazarsanız bir #AD hatası oluşur.

    #SPILL hatası

    Çoğu zaman, dökülme aralığındaki bir veya daha fazla hücre tamamen boş değilse bu hata oluşur. Düzeltmek için, boş olmayan hücreleri temizleyin veya silin. Diğer durumları araştırmak ve çözmek için lütfen Excel'de #SPILL! hatası: ne anlama gelir ve nasıl düzeltilir bölümüne bakın.

    #REF! hata

    Farklı çalışma kitapları arasında bir FILTER formülü kullanıldığında ve kaynak çalışma kitabı kapatıldığında oluşur.

    Excel'de dinamik olarak veri dosyalama bu şekilde yapılır. Okuduğunuz için teşekkür eder, gelecek hafta blogumuzda görüşmek dileğiyle!

    Alıştırma çalışma kitabını indirin

    Excel'de formüllerle filtreleme (.xlsx dosyası)

    Michael Brown, yazılım araçlarını kullanarak karmaşık süreçleri basitleştirme tutkusuna sahip, kendini adamış bir teknoloji meraklısıdır. Teknoloji endüstrisinde on yılı aşkın deneyimiyle Microsoft Excel ve Outlook'un yanı sıra Google E-Tablolar ve Dokümanlar'daki becerilerini geliştirdi. Michael'ın blogu, bilgisini ve uzmanlığını başkalarıyla paylaşmaya, üretkenliği ve verimliliği artırmaya yönelik takip etmesi kolay ipuçları ve eğitimler sağlamaya adamıştır. İster deneyimli bir profesyonel, ister yeni başlayan olun, Michael'ın blogu, bu temel yazılım araçlarından en iyi şekilde yararlanmak için değerli bilgiler ve pratik tavsiyeler sunar.