![](https://cdn.wiki-base.com/2689080/excel_formula_filter_on_top_n_values__2.png.webp)
Обща формула
=FILTER(data,range>=LARGE(range,n))
Обобщение
За да филтрирате набор от данни, за да покажете най-добрите n стойности, можете да използвате функцията FILTER заедно с функцията LARGE. В показания пример формулата във F5 е:
=FILTER(data,score>=LARGE(score,3))
където данните (B5: D16) и резултатът (D5: D16) са наречени диапазони.
Обяснение
Тази формула използва функцията FILTER за извличане на данни въз основа на логически тест, конструиран с функцията LARGE.
Функцията LARGE е лесен начин за получаване на n-тата най-голяма стойност в диапазон. Просто предоставете диапазон за първия аргумент (масив) и стойност за n като втори аргумент (k):
=LARGE(range,1) // 1st largest =LARGE(range,2) // 2nd largest =LARGE(range,3) // 3rd largest
В този пример логиката за FILTER е изградена с този фрагмент:
score>=LARGE(score,3)
което връща TRUE, когато резултатът е по-голям или равен на третия най-висок резултат. Тъй като в диапазона D5: D16 има 12 клетки, този израз връща масив от 12 TRUE и FALSE стойности в масив като този:
(FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE)
Този масив се връща директно към функцията FILTER като аргумент за включване, където се използва за филтриране на данните. Само редове, където резултатът е TRUE, влизат в крайния изход. Резултатът от формулата във F5 включва 3-те най-добри резултата в данните, които се разливат в диапазона F5: H7.
Сортирайте резултатите по резултат
По подразбиране FILTER ще върне съвпадащи записи в същия ред, в който се появяват в изходните данни. За да сортирате резултатите в низходящ ред по резултат, можете да вложите оригиналната формула FILTER във функцията SORT по следния начин:
=SORT(FILTER(data,score>=LARGE(score,3)),3,-1)
Тук FILTER връща резултатите директно към функцията SORT като аргумент на масива. Индексът за сортиране е зададен на 3 (резултат) и редът за сортиране е зададен на -1 за низходящ ред.