Excel formülü: FİLTRE ölçütlerle ilk n değerinde -

Genel formül

=FILTER(data,(range>=LARGE(IF(criteria),n))*(criteria))

Özet

Verileri, belirli kriterleri karşılayan ilk n değerleri gösterecek şekilde filtrelemek için, FİLTRE işlevini BÜYÜK ve EĞER işlevleriyle birlikte kullanabilirsiniz. Gösterilen örnekte, F5'teki formül şöyledir:

=FILTER(data,(score>=LARGE(IF(group="b",score),3))*(group="b"))

burada veriler (B5: D16), grup (C5: C16) ve skor (D5: D16) adlandırılmış aralıklardır.

Açıklama

Bu formül, BÜYÜK ve EĞER işlevleriyle oluşturulmuş mantıksal bir teste dayalı olarak verileri almak için FİLTRE işlevini kullanır. Sonuç, B grubundaki en yüksek 3 puandır.

FILTER işlevi, include bağımsız değişkeniyle ölçütler uygular. Bu örnekte, kriterler şu şekilde mantıksal mantıkla oluşturulmuştur:

(score>=LARGE(IF(group="b",score),3))*(group="b")

İfadenin sol tarafı, B grubundaki en yüksek 3. puandan büyük veya ona eşit puanları hedefler:

score>=LARGE(IF(group="b",score),3)

EĞER işlevi, BÜYÜK'un yalnızca B grubu puanlarıyla çalıştığından emin olmak için kullanılır. Toplamda 12 puanımız olduğundan, EĞER aşağıdaki gibi 12 sonuç içeren bir dizi döndürür:

(FALSE;65;FALSE;80;FALSE;88;FALSE;76;FALSE;86;FALSE;83)

Operasyondan sağ kalan tek puanların Grup B'den olduğuna dikkat edin. Diğer tüm puanlar YANLIŞ. Bu dizi, dizi bağımsız değişkeni olarak doğrudan LARGE'a döndürülür:

LARGE((FALSE;65;FALSE;80;FALSE;88;FALSE;76;FALSE;86;FALSE;83),3)

BÜYÜK YANLIŞ değerleri yok sayar ve en yüksek 3. puanı olan 83'ü döndürür.

Şimdi formülü şu şekilde basitleştirebiliriz:

=FILTER(data,(score>=83)*(group="b"))

hangisi çözülür:

=FILTER(data,(0;0;0;0;0;1;0;0;0;1;0;1))

Son olarak FİLTRE, F5: H7 aralığına giren Mason, Annie ve Cassidy kayıtlarını döndürür.

Sonuçları puana göre sırala

FILTER varsayılan olarak, kaynak verilerde göründükleri sırayla eşleşen kayıtları döndürür. Sonuçları azalan sırada puana göre sıralamak için, orijinal FİLTRE formülünü SIRALA işlevinin içine şu şekilde yerleştirebilirsiniz:

=SORT(FILTER(data,(score>=LARGE(IF(group="b",score),3))*(group="b")),3,-1)

Burada FİLTRE, sonuçları doğrudan SIRALA işlevine dizi bağımsız değişkeni olarak döndürür. Sıralama dizini 3'e (puan) ve sıralama düzeni azalan sıra için -1'e ayarlanmıştır.

Ilginç makaleler...