
Genel formül
=SUM(INDEX(FILTER(range,logic),SEQUENCE(n,1,1,1)))
Özet
Bir veri kümesindeki ilk n eşleşen değeri toplamak için, FİLTRE ve SIRA işlevlerine dayalı bir formül kullanabilirsiniz. Gösterilen örnekte, kopyalanan G5 hücresindeki formül şöyledir:
=SUM(INDEX(FILTER(score,name=F5),SEQUENCE(3,1,1,1)))
burada ad (B5: B16) ve puan (C5: C16) adlandırılmış aralıklardır.
Açıklama
Excel 365'teki yeni FİLTRE işlevi, bazı karmaşık formül sorunlarını basitleştirmeye yardımcı olabilir.
Bu örnekte amaç, hem Jake hem de Hailey için ilk 3 puanı tabloda göründükleri sıraya göre toplamaktır. Toplam 12 puan vardır ve Jake ve Hailey'nin her birinin 6 puanı vardır.
İçten dışa doğru çalışarak, ilk görev her isim için bir puan listesi oluşturmaktır. Bu, FİLTRE işleviyle yapılır:
FILTER(score,name=F5)
F5 hücresindeki "Jake" ile sonuç, Jake'in tüm puanlarının aşağıdaki gibi olduğu bir dizidir:
(6;5;7;7;6;8)
Bu dizi, dizi bağımsız değişkeni olarak INDEX işlevine döndürülür:
INDEX((6;5;7;7;6;8),SEQUENCE(3,1,1,1))
SEQUENCE işlevi, satır numarası değerini oluşturmak için kullanılır ve 3 sayı içeren bir dizi döndürür,
SEQUENCE(3,1,1,1) // returns (1;2;3)
Bu noktada formülün INDEX kısmını şu şekilde yazabiliriz:
INDEX((6;5;7;7;6;8),(1;2;3))
INDEX, dizideki ilk 3 satırla ilişkili değerleri TOPLA işlevine döndürür:
=SUM((6;5;7)) // returns 18
ve TOPLA, G5'teki nihai sonuç olarak bu değerlerin toplamını verir. Formül G6 hücresine kopyalandığında sonuç, Hailey'nin ilk 3 puanının toplamıdır.
Son n eşleşen değeri topla
Eşleşen son n değeri toplamak için formülü şu şekilde uyarlayabilirsiniz:
=SUM(INDEX(FILTER(score,name=F5),SEQUENCE(3,1,SUM(--(name=F5)),-1)))
Bu formül burada daha ayrıntılı olarak açıklanmaktadır.