Excel formülü: Ölçütlerle benzersiz değerleri sayma -

İçindekiler

Genel formül

=SUM(--(LEN(UNIQUE(FILTER(range,criteria,"")))>0))

Özet

Bir veya daha fazla koşulla benzersiz değerleri saymak için BENZERSİZ ve FİLTRE'ye dayalı bir formül kullanabilirsiniz. Gösterilen örnekte, H7'deki formül şöyledir:

=SUM(--(LEN(UNIQUE(FILTER(B6:B15,C6:C15=H6,"")))>0))

B6: B15'te Omega projesiyle ilişkili üç benzersiz ad olduğundan 3 döndürür.

Not: Bu formül, yalnızca Excel 365'te kullanılabilen Dinamik Dizi Formülleri gerektirir. Excel'in daha eski bir sürümüyle, daha karmaşık alternatif formüller kullanabilirsiniz.

Açıklama

Temelde, bu formül benzersiz değerleri çıkarmak için BENZERSİZ işlevini kullanır ve FİLTRE işlevi ölçütleri uygular.

İçten dışa doğru çalışan FİLTRE işlevi, ölçütleri uygulamak ve yalnızca "Omega" projesiyle ilişkili adları çıkarmak için kullanılır:

FILTER(B6:B15,C6:C15=H6) // Omega names only

FILTER işlevinin sonucu şöyle bir dizidir:

("Jim";"Jim";"Carl";"Sue";"Carl")

Ardından, kopyaları kaldırmak için UNIQUE işlevi kullanılır:

UNIQUE(("Jim";"Jim";"Carl";"Sue";"Carl"))

bunun gibi yeni bir dizi ile sonuçlanır:

("Jim";"Carl";"Sue") // after UNIQUE

Bu noktada, Omega ile ilişkili benzersiz bir isim listesine sahibiz ve sadece onları saymamız gerekiyor. Aşağıda açıklanan nedenlerden dolayı, bunu UZUNLUK işlevi ve TOPLA işlevi ile yapıyoruz. Her şeyi açıklığa kavuşturmak için, önce benzersiz listeyi içerecek şekilde formülü yeniden yazacağız:

=SUM(--(LEN(("Jim";"Carl";"Sue"))>0))

UZUNLUK işlevi, listedeki her bir öğenin uzunluğunu alır ve bir uzunluk dizisi döndürür:

LEN(("Jim";"Carl";"Sue")) // returns (3;4;3)

Ardından, uzunlukların sıfırdan büyük olup olmadığını kontrol ederiz:

LEN((3;4;3)>0 // returns (TRUE;TRUE;TRUE)

DOĞRU ve YANLIŞ değerlerini 1'lere ve 0'lara zorlamak için çift negatif kullanın:

--((TRUE;TRUE;TRUE)) // returns (1;1;1)

Son olarak, SUM işleviyle sonuçları topluyoruz:

=SUM((1;1;1)) // returns 3

Bu dizi doğrudan COUNTA işlevine gönderilir ve son bir sayı döndürür:

=COUNTA(("Jim";"Carl";"Sue")) // returns 3

UNIQUE tarafından döndürülen her bir öğenin uzunluğunu kontrol ettiğimiz için, kriterleri karşılayan boş veya boş hücrelerin göz ardı edildiğini unutmayın. Bu formül dinamiktir ve kaynak veriler değiştirilirse hemen yeniden hesaplanır.

Birden çok kriterle benzersiz sayın

Birden çok kritere dayalı olarak benzersiz değerleri saymak için FILTER içindeki "dahil et" mantığını genişletebilirsiniz. Örneğin, yalnızca Haziran ayında Omega projesi için benzersiz isimleri saymak için şunu kullanın:

=SUM(--(LEN(UNIQUE(FILTER(B6:B15,(C6:C15=H6)*(D6:D15="june"))))>0))

Bu, birden fazla koşul uygulamak için boole mantığının kullanımına bir örnektir. Yaklaşım burada daha ayrıntılı olarak açıklanmıştır.

Daha fazla ayrıntı için şu eğitim videosuna bakın: Birden çok ölçütle nasıl filtreleme yapılır.

COUNTA

COUNTA işlevini yanıtlayan daha basit bir formül yazmak mümkündür. Ancak önemli bir uyarı, eşleşen değer olmadığında COUNTA'nın 1 döndürecektir. Bunun nedeni, hiçbir veri kriterle eşleşmediğinde FILTER işlevinin bir hata döndürmesidir ve bu hata COUNTA işlevi tarafından sayılır. Temel COUNTA formülü şuna benzer:

=COUNTA(UNIQUE(FILTER(B6:B15,C6:C15=H6)))

Yine, eşleşen veri olmadığında bu formül 1 döndürür. Ayrıca, ölçütleri karşılayan boş hücreleri de içerecektir. UZUNLUK ve TOPLA'ya dayalı formül daha iyi bir seçenektir.

Dinamik dizi yok

Dinamik dizi desteği olmayan eski bir Excel sürümü kullanıyorsanız, daha karmaşık bir formül kullanabilirsiniz. Dinamik dizi alternatifleriyle ilgili daha genel bir tartışma için bkz .: Dinamik Dizi Formüllerine Alternatifler.

Ilginç makaleler...